summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES-4.1283
-rw-r--r--CHANGES-4.1~6510
-rw-r--r--COMPAT3
-rw-r--r--CWRU/CWRU.chlog57
-rw-r--r--CWRU/CWRU.chlog~59
l---------[-rw-r--r--]CWRU/changelog9017
-rw-r--r--MANIFEST1
-rw-r--r--MANIFEST~3
-rw-r--r--NEWS111
-rw-r--r--README2
-rw-r--r--builtins/evalstring.c16
-rw-r--r--builtins/evalstring.c~512
-rw-r--r--builtins/mapfile.def18
-rw-r--r--builtins/mapfile.def~20
-rw-r--r--command.h4
-rw-r--r--command.h~2
-rw-r--r--doc/bash.03698
-rw-r--r--doc/bash.19
-rw-r--r--doc/bash.1~5
-rw-r--r--doc/bash.html34
-rw-r--r--doc/bash.pdfbin287156 -> 287903 bytes
-rw-r--r--doc/bash.ps10238
-rw-r--r--doc/bashref.aux110
-rw-r--r--doc/bashref.bt26
-rw-r--r--doc/bashref.bts26
-rw-r--r--doc/bashref.cp60
-rw-r--r--doc/bashref.cps60
-rw-r--r--doc/bashref.dvibin661824 -> 663028 bytes
-rw-r--r--doc/bashref.fn206
-rw-r--r--doc/bashref.fns206
-rw-r--r--doc/bashref.html42
-rw-r--r--doc/bashref.log64
-rw-r--r--doc/bashref.pdfbin557689 -> 559233 bytes
-rw-r--r--doc/bashref.ps3228
-rw-r--r--doc/bashref.texi7
-rw-r--r--doc/bashref.texi~10
-rw-r--r--doc/bashref.toc112
-rw-r--r--doc/bashref.vr56
-rw-r--r--doc/bashref.vrs56
-rw-r--r--doc/builtins.0601
-rw-r--r--doc/builtins.ps1629
-rw-r--r--doc/rbash.ps2
-rw-r--r--doc/version.texi4
-rw-r--r--doc/version.texi~6
-rw-r--r--execute_cmd.c12
-rw-r--r--execute_cmd.c~17
-rw-r--r--lib/glob/glob.c2
l---------[-rw-r--r--]lib/readline/COPYING675
l---------[-rw-r--r--]lib/readline/ansi_stdlib.h55
l---------[-rw-r--r--]lib/readline/doc/fdl.texi507
-rw-r--r--lib/readline/doc/history.dvibin85440 -> 85440 bytes
-rw-r--r--lib/readline/doc/history.html6
-rw-r--r--lib/readline/doc/history.info50
-rw-r--r--lib/readline/doc/history.log12
-rw-r--r--lib/readline/doc/history.ps20
-rw-r--r--lib/readline/doc/readline.dvibin292044 -> 296928 bytes
-rw-r--r--lib/readline/doc/readline.html1317
-rw-r--r--lib/readline/doc/readline.info279
-rw-r--r--lib/readline/doc/readline.ps1943
-rw-r--r--lib/readline/doc/rlman.aux4
-rw-r--r--lib/readline/doc/rlman.fn27
-rw-r--r--lib/readline/doc/rlman.fns27
-rw-r--r--lib/readline/doc/rlman.log20
-rw-r--r--lib/readline/doc/rlman.toc4
-rw-r--r--lib/readline/doc/rluserman.aux4
-rw-r--r--lib/readline/doc/rluserman.dvibin98540 -> 100828 bytes
-rw-r--r--lib/readline/doc/rluserman.fn6
-rw-r--r--lib/readline/doc/rluserman.fns6
-rw-r--r--lib/readline/doc/rluserman.html356
-rw-r--r--lib/readline/doc/rluserman.info88
-rw-r--r--lib/readline/doc/rluserman.log18
-rw-r--r--lib/readline/doc/rluserman.ps868
-rw-r--r--lib/readline/doc/rluserman.toc4
-rw-r--r--lib/readline/doc/rluserman.vr7
-rw-r--r--lib/readline/doc/rluserman.vrs7
l---------[-rw-r--r--]lib/readline/posixdir.h62
l---------[-rw-r--r--]lib/readline/posixjmp.h41
l---------[-rw-r--r--]lib/readline/posixselect.h48
l---------[-rw-r--r--]lib/readline/posixstat.h143
l---------[-rw-r--r--]lib/readline/tilde.c503
l---------[-rw-r--r--]lib/readline/tilde.h81
-rw-r--r--lib/sh/fnxform.c1
-rw-r--r--parse.y16
-rw-r--r--parse.y~24
-rw-r--r--po/ga.gmobin62686 -> 62686 bytes
-rw-r--r--po/ga.po29
-rw-r--r--print_cmd.c~116
-rw-r--r--subst.c40
-rw-r--r--subst.c.orig9041
-rw-r--r--subst.c~47
-rw-r--r--[-rwxr-xr-x]support/mkconffiles0
-rw-r--r--[-rwxr-xr-x]support/mkversion.sh0
-rw-r--r--[-rwxr-xr-x]support/rlvers.sh0
-rw-r--r--[-rwxr-xr-x]support/shobj-conf0
-rwxr-xr-xtests/RUN-ONE-TEST2
-rw-r--r--tests/exp.right4
-rw-r--r--tests/exp.tests2
-rw-r--r--tests/exp.tests~384
-rw-r--r--tests/exp3.sub7
99 files changed, 30176 insertions, 23869 deletions
diff --git a/CHANGES-4.1 b/CHANGES-4.1
new file mode 100644
index 00000000..1df77582
--- /dev/null
+++ b/CHANGES-4.1
@@ -0,0 +1,283 @@
+This document details the changes between this version, bash-4.1-alpha,
+and the previous version, bash-4.0-release.
+
+1. Changes to Bash
+
+a. Fixed bugs in the parser involving new parsing of the commands contained
+ in command substitution when the substitution is read.
+
+b. Fixed a bug that caused the shell to dump core when performing programmable
+ completion using a shell function.
+
+c. Fixed a bug in `mapfile' that caused it to invoke callbacks at the wrong
+ time.
+
+d. Fixed a bug that caused the shell to dump core when listing jobs in the
+ `exit' builtin.
+
+e. Fixed several bugs encountered when reading subscripts in associative
+ array assignments and expansions.
+
+f. Fixed a bug that under some circumstances caused an associative array to
+ be converted to an indexed array.
+
+g. Fixed a bug that caused syntax errors and SIGINT interrupts to not set
+ $? to a value > 128.
+
+h. Fixed a bug that caused the shell to remove FIFOs associated with process
+ substitution inside shell functions.
+
+i. Fixed a bug that caused terminal attributes to not be reset when the
+ `read' builtin timed out.
+
+j. Fixed a bug in brace expansion that caused unwanted zero padding of the
+ expanded terms.
+
+k. Fixed a bug that prevented the |& construct from working as intended when
+ used with a simple command with additional redirections.
+
+l. Fixed a bug with the case statment ;& terminator that caused the shell to
+ dereference a NULL pointer.
+
+m. Fixed a bug that caused assignment statements or redirections preceding
+ a simple command name to inhibit alias expansion.
+
+n. Fixed the behavior of `set -u' to conform to the latest Posix interpretation:
+ every expansion of an unset variable except $@ and $* will cause the
+ shell to exit.
+
+o. Fixed a bug that caused double-quoted expansions of $* inside word
+ expansions like ${x#$*} to not expand properly when $IFS is empty.
+
+p. Fixed a bug that caused traps to set $LINENO to the wrong value when they
+ execute.
+
+q. Fixed a bug that caused off-by-one errors when computing history lines in
+ the `fc' builtin.
+
+r. Fixed a bug that caused some terminating signals to not exit the shell
+ quickly enough, forcing the kernel to send the signal (e.g., SIGSEGV)
+ multiple times.
+
+s. Fixed a bug that caused the shell to attempt to add empty lines to the
+ history list when reading here documents.
+
+t. Made some internal changes that dramatically speeds up sequential indexed
+ array access.
+
+u. Fixed a bug that caused the shell to write past the end of a string when
+ completing a double-quoted string ending in a backslash.
+
+v. Fixed a bug that caused the shell to replace too many characters when a
+ pattern match was null in a ${foo//bar} expansion.
+
+w. Fixed bugs in the expansion of ** that caused duplicate directory names
+ and the contents of the current directory to be omitted.
+
+x. Fixed a bug that caused $? to not be set correctly when referencing an
+ unset variable with set -u and set -e enabled.
+
+y. Fixed a bug caused by executing an external program from the DEBUG trap
+ while a pipeline was running. The effect was to disturb the pipeline
+ state, occasionally causing it to hang.
+
+z. Fixed a bug that caused the ** glob expansion to dump core if it
+ encountered an unsearchable directory.
+
+aa. Fixed a bug that caused `command -v' and `command -V' to not honor the
+ path set by the -p option.
+
+bb. Fixed a bug that caused brace expansion to take place too soon in some
+ compound array assignments.
+
+cc. Fixed a bug that caused programmable completion functions' changes to
+ READLINE_POINT to not be reflected back to readline.
+
+dd. Fixed a bug that caused the shell to dump core if a trap was executed
+ during a shell assignment statement.
+
+ee. Fixed an off-by-one error when computing the number of positional
+ parameters for the ${@:0:n} expansion.
+
+ff. Fixed a problem with setting COMP_CWORD for programmable completion
+ functions that could leave it set to -1.
+
+gg. Fixed a bug that caused the ERR trap to be triggered in some cases where
+ `set -e' would not have caused the shell to exit.
+
+hh. Fixed a bug that caused changes made by `compopt' to not persist past the
+ completion function in which compopt was executed.
+
+ii. Fixed a bug that caused the list of hostname completions to not be cleared
+ when HOSTNAME was unset.
+
+jj. Fixed a bug that caused variable expansion in here documents to look in
+ any temporary environment.
+
+kk. Bash and readline can now convert file names between precomposed and
+ decomposed Unicode on Mac OS X ("keyboard" and file system forms,
+ respectively). This affects filename completion (using new
+ rl_filename_rewrite_hook), globbing, and readline redisplay.
+
+ll. The ERR and EXIT traps now see a non-zero value for $? when a parser
+ error after set -e has been enabled causes the shell to exit.
+
+mm. Fixed a bug that in brace expansion that caused zero-prefixed terms to
+ not contain the correct number of digits.
+
+nn. Fixed a bug that caused the shell to free non-allocated memory when
+ unsetting an associative array which had had a value implicitly assigned
+ to index "0".
+
+oo. Fixed a memory leak in the ${!prefix@} expansion.
+
+pp. Fixed a bug that caused printf to not correctly report all write errors.
+
+qq. Fixed a bug that caused single and double quotes to act as delimiters
+ when splitting a command line into words for programmable completion.
+
+rr. Fixed a bug that caused ** globbing that caused **/path/* to match every
+ directory, not just those matching `path'.
+
+ss. Fixed a bug that caused the shell to dump core when running `help' without
+ arguments if the terminal width was fewer than 7 characters.
+
+2. Changes to Readline
+
+a. The SIGWINCH signal handler now avoids calling the redisplay code if
+ one arrives while in the middle of redisplay.
+
+b. Changes to the timeout code to make sure that timeout values greater
+ than one second are handled better.
+
+c. Fixed a bug in the redisplay code that was triggered by a prompt
+ containing invisible characters exactly the width of the screen.
+
+d. Fixed a bug in the redisplay code encountered when running in horizontal
+ scroll mode.
+
+e. Fixed a bug that prevented menu completion from properly completing
+ filenames.
+
+f. Fixed a redisplay bug caused by a multibyte character causing a line to
+ wrap.
+
+g. Fixed a bug that caused key sequences of two characters to not be
+ recognized when a longer sequence identical in the first two characters
+ was bound.
+
+h. Fixed a bug that caused history expansion to be attempted on $'...'
+ single-quoted strings.
+
+i. Fixed a bug that caused incorrect redisplay when the prompt contained
+ multibyte characters in an `invisible' sequence bracketed by \[ and
+ \].
+
+j. Fixed a bug that caused history expansion to short-circuit after
+ encountering a multibyte character.
+
+3. New Features in Bash
+
+a. Here-documents within $(...) command substitutions may once more be
+ delimited by the closing right paren, instead of requiring a newline.
+
+b. Bash's file status checks (executable, readable, etc.) now take file
+ system ACLs into account on file systems that support them.
+
+c. Bash now passes environment variables with names that are not valid
+ shell variable names through into the environment passed to child
+ processes.
+
+d. The `execute-unix-command' readline function now attempts to clear and
+ reuse the current line rather than move to a new one after the command
+ executes.
+
+e. `printf -v' can now assign values to array indices.
+
+f. New `complete -E' and `compopt -E' options that work on the "empty"
+ completion: completion attempted on an empty command line.
+
+g. New complete/compgen/compopt -D option to define a `default' completion:
+ a completion to be invoked on command for which no completion has been
+ defined. If this function returns 124, programmable completion is
+ attempted again, allowing a user to dynamically build a set of completions
+ as completion is attempted by having the default completion function
+ install individual completion functions each time it is invoked.
+
+h. When displaying associative arrays, subscripts are now quoted.
+
+i. Changes to dabbrev-expand to make it more `emacs-like': no space appended
+ after matches, completions are not sorted, and most recent history entries
+ are presented first.
+
+j. The [[ and (( commands are now subject to the setting of `set -e' and the
+ ERR trap.
+
+k. The source/. builtin now removes NUL bytes from the file before attempting
+ to parse commands.
+
+l. There is a new configuration option (in config-top.h) that forces bash to
+ forward all history entries to syslog.
+
+m. A new variable $BASHOPTS to export shell options settable using `shopt' to
+ child processes.
+
+n. There is a new confgure option that forces the extglob option to be
+ enabled by default.
+
+o. New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace
+ output to that file descriptor.
+
+p. If the optional left-hand-side of a redirection is of the form {var}, the
+ shell assigns the file descriptor used to $var or uses $var as the file
+ descriptor to move or close, depending on the redirection operator.
+
+q. The < and > operators to the [[ conditional command now do string
+ comparison according to the current locale.
+
+r. Programmable completion now uses the completion for `b' instead of `a'
+ when completion is attempted on a line like: a $(b c.
+
+s. Force extglob on temporarily when parsing the pattern argument to
+ the == and != operators to the [[ command, for compatibility.
+
+t. Changed the behavior of interrupting the wait builtin when a SIGCHLD is
+ received and a trap on SIGCHLD is set to be Posix-mode only.
+
+u. The read builtin has a new `-N nchars' option, which reads exactly NCHARS
+ characters, ignoring delimiters like newline.
+
+4. New Features in Readline
+
+a. New bindable function: menu-complete-backward.
+
+b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
+ and C-p to menu-complete-backward.
+
+c. When in vi command mode, repeatedly hitting ESC now does nothing, even
+ when ESC introduces a bound key sequence. This is closer to how
+ historical vi behaves.
+
+d. New bindable function: skip-csi-sequence. Can be used as a default to
+ consume key sequences generated by keys like Home and End without having
+ to bind all keys.
+
+e. New application-settable function: rl_filename_rewrite_hook. Can be used
+ to rewite or modify filenames read from the file system before they are
+ compared to the word to be completed.
+
+f. New bindable variable: skip-completed-text, active when completing in the
+ middle of a word. If enabled, it means that characters in the completion
+ that match characters in the remainder of the word are "skipped" rather
+ than inserted into the line.
+
+g. The pre-readline-6.0 version of menu completion is available as
+ "old-menu-complete" for users who do not like the readline-6.0 version.
+
+h. New bindable variable: echo-control-characters. If enabled, and the
+ tty ECHOCTL bit is set, controls the echoing of characters corresponding
+ to keyboard-generated signals.
+
+i. New bindable variable: enable-meta-key. Controls whether or not readline
+ sends the smm/rmm sequences if the terminal indicates it has a meta key
+ that enables eight-bit characters.
diff --git a/CHANGES-4.1~ b/CHANGES-4.1~
new file mode 100644
index 00000000..a7638315
--- /dev/null
+++ b/CHANGES-4.1~
@@ -0,0 +1,6510 @@
+This document details the changes between this version, bash-4.1-alpha,
+and the previous version, bash-4.0-release.
+
+1. Changes to Bash
+
+a. Fixed bugs in the parser involving new parsing of the commands contained
+ in command substitution when the substitution is read.
+
+b. Fixed a bug that caused the shell to dump core when performing programmable
+ completion using a shell function.
+
+c. Fixed a bug in `mapfile' that caused it to invoke callbacks at the wrong
+ time.
+
+d. Fixed a bug that caused the shell to dump core when listing jobs in the
+ `exit' builtin.
+
+e. Fixed several bugs encountered when reading subscripts in associative
+ array assignments and expansions.
+
+f. Fixed a bug that under some circumstances caused an associative array to
+ be converted to an indexed array.
+
+g. Fixed a bug that caused syntax errors and SIGINT interrupts to not set
+ $? to a value > 128.
+
+h. Fixed a bug that caused the shell to remove FIFOs associated with process
+ substitution inside shell functions.
+
+i. Fixed a bug that caused terminal attributes to not be reset when the
+ `read' builtin timed out.
+
+j. Fixed a bug in brace expansion that caused unwanted zero padding of the
+ expanded terms.
+
+k. Fixed a bug that prevented the |& construct from working as intended when
+ used with a simple command with additional redirections.
+
+l. Fixed a bug with the case statment ;& terminator that caused the shell to
+ dereference a NULL pointer.
+
+m. Fixed a bug that caused assignment statements or redirections preceding
+ a simple command name to inhibit alias expansion.
+
+n. Fixed the behavior of `set -u' to conform to the latest Posix interpretation:
+ every expansion of an unset variable except $@ and $* will cause the
+ shell to exit.
+
+o. Fixed a bug that caused double-quoted expansions of $* inside word
+ expansions like ${x#$*} to not expand properly when $IFS is empty.
+
+p. Fixed a bug that caused traps to set $LINENO to the wrong value when they
+ execute.
+
+q. Fixed a bug that caused off-by-one errors when computing history lines in
+ the `fc' builtin.
+
+r. Fixed a bug that caused some terminating signals to not exit the shell
+ quickly enough, forcing the kernel to send the signal (e.g., SIGSEGV)
+ multiple times.
+
+s. Fixed a bug that caused the shell to attempt to add empty lines to the
+ history list when reading here documents.
+
+t. Made some internal changes that dramatically speeds up sequential indexed
+ array access.
+
+u. Fixed a bug that caused the shell to write past the end of a string when
+ completing a double-quoted string ending in a backslash.
+
+v. Fixed a bug that caused the shell to replace too many characters when a
+ pattern match was null in a ${foo//bar} expansion.
+
+w. Fixed bugs in the expansion of ** that caused duplicate directory names
+ and the contents of the current directory to be omitted.
+
+x. Fixed a bug that caused $? to not be set correctly when referencing an
+ unset variable with set -u and set -e enabled.
+
+y. Fixed a bug caused by executing an external program from the DEBUG trap
+ while a pipeline was running. The effect was to disturb the pipeline
+ state, occasionally causing it to hang.
+
+z. Fixed a bug that caused the ** glob expansion to dump core if it
+ encountered an unsearchable directory.
+
+aa. Fixed a bug that caused `command -v' and `command -V' to not honor the
+ path set by the -p option.
+
+bb. Fixed a bug that caused brace expansion to take place too soon in some
+ compound array assignments.
+
+cc. Fixed a bug that caused programmable completion functions' changes to
+ READLINE_POINT to not be reflected back to readline.
+
+dd. Fixed a bug that caused the shell to dump core if a trap was executed
+ during a shell assignment statement.
+
+ee. Fixed an off-by-one error when computing the number of positional
+ parameters for the ${@:0:n} expansion.
+
+ff. Fixed a problem with setting COMP_CWORD for programmable completion
+ functions that could leave it set to -1.
+
+gg. Fixed a bug that caused the ERR trap to be triggered in some cases where
+ `set -e' would not have caused the shell to exit.
+
+hh. Fixed a bug that caused changes made by `compopt' to not persist past the
+ completion function in which compopt was executed.
+
+ii. Fixed a bug that caused the list of hostname completions to not be cleared
+ when HOSTNAME was unset.
+
+jj. Fixed a bug that caused variable expansion in here documents to look in
+ any temporary environment.
+
+kk. Bash and readline can now convert file names between precomposed and
+ decomposed Unicode on Mac OS X ("keyboard" and file system forms,
+ respectively). This affects filename completion (using new
+ rl_filename_rewrite_hook), globbing, and readline redisplay.
+
+ll. The ERR and EXIT traps now see a non-zero value for $? when a parser
+ error after set -e has been enabled causes the shell to exit.
+
+mm. Fixed a bug that in brace expansion that caused zero-prefixed terms to
+ not contain the correct number of digits.
+
+nn. Fixed a bug that caused the shell to free non-allocated memory when
+ unsetting an associative array which had had a value implicitly assigned
+ to index "0".
+
+oo. Fixed a memory leak in the ${!prefix@} expansion.
+
+pp. Fixed a bug that caused printf to not correctly report all write errors.
+
+qq. Fixed a bug that caused single and double quotes to act as delimiters
+ when splitting a command line into words for programmable completion.
+
+rr. Fixed a bug that caused ** globbing that caused **/path/* to match every
+ directory, not just those matching `path'.
+
+ss. Fixed a bug that caused the shell to dump core when running `help' without
+ arguments if the terminal width was fewer than 7 characters.
+
+2. Changes to Readline
+
+a. The SIGWINCH signal handler now avoids calling the redisplay code if
+ one arrives while in the middle of redisplay.
+
+b. Changes to the timeout code to make sure that timeout values greater
+ than one second are handled better.
+
+c. Fixed a bug in the redisplay code that was triggered by a prompt
+ containing invisible characters exactly the width of the screen.
+
+d. Fixed a bug in the redisplay code encountered when running in horizontal
+ scroll mode.
+
+e. Fixed a bug that prevented menu completion from properly completing
+ filenames.
+
+f. Fixed a redisplay bug caused by a multibyte character causing a line to
+ wrap.
+
+g. Fixed a bug that caused key sequences of two characters to not be
+ recognized when a longer sequence identical in the first two characters
+ was bound.
+
+h. Fixed a bug that caused history expansion to be attempted on $'...'
+ single-quoted strings.
+
+i. Fixed a bug that caused incorrect redisplay when the prompt contained
+ multibyte characters in an `invisible' sequence bracketed by \[ and
+ \].
+
+j. Fixed a bug that caused history expansion to short-circuit after
+ encountering a multibyte character.
+
+3. New Features in Bash
+
+a. Here-documents within $(...) command substitutions may once more be
+ delimited by the closing right paren, instead of requiring a newline.
+
+b. Bash's file status checks (executable, readable, etc.) now take file
+ system ACLs into account on file systems that support them.
+
+c. Bash now passes environment variables with names that are not valid
+ shell variable names through into the environment passed to child
+ processes.
+
+d. The `execute-unix-command' readline function now attempts to clear and
+ reuse the current line rather than move to a new one after the command
+ executes.
+
+e. `printf -v' can now assign values to array indices.
+
+f. New `complete -E' and `compopt -E' options that work on the "empty"
+ completion: completion attempted on an empty command line.
+
+g. New complete/compgen/compopt -D option to define a `default' completion:
+ a completion to be invoked on command for which no completion has been
+ defined. If this function returns 124, programmable completion is
+ attempted again, allowing a user to dynamically build a set of completions
+ as completion is attempted by having the default completion function
+ install individual completion functions each time it is invoked.
+
+h. When displaying associative arrays, subscripts are now quoted.
+
+i. Changes to dabbrev-expand to make it more `emacs-like': no space appended
+ after matches, completions are not sorted, and most recent history entries
+ are presented first.
+
+j. The [[ and (( commands are now subject to the setting of `set -e' and the
+ ERR trap.
+
+k. The source/. builtin now removes NUL bytes from the file before attempting
+ to parse commands.
+
+l. There is a new configuration option (in config-top.h) that forces bash to
+ forward all history entries to syslog.
+
+m. A new variable $BASHOPTS to export shell options settable using `shopt' to
+ child processes.
+
+n. There is a new confgure option that forces the extglob option to be
+ enabled by default.
+
+o. New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace
+ output to that file descriptor.
+
+p. If the optional left-hand-side of a redirection is of the form {var}, the
+ shell assigns the file descriptor used to $var or uses $var as the file
+ descriptor to move or close, depending on the redirection operator.
+
+q. The < and > operators to the [[ conditional command now do string
+ comparison according to the current locale.
+
+r. Programmable completion now uses the completion for `b' instead of `a'
+ when completion is attempted on a line like: a $(b c.
+
+s. Force extglob on temporarily when parsing the pattern argument to
+ the == and != operators to the [[ command, for compatibility.
+
+t. Changed the behavior of interrupting the wait builtin when a SIGCHLD is
+ received and a trap on SIGCHLD is set to be Posix-mode only.
+
+u. The read builtin has a new `-N nchars' option, which reads exactly NCHARS
+ characters, ignoring delimiters like newline.
+
+4. New Features in Readline
+
+a. New bindable function: menu-complete-backward.
+
+b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
+ and C-p to menu-complete-backward.
+
+c. When in vi command mode, repeatedly hitting ESC now does nothing, even
+ when ESC introduces a bound key sequence. This is closer to how
+ historical vi behaves.
+
+d. New bindable function: skip-csi-sequence. Can be used as a default to
+ consume key sequences generated by keys like Home and End without having
+ to bind all keys.
+
+e. New application-settable function: rl_filename_rewrite_hook. Can be used
+ to rewite or modify filenames read from the file system before they are
+ compared to the word to be completed.
+
+f. New bindable variable: skip-completed-text, active when completing in the
+ middle of a word. If enabled, it means that characters in the completion
+ that match characters in the remainder of the word are "skipped" rather
+ than inserted into the line.
+
+g. The pre-readline-6.0 version of menu completion is available as
+ "old-menu-complete" for users who do not like the readline-6.0 version.
+
+h. New bindable variable: echo-control-characters. If enabled, and the
+ tty ECHOCTL bit is set, controls the echoing of characters corresponding
+ to keyboard-generated signals.
+
+i. New bindable variable: enable-meta-key. Controls whether or not readline
+ sends the smm/rmm sequences if the terminal indicates it has a meta key
+ that enables eight-bit characters.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.0-release,
+and the previous version, bash-4.0-rc1.
+
+1. Changes to Bash
+
+a. Changed the message printed when setlocale(3) fails to only include the
+ strerror error text if the call changes errno.
+
+b. Changed trap command execution to reset the line number before running a
+ trap (except DEBUG and RETURN traps).
+
+c. Fixed behavior of case-modifiying word expansions to not work on
+ individual words within a variable's value.
+
+d. Fixed a bug that caused mapfile to not be interruptible when run in an
+ interactive shell.
+
+e. Fixed a bug that caused mapfile to not run callbacks for the first line
+ read.
+
+f. Fixed a bug that caused mapfile to not honor EOF typed in an interactive
+ shell.
+
+g. Fixed the coprocess reaping code to not run straight from a signal handler.
+
+h. Fixed a bug that caused printf -b to ignore the first % conversion specifier
+ in the format string on 64-bit systems.
+
+i. Fixed a bug that caused incorrect word splitting when `:', `=', or `~'
+ appeared in $IFS.
+
+j. Fixed a bug that caused data corruption in the programmable completion code
+ when a shell function called from a completion aborted execution.
+
+k. Fixed a bug that caused the CPU usage reported by the `time' builtin to be
+ capped at 100%.
+
+l. Changed behavior of shell when -e option is in effect to reflect consensus
+ of Posix shell standardization working group.
+
+m. Fixed a bug introduced in bash-4.0-alpha that caused redirections to not
+ be displayed by `type' or `declare' when appearing in functions under
+ certain circumstances.
+
+2. Changes to Readline
+
+a. Fixed a bug that caused !(...) extended glob patterns to inhibit later
+ history expansion.
+
+b. Reworked the signal handling to avoid calling disallowed functions from a
+ signal handler.
+
+3. New Features in Bash
+
+a. `readarray' is now a synonym for `mapfile'.
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.0-rc1,
+and the previous version, bash-4.0-beta2.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused parsing errors when a $()-style command
+ substitution was follwed immediately by a quoted newline.
+
+b. Fixed a bug that caused extended shell globbing patterns beginning with
+ `*(' to not work when used with pattern substitution word expansions.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.0-beta2,
+and the previous version, bash-4.0-beta.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused failed word expansions to set $? but not
+ PIPESTATUS.
+
+b. Changed filename completion to quote the tilde in a filename with a
+ leading tilde that exists in the current directory.
+
+c. Fixed a bug that caused a file descriptor leak when performing
+ redirections attached to a compound command.
+
+d. Fixed a bug that caused expansions of $@ and $* to not exit the shell if
+ the -u option was enabled and there were no posititional parameters.
+
+e. Fixed a bug that resulted in bash not terminating immediately if a
+ terminating signal was received while performing output.
+
+f. Fixed a bug that caused the shell to crash after creating 256 process
+ substitutions during word completion.
+
+2. Changes to Readline
+
+a. Fixed a bug that caused redisplay errors when using prompts with invisible
+ characters and numeric arguments to a command in a multibyte locale.
+
+b. Fixed a bug that caused redisplay errors when using prompts with invisible
+ characters spanning more than two physical screen lines.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.0-beta,
+and the previous version, bash-4.0-alpha.
+
+1. Changes to Bash
+
+a. Fixed a typo that caused a variable to be used before initialization
+ while parsing Posix-style command substitutions.
+
+b. Fixed a bug that caused stray ^? when the expansion of a parameter used
+ as part of a pattern removal expansion is empty, but part of a non-
+ empty string.
+
+c. Fixed a bug that could cause strings not converted to numbers by strtol
+ to be treated as if the conversion had been successful.
+
+d. The `return' builtin now accepts no options and requires a `--' before
+ a negative return value, as Posix requires.
+
+e. Fixed a bug that caused local variables to be created with the empty
+ string for a value rather than no value.
+
+f. Changed behavior so the shell now acts as if it received an interrupt
+ when a pipeline is killed by SIGINT while executing a list.
+
+g. Fixed a bug that caused `declare var' and `typeset var' to initialize
+ `var' to the empty string.
+
+h. Changed `bind' builtin to print a warning but proceed if invoked when
+ line editing is not active.
+
+i. Fixed a bug that caused the shell to exit when the `errexit' option is
+ set and a command in a pipeline returns a non-zero exit status.
+
+j. Fixed a bug that caused the shell to not run the exit trap in a command
+ run with `bash -c' under some circumstances.
+
+k. Fixed a bug that caused parser errors to occasionally not set $? when
+ running commands with `eval'.
+
+l. Fixed a bug that caused stray control characters when evaluating compound
+ array assignments containing $'\x7f' escapes.
+
+m. Fixed a bug that caused redirections involving file descriptor 10 as the
+ target to behave incorrectly.
+
+n. Fixed a bug that could cause memory to be freed multiple times when
+ assigning to COMP_WORDBREAKS.
+
+o. Fixed a bug that could cause NULL pointer dereferences when COMP_WORDBREAKS
+ was unset.
+
+2. Changes to Readline
+
+3. New Features in Bash
+
+a. A value of 0 for the -t option to `read' now returns success if there is
+ input available to be read from the specified file descriptor.
+
+b. CDPATH and GLOBIGNORE are ignored when the shell is running in privileged
+ mode.
+
+c. New bindable readline functions shell-forward-word and shell-backward-word,
+ which move forward and backward words delimited by shell metacharacters
+ and honor shell quoting.
+
+d. New bindable readline functions shell-backward-kill-word and shell-kill-word
+ which kill words backward and forward, but use the same word boundaries
+ as shell-forward-word and shell-backward-word.
+
+4. New Features in Readline
+
+a. If the kernel supports it, readline displays special characters
+ corresponding to a keyboard-generated signal when the signal is received.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.0-alpha,
+and the previous version, bash-3.2-release.
+
+1. Changes to Bash
+
+a. Fixed several bugs in old-style `` command substitution parsing, including
+ comment parsing and quoted string handling.
+
+b. Fixed problems parsing arguments to the [[ command's =~ regular expression
+ matching operator: metacharacter and whitespace parsing.
+
+c. Fixed a bug that caused the shell to inappropriately reuse high-numbered
+ file descriptors it used internally.
+
+d. Fixed a bug in pattern replacement word expansions that caused a `/' as
+ the first character of an expanded pattern to be mistaken for a global
+ replacement specifier.
+
+e. Fixed several problems with the asprintf and snprintf replacement functions
+ that caused hangs and crashes.
+
+f. Fixed a bug in the calculation of the current and previous job that caused
+ it to refer to incorrect jobs.
+
+g. Fixed a bug in the check for the validity of a hashed command pathname that
+ caused unnecessary hash table deletions and additions.
+
+h. Fixed a bug that caused child processes to inherit the wrong value for $!.
+
+i. Fixed a bug that caused `.' to fail to read and execute commands from non-
+ regular files such as devices or named pipes.
+
+j. Fixed a bug in printf formatting for the %x and %X expansions that occurred
+ on some systems.
+
+k. Fixed a bug that caused the shell to crash when creating temporary files if
+ $TMPDIR named a non-writable directory.
+
+l. Fixed a bug that caused the shell to ignore $TMPDIR when creating temporary
+ files under some circumstances.
+
+m. Fixed a bug that caused named pipes created by process substitution to not
+ be cleaned up.
+
+n. Fixed a bug that caused HISTTIMEFORMAT to not be honored when it appeared
+ in the initial shell environment.
+
+o. Fixed several bugs in the expansion of $* and $@ (quoted and unquoted)
+ when IFS is null or contains non-whitespace characters; the same changes
+ apply to arrays subscripted with * or @.
+
+p. Fixed several problems with pattern substitution expansions on the
+ positional parameters and arrays subscripted with * or @ that occurred
+ when $IFS was set to the empty string.
+
+q. Made a change to the default locale initialization code that should
+ result in better behavior from the locale-aware library functions.
+
+r. Fixed a bug that caused compacting the jobs list to drop jobs.
+
+s. Fixed a bug that caused jumps back to the top-level processing loop from
+ a builtin command to leave the shell in an inconsistent state.
+
+t. Fixed a bug that caused characters that would be escaped internally to be
+ doubled when escaped with a backslash.
+
+u. Fixed the initialization of mailboxes to not cause maildirs to be read
+ (and stat(2) called for every message file) at shell startup.
+
+v. Fixed a bug that caused the shell to not display $PS2 when the read builtin
+ reads a line continued with a backslash.
+
+w. Fixed a bug that caused errors in word splitting when $IFS contained
+ characters used for internal quoting.
+
+x. Fixed bugs that caused problems with output from shell builtins not being
+ completely displayed on some systems.
+
+y. Fixed a bug that caused output to be lost when a redirection is acting on
+ the shell's output file descriptor.
+
+z. Fixed bugs caused by shell builtins not checking for all write errors.
+
+aa. Fixed a problem that caused the shell to dump core if expansions on the
+ pattern passed to the pattern removal word expansions resulted in expansion
+ errors.
+
+bb. Fixed a bug that caused bash to loop infinitely after creating and
+ waiting for 4096 jobs.
+
+cc. Fixed a bug that caused bash to lose the status of a background job under
+ certain circumstances.
+
+dd. Fixed a bug that caused bash to not look in the temporary environment
+ when performing variable lookup under certain circumstances.
+
+ee. Fixed a bug that caused bash to close file descriptors greater than 10
+ when they were used in redirections.
+
+ff. Fixed a problem that caused the shell to attempt to read from the standard
+ input when called as `bash -i script'.
+
+gg. Fixed a memory leak and variable initialization problems when the -v option
+ was supplied to `printf' that could cause incorrect results.
+
+hh. Fixed a bug that caused the `read' builtin to count bytes when the -n option
+ was supplied, rather than (possibly multibyte) characters.
+
+ii. Fixed a bug when displaying a function due to not converting the function
+ to an external form.
+
+jj. Changed job control initialization to ensure that the shell has a tty
+ as its controlling terminal before enabling job control.
+
+kk. Fixed a bug with the `test' builtin that caused it to misinterpret
+ arguments beginning with `-' but containing more than one character.
+
+ll. Fixed bug that could cause the shell to dump core in certain cases where
+ a command sets the SIGINT disposition to the default.
+
+mm. Fixed a bug in the pattern replacement (affecting both word expansion
+ and the `fc' builtin) that occurred when the pattern and replacement
+ strings were empty.
+
+nn. Fixed a bug that caused an arithmetic evaluation error to disable all
+ further evaluation.
+
+oo. Fixed a bug in pathname expansion that caused it to interpret backslashes
+ in the pathname as quoting characters.
+
+pp. Fixed a bug in the replacement getcwd() implementation that could cause
+ memory to be overwritten.
+
+qq. When in Posix mode, the `ulimit' builtin now uses a block size of 512 for
+ the `-c' and `-f' options.
+
+rr. Brace expansion now allows process substitutions to pass through unchanged.
+
+ss. Fixed a problem in the command name completion code to avoid quoting
+ escaped special characters twice when the command name begins with a tilde.
+
+tt. Fixed a problem in the printf builtin that resulted in single-byte
+ output for the "'" escape, even when using multibyte characters.
+
+uu. Fixed a bug that caused the failure exit status to be lost when redirections
+ attached to a compound command failed.
+
+vv. Fixed a bug that caused the internal random number generator to not be
+ re-seeded correctly when creating a subshell.
+
+ww. Fixed a bug that could cause the bash replacement getcwd to overwrite
+ memory.
+
+xx. Fixed a bug that caused the shell to not receive SIGINT if it was sent
+ while the shell was waiting for a command substitution to terminate, and
+ make sure the exit status is correct when it does.
+
+yy. Fixed a bug that resulted in the second and subsequent children spawned
+ by a shell begun to run a command substitution being placed into the
+ wrong process group.
+
+zz. Fixed a bug that caused the results of successful tilde expansion to be
+ subject to pathname expansion and word splitting.
+
+aaa. Fixed a bug that could cause the shell to hang if it encountered an
+ error that caused it to jump back to the top processing loop during a
+ command substitution or `eval' command.
+
+bbb. Fixed a bug that caused the `read' builtin to use the tty's attributes
+ instead of those of the file descriptor passed with the -u option when
+ processing the -n and -d options.
+
+ccc. Fixed a bug that caused incorrect expansion of ${array[@]:foo} if the
+ first character of $IFS was not whitespace.
+
+ddd. Fixed a bug that occurred when scanning for the ending delimiter of a
+ ${parameter/pat/sub} expansion.
+
+eee. Fixed a bug that caused the shell to inappropriately expand command
+ substitutions in words when expanding directory names for completion.
+
+fff. Fixed a bug that caused the `fc' builtin to look too far back in the
+ history list under certain circumstances.
+
+ggg. Fixed a bug that caused a shell running in Posix mode to search $PWD for
+ a file specified as an argument to source/. when the file was not found
+ in $PATH.
+
+hhh. Fixed a bug that caused the shell to modify the case of a command word
+ found via command completion when the shell was performing case-
+ insensitive completion.
+
+iii. Fixed a bug that caused the shell to search $PATH for an argument to
+ source/. even when it contained a `/'.
+
+jjj. Fixed a bug that caused brace expansion to misorder expansions when the
+ locale did not have a collating order like aAbBcC...zZ.
+
+kkk. Fixed a bug that did not allow `set +o history' to have any effect when
+ run in a startup file or from a sourced file.
+
+lll. Fixed a bug with the precedence of the ?: conditional arithmetic operator.
+
+mmm. Fixed a bug that caused side effects of temporary variable assignments
+ to persist in the shell environment.
+
+nnn. Fixed a bug that caused the terminal to be left in non-canonical mode
+ when using editing commands that invoke the an editor on the current
+ command line.
+
+ooo. Fixed a bug that caused globbing characters and characters in $IFS to not
+ be quoted appropriately when displaying assignment statements.
+
+ppp. Fixed a bug that caused the `-e' option to be inherited when sourcing a
+ file or evaluating a command with `eval' even if the return value of the
+ command was supposed to be ignored.
+
+qqq. Fixed a bug that caused the shell to attempt to created variables with
+ invalid names if such names appeared in the initial environment.
+
+rrr. Fixed a bug with quote removal in strings where the final character is a
+ backslash.
+
+sss. Fixed a bug that caused the effects of special variables to persist even
+ when the variables were unset as part of the shell reinitializing itself
+ to execute a shell script.
+
+ttt. Fixed a bug that caused the history to not be saved after `history -c' or
+ `history -d' was executed until a sufficient number of commands had been
+ saved to the history.
+
+uuu. Bash now parses command substitutions according to Posix rules: parsing
+ the command contained in $() to find the closing delimiter.
+
+vvv. Fixed a bug that caused traps on SIGCHLD set in a SIGCHLD handler to
+ not persist.
+
+www. Fixed a bug that didn't allow SIGCHLD to interrupt the `wait' builtin
+ as Posix specifies.
+
+xxx. Invalid numeric arguments to shell builtins no longer cause the shell to
+ short-circuit any executing compound command.
+
+yyy. Fixed a bug that caused the exit status to be lost when `break' was
+ used to short-circuit a loop's execution.
+
+zzz. Fixed a bug that caused stray ^? characters to be left in expansions of
+ "${array[*]}".
+
+aaaa. Bash now prints better error messages for here documents terminated by
+ EOF and for identifying the incorrect token in an invalid arithmetic
+ expression.
+
+bbbb. Fixed a bug in the variable length word expansion that caused it to
+ incorrectly calculate the number of multibyte characters.
+
+cccc. Fixed a race condition that could result in the top-level shell setting
+ the terminal's process group to an incorrect value if the process
+ group was changed by a child of a child of the shell.
+
+dddd. Fixed a bug that caused here documents belonging to commands within a
+ compound command to be displayed in a syntactially-incorrect form, which
+ prevented them from being re-read as input.
+
+eeee. The shell displays more warnings about failures to set the locale.
+
+ffff. Fixed a bug that caused the body of a here-document to not be saved to
+ the history list.
+
+gggg. Fixed a bug that caused configure to incorrectly conclude that FreeBSD
+ had /dev/fd available, resulting in problems with process substitution.
+
+2. Changes to Readline
+
+a. Fixed a number of redisplay errors in environments supporting multibyte
+ characters.
+
+b. Fixed bugs in vi command mode that caused motion commands to inappropriately
+ set the mark.
+
+c. When using the arrow keys in vi insertion mode, readline allows movement
+ beyond the current end of the line (unlike command mode).
+
+d. Fixed bugs that caused readline to loop when the terminal has been taken
+ away and reads return -1/EIO.
+
+e. Fixed bugs in redisplay occurring when displaying prompts containing
+ invisible characters.
+
+f. Fixed a bug that caused the completion append character to not be reset to
+ the default after an application-specified completion function changed it.
+
+g. Fixed a problem that caused incorrect positioning of the cursor while in
+ emacs editing mode when moving forward at the end of a line while using
+ a locale supporting multibyte characters.
+
+h. Fixed an off-by-one error that caused readline to drop every 511th
+ character of buffered input.
+
+i. Fixed a bug that resulted in SIGTERM not being caught or cleaned up.
+
+j. Fixed redisplay bugs caused by multiline prompts with invisible characters
+ or no characters following the final newline.
+
+k. Fixed redisplay bug caused by prompts consisting solely of invisible
+ characters.
+
+l. Fixed a bug in the code that buffers characters received very quickly in
+ succession which caused characters to be dropped.
+
+m. Fixed a bug that caused readline to reference uninitialized data structures
+ if it received a SIGWINCH before completing initialzation.
+
+n. Fixed a bug that caused the vi-mode `last command' to be set incorrectly
+ and therefore unrepeatable.
+
+o. Fixed a bug that caused readline to disable echoing when it was being used
+ with an output file descriptor that was not a terminal.
+
+p. Readline now blocks SIGINT while manipulating internal data structures
+ during redisplay.
+
+q. Fixed a bug in redisplay that caused readline to segfault when pasting a
+ very long line (over 130,000 characters).
+
+r. Fixed bugs in redisplay when using prompts with no visible printing
+ characters.
+
+3. New Features in Bash
+
+a. When using substring expansion on the positional parameters, a starting
+ index of 0 now causes $0 to be prefixed to the list.
+
+b. The `help' builtin now prints its columns with entries sorted vertically
+ rather than horizontally.
+
+c. There is a new variable, $BASHPID, which always returns the process id of
+ the current shell.
+
+d. There is a new `autocd' option that, when enabled, causes bash to attempt
+ to `cd' to a directory name that is supplied as the first word of a
+ simple command.
+
+e. There is a new `checkjobs' option that causes the shell to check for and
+ report any running or stopped jobs at exit.
+
+f. The programmable completion code exports a new COMP_TYPE variable, set to
+ a character describing the type of completion being attempted.
+
+g. The programmable completion code exports a new COMP_KEY variable, set to
+ the character that caused the completion to be invoked (e.g., TAB).
+
+h. If creation of a child process fails due to insufficient resources, bash
+ will try again several times before reporting failure.
+
+i. The programmable completion code now uses the same set of characters as
+ readline when breaking the command line into a list of words.
+
+j. The block multiplier for the ulimit -c and -f options is now 512 when in
+ Posix mode, as Posix specifies.
+
+k. Changed the behavior of the read builtin to save any partial input received
+ in the specified variable when the read builtin times out. This also
+ results in variables specified as arguments to read to be set to the empty
+ string when there is no input available. When the read builtin times out,
+ it returns an exit status greater than 128.
+
+l. The shell now has the notion of a `compatibility level', controlled by
+ new variables settable by `shopt'. Setting this variable currently
+ restores the bash-3.1 behavior when processing quoted strings on the rhs
+ of the `=~' operator to the `[[' command.
+
+m. The `ulimit' builtin now has new -b (socket buffer size) and -T (number
+ of threads) options.
+
+n. The -p option to `declare' now displays all variable values and attributes
+ (or function values and attributes if used with -f).
+
+o. There is a new `compopt' builtin that allows completion functions to modify
+ completion options for existing completions or the completion currently
+ being executed.
+
+p. The `read' builtin has a new -i option which inserts text into the reply
+ buffer when using readline.
+
+q. A new `-E' option to the complete builtin allows control of the default
+ behavior for completion on an empty line.
+
+r. There is now limited support for completing command name words containing
+ globbing characters.
+
+s. Changed format of internal help documentation for all builtins to roughly
+ follow man page format.
+
+t. The `help' builtin now has a new -d option, to display a short description,
+ and a -m option, to print help information in a man page-like format.
+
+u. There is a new `mapfile' builtin to populate an array with lines from a
+ given file.
+
+v. If a command is not found, the shell attempts to execute a shell function
+ named `command_not_found_handle', supplying the command words as the
+ function arguments.
+
+w. There is a new shell option: `globstar'. When enabled, the globbing code
+ treats `**' specially -- it matches all directories (and files within
+ them, when appropriate) recursively.
+
+x. There is a new shell option: `dirspell'. When enabled, the filename
+ completion code performs spelling correction on directory names during
+ completion.
+
+y. The `-t' option to the `read' builtin now supports fractional timeout
+ values.
+
+z. Brace expansion now allows zero-padding of expanded numeric values and
+ will add the proper number of zeroes to make sure all values contain the
+ same number of digits.
+
+aa. There is a new bash-specific bindable readline function: `dabbrev-expand'.
+ It uses menu completion on a set of words taken from the history list.
+
+bb. The command assigned to a key sequence with `bind -x' now sets two new
+ variables in the environment of the executed command: READLINE_LINE_BUFFER
+ and READLINE_POINT. The command can change the current readline line
+ and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT,
+ respectively.
+
+cc. There is a new &>> redirection operator, which appends the standard output
+ and standard error to the named file.
+
+dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects
+ the standard error for a command through a pipe.
+
+ee. The new `;&' case statement action list terminator causes execution to
+ continue with the action associated with the next pattern in the
+ statement rather than terminating the command.
+
+ff. The new `;;&' case statement action list terminator causes the shell to
+ test the next set of patterns after completing execution of the current
+ action, rather than terminating the command.
+
+gg. The shell understands a new variable: PROMPT_DIRTRIM. When set to an
+ integer value greater than zero, prompt expansion of \w and \W will
+ retain only that number of trailing pathname components and replace
+ the intervening characters with `...'.
+
+hh. There are new case-modifying word expansions: uppercase (^[^]) and
+ lowercase (,[,]). They can work on either the first character or
+ array element, or globally. They accept an optional shell pattern
+ that determines which characters to modify. There is an optionally-
+ configured feature to include capitalization operators.
+
+ii. The shell provides associative array variables, with the appropriate
+ support to create, delete, assign values to, and expand them.
+
+jj. The `declare' builtin now has new -l (convert value to lowercase upon
+ assignment) and -u (convert value to uppercase upon assignment) options.
+ There is an optionally-configurable -c option to capitalize a value at
+ assignment.
+
+kk. There is a new `coproc' reserved word that specifies a coprocess: an
+ asynchronous command run with two pipes connected to the creating shell.
+ Coprocs can be named. The input and output file descriptors and the
+ PID of the coprocess are available to the calling shell in variables
+ with coproc-specific names.
+
+4. New Features in Readline
+
+a. A new variable, rl_sort_completion_matches; allows applications to inhibit
+ match list sorting (but beware: some things don't work right if
+ applications do this).
+
+b. A new variable, rl_completion_invoking_key; allows applications to discover
+ the key that invoked rl_complete or rl_menu_complete.
+
+c. The functions rl_block_sigint and rl_release_sigint are now public and
+ available to calling applications who want to protect critical sections
+ (like redisplay).
+
+d. The functions rl_save_state and rl_restore_state are now public and
+ available to calling applications; documented rest of readline's state
+ flag values.
+
+e. A new user-settable variable, `history-size', allows setting the maximum
+ number of entries in the history list.
+
+f. There is a new implementation of menu completion, with several improvements
+ over the old; the most notable improvement is a better `completions
+ browsing' mode.
+
+g. The menu completion code now uses the rl_menu_completion_entry_function
+ variable, allowing applications to provide their own menu completion
+ generators.
+
+h. There is support for replacing a prefix of a pathname with a `...' when
+ displaying possible completions. This is controllable by setting the
+ `completion-prefix-display-length' variable. Matches with a common prefix
+ longer than this value have the common prefix replaced with `...'.
+
+i. There is a new `revert-all-at-newline' variable. If enabled, readline will
+ undo all outstanding changes to all history lines when `accept-line' is
+ executed.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.2-release,
+and the previous version, bash-3.2-beta.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused the temporary environment passed to a command to
+ affect the shell's environment under certain circumstances.
+
+b. Fixed a bug in the printf builtin that caused the %q format specifier to
+ ignore empty string arguments.
+
+c. Improved multibyte character environment detection at configuration time.
+
+d. Fixed a bug in the read builtin that left spurious escape characters in the
+ input after processing backslashes when assigning to an array variable.
+
+2. Changes to Readline
+
+a. Fixed a redisplay bug that occurred in multibyte-capable locales when the
+ prompt was one character longer than the screen width.
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.2-beta,
+and the previous version, bash-3.2-alpha.
+
+1. Changes to Bash
+
+a. Changed the lexical analyzer to treat locale-specific blank characters as
+ white space.
+
+b. Fixed a bug in command printing to avoid confusion between redirections and
+ process substitution.
+
+c. Fixed problems with cross-compiling originating from inherited environment
+ variables.
+
+d. Added write error reporting to printf builtin.
+
+e. Fixed a bug in the variable expansion code that could cause a core dump in
+ a multi-byte locale.
+
+f. Fixed a bug that caused substring expansion of a null string to return
+ incorrect results.
+
+g. BASH_COMMAND now retains its previous value while executing commands as the
+ result of a trap, as the documentation states.
+
+2. Changes to Readline
+
+a. Fixed a bug with prompt redisplay in a multi-byte locale to avoid redrawing
+ the prompt and input line multiple times.
+
+b. Fixed history expansion to not be confused by here-string redirection.
+
+c. Readline no longer treats read errors by converting them to newlines, as
+ it does with EOF. This caused partial lines to be returned from readline().
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.2-alpha,
+and the previous version, bash-3.1-release.
+
+1. Changes to Bash
+
+a. Fixed a source bug that caused the minimal configuration to not compile.
+
+b. Fixed memory leaks in error handling for the `read' builtin.
+
+c. Changed the [[ and (( compound commands to set PIPESTATUS with their exit
+ status.
+
+d. Fixed some parsing problems with compound array assignments.
+
+e. Added additional configuration changes for: NetBSD (incomplete multibyte
+ character support)
+
+f. Fixed two bugs with local array variable creation when shadowing a variable
+ of the same name from a previous context.
+
+g. Fixed the `read' builtin to restore the correct set of completion functions
+ if a timeout occurs.
+
+h. Added code to defer the initialization of HISTSIZE (and its stifling of the
+ history list) until the history file is loaded, allowing a startup file to
+ override the default value.
+
+i. Tightened up the arithmetic expression parsing to produce better error
+ messages when presented with invalid operators.
+
+j. Fixed the cross-compilation support to build the signal list at shell
+ invocation rather than compile time if cross-compiling.
+
+k. Fixed multibyte support for non-gcc compilers (or compilers that do not
+ allow automatic array variable sizing based on a non-constant value).
+
+l. Several fixes to the code that manages the list of terminated jobs and
+ their exit statuses, and the list of active and recently-terminated jobs
+ to avoid pid aliasing/wraparound and allocation errors.
+
+m. Fixed a problem that allowed scripts to die due to SIGINT while waiting
+ for children, even when started in the background or otherwise ignoring
+ SIGINT.
+
+n. Fixed a bug that caused shells invoked as -/bin/bash from not being
+ recognized as login shells.
+
+o. Fixed a problem that caused shells in the background to give the terminal
+ to a process group other than the foreground shell process group.
+
+p. Fixed a problem with extracting the `varname' in ${#varname}.
+
+q. Fixed the code that handles SIGQUIT to not exit immediately -- thereby
+ calling functions that may not be called in a signal handler context --
+ but set a flag and exit afterward (like SIGINT).
+
+r. Changed the brace expansion code to skip over braces that don't begin a
+ valid matched brace expansion construct.
+
+s. Fixed `typeset' and `declare' to not require that their shell function
+ operands to be valid shell identifiers.
+
+t. Changed `test' to use access(2) with a temporary uid/euid swap when testing
+ file attributes and running setuid, and access(2) in most other cases.
+
+u. Changed completion code to not attempt command name completion on a line
+ consisting solely of whitespace when no_empty_command_completion is set.
+
+v. The `hash' builtin now prints nothing in posix mode when the hash table is
+ empty, and prints a message to that effect to stdout instead of stderr
+ when not in posix mode.
+
+w. Fixed a bug in the extended pattern matching code that caused it to fail to
+ match periods with certain patterns.
+
+x. Fixed a bug that caused the shell to dump core when performing filename
+ generation in directories with thousands of files.
+
+y. Returned to the original Bourne shell rules for parsing ``: no recursive
+ parsing of embedded quoted strings or ${...} constructs.
+
+z. The inheritence of the DEBUG, RETURN, and ERR traps is now dependent only
+ on the settings of the `functrace' and `errtrace' shell options, rather
+ than whether or not the shell is in debugging mode.
+
+aa. Fixed a problem with $HOME being converted to ~ in the expansion of
+ members of the DIRSTACK array.
+
+bb. Fixed a problem with quoted arguments to arithmetic expansions in certain
+ constructs.
+
+cc. The command word completion code now no longer returns matching directories
+ while searching $PATH.
+
+dd. Fixed a bug with zero-padding and precision handling in snprintf()
+ replacement.
+
+ee. Fixed a bug that caused the command substitution code not to take embedded
+ shell comments into account.
+
+ff. Fixed a bug that caused $((...);(...)) to be misinterpreted as an
+ arithmetic substitution.
+
+gg. Fixed a bug in the prompt expansion code that inappropriately added a
+ \001 before a \002 under certain circumstances.
+
+hh. Fixed a bug that caused `unset LANG' to not properly reset the locale
+ (previous versions would set the locale back to what it was when bash
+ was started rather than the system's "native" locale).
+
+ii. Fixed a bug that could cause file descriptors > 10 to not be closed even
+ when closed explicitly by a script.
+
+jj. Fixed a bug that caused single quotes to be stripped from ANSI-C quoting
+ inside double-quoted command substitutions.
+
+kk. Fixed a bug that could cause core dumps when `return' was executed as the
+ last element of a pipeline inside a shell function.
+
+ll. Fixed a bug that caused DEBUG trap strings to overwrite commands stored in
+ the jobs list.
+
+2. Changes to Readline
+
+a. Fixed a problem that caused segmentation faults when using readline in
+ callback mode and typing consecutive DEL characters on an empty line.
+
+b. Fixed several redisplay problems with multibyte characters, all having to
+ do with the different code paths and variable meanings between single-byte
+ and multibyte character redisplay.
+
+c. Fixed a problem with key sequence translation when presented with the
+ sequence \M-\C-x.
+
+d. Fixed a problem that prevented the `a' command in vi mode from being
+ undone and redone properly.
+
+e. Fixed a problem that prevented empty inserts in vi mode from being undone
+ properly.
+
+f. Fixed a problem that caused readline to initialize with an incorrect idea
+ of whether or not the terminal can autowrap.
+
+g. Fixed output of key bindings (like bash `bind -p') to honor the setting of
+ convert-meta and use \e where appropriate.
+
+h. Changed the default filename completion function to call the filename
+ dequoting function if the directory completion hook isn't set. This means
+ that any directory completion hooks need to dequote the directory name,
+ since application-specific hooks need to know how the word was quoted,
+ even if no other changes are made.
+
+i. Fixed a bug with creating the prompt for a non-interactive search string
+ when there are non-printing characters in the primary prompt.
+
+j. Fixed a bug that caused prompts with invisible characters to be redrawn
+ multiple times in a multibyte locale.
+
+k. Fixed a bug that could cause the key sequence scanning code to return the
+ wrong function.
+
+l. Fixed a problem with the callback interface that caused it to fail when
+ using multi-character keyboard macros.
+
+m. Fixed a bug that could cause a core dump when an edited history entry was
+ re-executed under certain conditions.
+
+n. Fixed a bug that caused readline to reference freed memory when attmpting
+ to display a portion of the prompt.
+
+3. New Features in Bash
+
+a. Changed the parameter pattern replacement functions to not anchor the
+ pattern at the beginning of the string if doing global replacement - that
+ combination doesn't make any sense.
+
+b. When running in `word expansion only' mode (--wordexp option), inhibit
+ process substitution.
+
+c. Loadable builtins now work on MacOS X 10.[34].
+
+d. Shells running in posix mode no longer set $HOME, as POSIX requires.
+
+e. The code that checks for binary files being executed as shell scripts now
+ checks only for NUL rather than any non-printing character.
+
+f. Quoting the string argument to the [[ command's =~ operator now forces
+ string matching, as with the other pattern-matching operators.
+
+4. New Features in Readline
+
+a. Calling applications can now set the keyboard timeout to 0, allowing
+ poll-like behavior.
+
+b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
+ the default last-ditch startup file.
+
+c. The history file reading functions now allow windows-like \r\n line
+ terminators.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.1-release,
+and the previous version, bash-3.1-rc2.
+
+1. Changes to Readline
+
+a. Several changes to the multibyte redisplay code to fix problems with
+ prompts containing invisible characters.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.1-rc2,
+and the previous version, bash-3.1-rc1.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused a DEBUG trap to overwrite a command string that's
+ eventually attached to a background job.
+
+b. Changed some code so that filenames with leading tildes with spaces in the
+ name aren't tilde-expanded by the bash completion code.
+
+c. Fixed a bug that caused the pushd builtin to fail to change to
+ directories with leading `-'.
+
+d. Fixed a small memory leak in the programmable completion code.
+
+2. Changes to Readline
+
+a. Fixed a redisplay bug caused by moving the cursor vertically to a line
+ with invisible characters in the prompt in a multibyte locale.
+
+b. Fixed a bug that could cause the terminal special chars to be bound in the
+ wrong keymap in vi mode.
+
+3. New Features in Bash
+
+a. If compiled for strict POSIX conformance, LINES and COLUMNS may now
+ override the true terminal size.
+
+4. New Features in Readline
+
+a. A new external application-controllable variable that allows the LINES
+ and COLUMNS environment variables to set the window size regardless of
+ what the kernel returns.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.1-rc1,
+and the previous version, bash-3.1-beta1.
+
+1. Changes to Bash
+
+a. Fixed a bug that could cause core dumps due to accessing the current
+ pipeline while in the middle of modifying it.
+
+b. Fixed a bug that caused pathnames with backslashes still quoting characters
+ to be passed to opendir().
+
+c. Command word completion now obeys the setting of completion-ignore-case.
+
+d. Fixed a problem with redirection that caused file descriptors greater than
+ 2 to be inappropriately marked as close-on-exec.
+
+e. In Posix mode, after `wait' is called to wait for a particular process
+ explicitly, that process is removed from the list of processes known to
+ the shell, and subsequent attempts to wait for it return errors.
+
+f. Fixed a bug that caused extended pattern matching to incorrectly scan
+ backslash-escaped pattern characters.
+
+g. Fixed a synchronization problem that could cause core dumps when handling
+ a SIGWINCH.
+
+h. Fixed a bug that caused an unmatched backquote to be accepted without an
+ error when processing here documents.
+
+i. Fixed a small memory leak in the `cd' builtin.
+
+j. Fix for MacOS X so it gets the values for the HOSTTYPE, MACHTYPE, and
+ OSTYPE variables at build time, to support universal binaries.
+
+k. Fixed a bug that could cause an exit trap to return the exit status of
+ the trap command rather than the status as it was before the trap was
+ run as the shell's exit status.
+
+2. New Features in Bash
+
+3. Changes to Readline
+
+a. Fixed a bug that caused reversing the incremental search direction to
+ not work correctly.
+
+b. Fixed the vi-mode `U' command to only undo up to the first time insert mode
+ was entered, as Posix specifies.
+
+c. Fixed a bug in the vi-mode `r' command that left the cursor in the wrong
+ place.
+
+4. New Features in Readline
+
+a. New application-callable auxiliary function, rl_variable_value, returns
+ a string corresponding to a readline variable's value.
+
+b. When parsing inputrc files and variable binding commands, the parser
+ strips trailing whitespace from values assigned to boolean variables
+ before checking them.
+
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.1-beta1,
+and the previous version, bash-3.1-alpha1.
+
+1. Changes to Bash
+
+a. Added some system-specific signal names.
+
+b. Fixed a typo in the ulimit builtin to make `x' the right option to
+ maniuplate the limit on file locks.
+
+c. Fixed a problem with using += to append to index 0 of an array variable
+ when not using subscript syntax.
+
+d. A few changes to configure.in to remove calls to obsolete or outdated
+ macros.
+
+e. Make sure changes to variables bash handles specially (e.g., LC_ALL) are
+ made when the variable is set in the temporary environment to a command.
+
+f. Make sure changes to variables bash handles specially (e.g., LC_ALL) are
+ made when the variable is modified using `printf -v'.
+
+g. The export environment is now remade on cygwin when HOME is changed, so
+ DLLs bash is linked against pick up the new value. This fixes problems
+ with tilde expansion when linking against and already-installed readline.
+
+h. Small fix to the logic for performing tilde expansion in posix mode, so
+ expansion on the right-hand side of an assignment statement takes place.
+
+i. Fixed a bug that prevented redirections associated with a shell function
+ from being executed when in a subshell.
+
+j. Fixed `source' and `.' builtins to not require an executable file when
+ searching $PATH for a file to source.
+
+k. Fixed a bug that caused incorrect word splitting in a function when IFS
+ was declared local, then unset.
+
+l. Fixed a problem with the `kill' builtin that prevented sending signals
+ to a process group under certain circumstances when providing a pid < 0.
+
+m. When in POSIX mode, `pwd' now checks that the value it prints is the same
+ directory as `.', even when displaying $PWD.
+
+n. Fixed a problem with the `read' builtin when reading a script from standard
+ input and reading data from the same file.
+
+o. Fixed a problem with the `type' and `command' builtins that caused absolute
+ pathnames to be displayed incorrectly.
+
+p. Some changes to the `bg' builtin for POSIX conformance.
+
+q. The `fc' builtin now removes the `fc' command that caused it to invoke an
+ editor on specified history entries from the history entirely, rather than
+ simply ignoring it.
+
+r. When in POSIX mode, the `v' command in vi editing mode simply invokes vi
+ on the current command, rather than checking $FCEDIT and $EDITOR.
+
+s. Fixed a small memory leak in the pathname canonicalization code.
+
+t. Fixed a bug that caused the expanded value of a $'...' string to be
+ incorrectly re-quoted if it occurred within a double-quoted ${...}
+ parameter expansion.
+
+u. Restored default emacs-mode key binding of M-TAB to dynamic-complete-history.
+
+v. Fixed a bug that caused core dumps when interrupting loops running builtins
+ on some systems.
+
+w. Make sure that some of the functions bash provides replacements for are
+ not cpp defines.
+
+x. The code that scans embedded commands for the parser (`...` and $(...)) is
+ now more aware of embedded comments and their effect on quoted strings.
+
+y. Changed the `-n' option to the `history' builtin to not reset the number of
+ history lines read in the current session after reading the new lines from
+ the history file if the history is being appended when it is written to
+ the file, since the appending takes care of the problem that the adjustment
+ was intended to solve.
+
+z. Improved the error message displayed when a shell script fails to execute
+ because the environment and size of command line arguments are too large.
+
+aa. A small fix to make sure that $HISTCMD is evaluated whenever the shell is
+ saving commands to the history list, not just when HISTSIZE is defined.
+
+2. Changes to Readline
+
+a. The `change-case' command now correctly changes the case of multibyte
+ characters.
+
+b. Changes to the shared library construction scripts to deal with Windows
+ DLL naming conventions for Cygwin.
+
+c. Fixed the redisplay code to avoid core dumps resulting from a poorly-timed
+ SIGWINCH.
+
+d. Fixed the non-incremental search code in vi mode to dispose of any current
+ undo list when copying a line from the history into the current editing
+ buffer.
+
+e. The variable assignment code now ignores whitespace at the end of lines
+ when assigning to boolean variables.
+
+f. The `C-w' binding in incremental search now understands multibyte
+ characters.
+
+3. New Features in Bash
+
+a. A new configuration option, `--enable-strict-posix-default', which will
+ build bash to be POSIX conforming by default.
+
+4. New Features in Readline
+
+a. If the rl_completion_query_items is set to a value < 0, readline never
+ asks the user whether or not to view the possible completions.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.1-alpha1,
+and the previous version, bash-3.0-release.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused bash to crash if referencing an unset local array.
+
+b. Fixed a problem that caused tilde expansion to not be performed before
+ attempting globbing word completion.
+
+c. Fixed an incompatibility so that a first argument to trap that's a valid
+ signal number will be trated as a signal rather than a command to execute.
+
+d. Fixed ${#word} expansion to correctly compute the length of a string
+ containing multibyte characters.
+
+e. Fixed a bug that caused bash to not pass the correct flags for signal
+ disposition to child processes.
+
+f. Fixed a bug that caused `fc -l' to list one too many history entries.
+
+g. Some fixes to `fc' for POSIX conformance.
+
+h. Some fixes to job status display for POSIX conformance.
+
+i. Fixed a bug that caused `command -v' to display output if a command was not
+ found -- it should be silent.
+
+j. In POSIX mode, `type' and `command -[vV]' do not report non-executable
+ files, even if the shell will attempt to execute them.
+
+k. Fixed a bug that caused the `==' operator to the [[ command to not attempt
+ extended pattern matching.
+
+l. Fixed the brace expansion code to handle characters whose value exceeds 128.
+
+m. Fixed `printf' to handle strings with a leading `\0' whose length is
+ non-zero.
+
+n. Fixed a couple of problems with brace expansion where `${' was handled
+ incorrectly.
+
+o. Fixed off-by-one error when calculating the upper bound of `offset' when
+ processing the ${array[@]:offset:length} expansion.
+
+p. System-specific configuration changes for: FreeBSD 5.x, Interix, MacOS X
+ 10.4, Linux 2.4+ kernels, Linux 3.x kernels, Dragonfly BSD, QNX 6.x,
+ Cygwin
+
+q. Fixed a bug that caused the shell to ignore the status of the rightmost
+ command in a pipeline when the `pipefail' option was enabled.
+
+r. Fixed a completion bug that caused core dumps when expanding a directory
+ name.
+
+s. Fixed a bug that prevented `hash -d' from removing commands from the hash
+ table.
+
+t. Fixed word splitting to avoid really bad quadratic performance when
+ expanding long lists.
+
+u. Fixed a bug that caused negative offsets in substring expansion to use the
+ wrong values.
+
+v. Fixed a bug in printf that caused it to not return failure on write errors.
+
+w. Fixed a bug that caused commands in subshells to not be properly timed.
+
+x. The shell parser no longer attempts to parse a compound assignment specially
+ unless in a position where an assignment statement is acceptable or parsing
+ arguments to a builtin that accepts assignment statements.
+
+y. Fixed a problem that caused a `case' statement to be added to the history
+ incorrectly as a single command if the `case word' was on one line and the
+ `in' on another.
+
+z. Fixed a problem that caused internal shell quoting characters to be
+ incorrectly quoted with backslashes under some circumstances.
+
+aa. The shell now performs correct word splitting when IFS contains multibyte
+ characters.
+
+bb. The mail checking code now resets the cached file information if the size
+ drops to 0, even if the times don't change.
+
+cc. A completed command name that is found in $PATH as well as the name of a
+ directory in the current directory no longer has a slash appended in certain
+ circumstances: a single instance found in $PATH when `.' is not in $PATH,
+ and multiple instances found in $PATH, even when `.' is in $PATH.
+
+dd. Incorporated tilde expansion into the word expansion code rather than as a
+ separately-called function, fixing some cases where it was performed
+ inappropriately (e.g., after the second `=' in an assignment statement or
+ in a double-quoted parameter expansion).
+
+ee. Fixed several bugs encountered when parsing compound assignment statements,
+ so that compound assignments appearing as arguments to builtins are no
+ longer double-expanded.
+
+ff. Fixed a bug in the command execution code that caused asynchronous commands
+ containing command substitutions to not put the terminal in the wrong
+ process group.
+
+gg. Bash now handles the case where the WCONTINUED flag causes waitpid() to
+ return -1/EINVAL at runtime as well as configuration time.
+
+hh. Fixed parser to generate an error when the pipeline `argument' to `!' or
+ `time' is NULL.
+
+ii. The shell now takes a little more care when manipulating file descriptors
+ greater than 9 with the `exec' builtin.
+
+jj. Fixed a bug that caused variable assignments preceding the `command' builtin
+ preceding a special builtin to be preserved after the command completed in
+ POSIX mode.
+
+kk. Fixed a bug that allowed variables beginning with a digit to be created.
+
+ll. Fixed a bug that caused a \<newline> to be removed when parsing a $'...'
+ construct.
+
+mm. A shell whose name begins with `-' will now be a restricted shell if the
+ remainder of the name indicates it should be restricted.
+
+nn. Fixed a bug that could cause a core dump if FUNCNAME were changed or unset
+ during a function's execution.
+
+oo. Fixed a bug that caused executing a `return' in a function to not execute
+ a RETURN trap. The RETURN trap is inherited by shell functions only if
+ function tracing is globally enabled or has been enabled for that function.
+
+pp. Fixed cases where var[@] was not handled exactly like var, when var is a
+ scalar variable.
+
+qq. Fixed a bug that caused the first character after a SIGINT to be discarded
+ under certain circumstances.
+
+rr. Fixed exit status code so that a suspended job returns 128+signal as its
+ exit status (preventing commands after it in `&&' lists from being
+ executed).
+
+ss. Fixed a bug that caused the shell parser state to be changed by executing
+ a shell function as a result of word completion.
+
+tt. Fixed a long-standing bug that caused '\177' characters in variable
+ values to be discarded when expanded in double-quoted strings.
+
+uu. Fixed a bug that caused $RANDOM to be re-seeded multiple times in a
+ subshell environment.
+
+vv. Extensive changes to the job management code to avoid the pid-reuse and
+ pid-aliasing problems caused by retaining the exit status of too many jobs,
+ but still retain as many background job statuses as POSIX requires.
+
+ww. Fixed a parser bug in processing \<newline> that caused things like
+
+ ((echo 5) \
+ (echo 6))
+
+ to not work correctly.
+
+xx. `pwd -P' now sets $PWD to a directory name containing no symbolic links
+ when in posix mode, as POSIX requires.
+
+yy. In posix mode, bash no longer sets $PWD to a name containing no symbolic
+ links if a directory is chosen from $CDPATH.
+
+zz. The word splitting code now treats an IFS character that is not space,
+ tab, or newline and any adjacent IFS white space as a single delimiter, as
+ SUSv3/XPG6 require.
+
+aaa. The `read' builtin now checks whether or not the number of fields read is
+ exactly the same as the number of variables instead of just assigning the
+ rest of the line (minus any trailing IFS white space) to the last
+ variable. This is what POSIX/SUS/XPG all require.
+
+bbb. Fixed a bug that caused `read' to always check whether or not fd 0 was a
+ pipe, even when reading from another file descriptor.
+
+ccc. Fixed a bug that caused short-circuiting of execution even if the return
+ value was being inverted.
+
+ddd. Fixed a bug that caused a core dump while decoding \W escapes in PS1 if
+ PWD was unset.
+
+eee. Fixed a bug in `read' that counted internal quoting characters for the
+ purposes of `read -n'.
+
+fff. Fixed a bug so that a function definition in a pipeline causes a child
+ process to be forked at the right time.
+
+ggg. Bash will not attempt to link against a readline library that doesn't
+ have rl_gnu_readline_p == 1.
+
+hhh. Fixed a bug that caused `read' to consume one too many characters when
+ reading a fixed number of characters and the Nth character is a backslash.
+
+iii. Fixed a bug that caused `unset' on variables in the temporary environment
+ to leave them set when `unset' completed.
+
+jjj. Fixed a bug that caused bash to close fd 2 if an `exec' failed and the
+ shell didn't exit.
+
+kkk. The completion code is more careful to not turn `/' or `///' into `//',
+ for those systems on which `//' has special meaning.
+
+lll. Fixed a bug that caused command substitution in asynchronous commands to
+ close the wrong file descriptors.
+
+mmm. The shell no longer prints status messages about terminated background
+ processes unless job control is active.
+
+nnn. Fixed a bug that prevented multiple consecutive invocations of `history -s'
+ from adding all the commands to the history list.
+
+ooo. Added a couple of changes to make arithmetic expansion more consistent in
+ all its contexts (still not perfect).
+
+ppp. Fixed a bug that caused the parser to occasionally not find the right
+ terminating "`" in an old-style command substitution.
+
+qqq. Fixed a bug that caused core dumps when the shell was reading its non-
+ interactive input from fd 0 and fd 0 was duplicated and restored using a
+ combination of `exec' (to save) and redirection (to restore).
+
+rrr. Fixed a problem that caused loops in sourced scripts to not be cleaned
+ up properly when a `return' is executed.
+
+sss. Change internal command substitution completion function to append a slash
+ to directory names in the command.
+
+2. Changes to Readline
+
+a. Fixed a bug that caused multiliine prompts to be wrapped and displayed
+ incorrectly.
+
+b. Fixed a bug that caused ^P/^N in emacs mode to fail to display the current
+ line correctly.
+
+c. Fixed a problem in computing the number of invisible characters on the first
+ line of a prompt whose length exceeds the screen width.
+
+d. Fixed vi-mode searching so that failure preserves the current line rather
+ than the last line in the history list.
+
+e. Fixed the vi-mode `~' command (change-case) to have the correct behavior at
+ end-of-line when manipulating multibyte characters.
+
+f. Fixed the vi-mode `r' command (change-char) to have the correct behavior at
+ end-of-line when manipulating multibyte characters.
+
+g. Fixed multiple bugs in the redisplay of multibyte characters: displaying
+ prompts longer than the screen width containing multibyte characters,
+
+h. Fix the calculation of the number of physical characters in the prompt
+ string when it contains multibyte characters.
+
+i. A non-zero value for the `rl_complete_suppress_append' variable now causes
+ no `/' to be appended to a directory name.
+
+j. Fixed forward-word and backward-word to work when words contained
+ multibyte characters.
+
+k. Fixed a bug in finding the delimiter of a `?' substring when performing
+ history expansion in a locale that supports multibyte characters.
+
+l. Fixed a memory leak caused by not freeing the timestamp in a history entry.
+
+m. Fixed a bug that caused "\M-x" style key bindings to not obey the setting
+ of the `convert-meta' variable.
+
+n. Fixed saving and restoring primary prompt when prompting for incremental
+ and non-incremental searches; search prompts now display multibyte
+ characters correctly.
+
+o. Fixed a bug that caused keys originally bound to self-insert but shadowed
+ by a multi-character key sequence to not be inserted.
+
+p. Fixed code so rl_prep_term_function and rl_deprep_term_function aren't
+ dereferenced if NULL (matching the documentation).
+
+q. Extensive changes to readline to add enough state so that commands
+ requiring additional characters (searches, multi-key sequences, numeric
+ arguments, commands requiring an additional specifier character like
+ vi-mode change-char, etc.) work without synchronously waiting for
+ additional input.
+
+r. Lots of changes so readline builds and runs on MinGW.
+
+s. Readline no longer tries to modify the terminal settings when running in
+ callback mode.
+
+t. The Readline display code no longer sets the location of the last invisible
+ character in the prompt if the \[\] sequence is empty.
+
+3. New Features in Bash
+
+a. Bash now understands LC_TIME as a special variable so that time display
+ tracks the current locale.
+
+b. BASH_ARGC, BASH_ARGV, BASH_SOURCE, and BASH_LINENO are no longer created
+ as `invisible' variables and may not be unset.
+
+c. In POSIX mode, if `xpg_echo' option is enabled, the `echo' builtin doesn't
+ try to interpret any options at all, as POSIX requires.
+
+d. The `bg' builtin now accepts multiple arguments, as POSIX seems to specify.
+
+e. Fixed vi-mode word completion and glob expansion to perform tilde
+ expansion.
+
+f. The `**' mathematic exponentiation operator is now right-associative.
+
+g. The `ulimit' builtin has new options: -i (max number of pending signals),
+ -q (max size of POSIX message queues), and -x (max number of file locks).
+
+h. A bare `%' once again expands to the current job when used as a job
+ specifier.
+
+i. The `+=' assignment operator (append to the value of a string or array) is
+ now supported for assignment statements and arguments to builtin commands
+ that accept assignment statements.
+
+j. BASH_COMMAND now preserves its value when a DEBUG trap is executed.
+
+k. The `gnu_errfmt' option is enabled automatically if the shell is running
+ in an emacs terminal window.
+
+l. New configuration option: --single-help-strings. Causes long help text
+ to be written as a single string; intended to ease translation.
+
+m. The COMP_WORDBREAKS variable now causes the list of word break characters
+ to be emptied when the variable is unset.
+
+n. An unquoted expansion of $* when $IFS is empty now causes the positional
+ parameters to be concatenated if the expansion doesn't undergo word
+ splitting.
+
+o. Bash now inherits $_ from the environment if it appears there at startup.
+
+p. New shell option: nocasematch. If non-zero, shell pattern matching ignores
+ case when used by `case' and `[[' commands.
+
+q. The `printf' builtin takes a new option: -v var. That causes the output
+ to be placed into var instead of on stdout.
+
+r. By default, the shell no longer reports processes dying from SIGPIPE.
+
+s. Bash now sets the extern variable `environ' to the export environment it
+ creates, so C library functions that call getenv() (and can't use the
+ shell-provided replacement) get current values of environment variables.
+
+4. New Features in Readline
+
+a. The key sequence sent by the keypad `delete' key is now automatically
+ bound to delete-char.
+
+b. A negative argument to menu-complete now cycles backward through the
+ completion list.
+
+c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
+ readline will bind the terminal special characters to their readline
+ equivalents when it's called (on by default).
+
+d. New bindable command: vi-rubout. Saves deleted text for possible
+ reinsertion, as with any vi-mode `text modification' command; `X' is bound
+ to this in vi command mode.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.0-release,
+and the previous version, bash-3.0-rc1.
+
+1. Changes to Bash
+
+a. Fixed a boundary overrun that could cause segmentation faults when the
+ completion code hands an incomplete construct to the word expansion
+ functions.
+
+b. Changed posix mode behavior so that an error in a variable assignment
+ preceding a special builtin causes a non-interactive shell to exit.
+
+c. Change the directory expansion portion of the completion code to not
+ expand embedded command substitutions if the directory name appears in
+ the file system.
+
+d. Fixed a problem that caused `bash -r' to turn on restrictions before
+ reading the startup files.
+
+e. Fixed a problem with the default operation of the `umask' builtin.
+
+2. Changes to Readline
+
+a. Fixed a problem with readline saving the contents of the current line
+ before beginning a non-interactive search.
+
+b. Fixed a problem with EOF detection when using rl_event_hook.
+
+c. Fixed a problem with the vi mode `p' and `P' commands ignoring numeric
+ arguments.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.0-rc1,
+and the previous version, bash-3.0-beta1.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused incorrect behavior when referecing element 0 of
+ an array using $array, element 0 was unset, and `set -u' was enabled.
+
+b. System-specific changes for: SCO Unix 3.2, Tandem.
+
+c. Fixed a bug that caused inappropriate word splitting when a variable was
+ expanded within a double-quoted string that also included $@.
+
+d. Fixed a bug that caused `pwd' to not display anything in physical mode
+ when the file system had changed underneath the shell.
+
+e. Fixed a bug in the pre- and post- increment and decrement parsing in the
+ expression evaluator that caused errors when the operands and corresponding
+ operators were separated by whitespace.
+
+f. Fixed a bug that caused `history -p' to add an entry to the history list,
+ counter to the documentation. (Keeps the history expansions invoked by
+ emacs-mode command line editing from doing that as well.)
+
+g. Fixed a bug that could cause a core dump if `cd' is asked to print out a
+ pathname longer than PATH_MAX characters.
+
+h. Fixed a bug that caused jobs to be put into the wrong process group under
+ some circumstances after enabling job control with `set -m'.
+
+i. `unalias' now returns failure if no alias name arguments are supplied.
+
+j. Documented the characters not allowed to appear in an alias name.
+
+k. $* is no longer expanded as if in double quotes when it appears in the
+ body of a here document, as the SUS seems to require.
+
+l. The `bashbug' script now uses a directory in $TMPDIR for exclusive
+ access rather than trying to guess how the underlying OS provides for
+ secure temporary file creation.
+
+m. Fixed a few problems with `cd' and `pwd' when asked to operate on pathnames
+ longer than PATH_MAX characters.
+
+n. Fixed a memory leak caused when creating multiple local array variables
+ with identical names.
+
+o. Fixed a problem with calls to getcwd() so that bash now operates better
+ when the full pathname to the current directory is longer than PATH_MAX
+ bytes.
+
+p. The `trap' builtin now reports an error if a single non-signal argument
+ is specified.
+
+q. Fixed a bug that caused `umask' to not work correctly when presented
+ with a mask of all 0s.
+
+r. When `getopts' reaches the end of options, OPTARG is unset, as POSIX
+ appears to specify.
+
+s. Interactive mode now depends on whether or not stdin and stderr are
+ connected to a tty; formerly it was stdin and stdout. POSIX requires
+ this.
+
+t. Fixed vi-mode completion to work more as POSIX specifies (e.g., doing the
+ right kind of filename generation).
+
+2. Changes to Readline
+
+a. Fixed a problem that could cause readline to refer to freed memory when
+ moving between history lines while doing searches.
+
+b. Improvements to the code that expands and displays prompt strings
+ containing multibyte characters.
+
+c. Fixed a problem with vi-mode not correctly remembering the numeric argument
+ to the last `c'hange command for later use with `.'.
+
+d. Fixed a bug in vi-mode that caused multi-digit count arguments to work
+ incorrectly.
+
+e. Fixed a problem in vi-mode that caused the last text modification command
+ to not be remembered across different command lines.
+
+f. Fixed problems with changing characters and changing case at the end of
+ the line.
+
+3. New Features in Bash
+
+a. The `jobs', `kill', and `wait' builtins now accept job control notation
+ even if job control is not enabled.
+
+b. The historical behavior of `trap' that allows a missing `action' argument
+ to cause each specified signal's handling to be reset to its default is
+ now only supported when `trap' is given a single non-option argument.
+
+4. New Features in Readline
+
+a. When listing completions, directories have a `/' appended if the
+ `mark-directories' option has been enabled.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.0-beta1,
+and the previous version, bash-3.0-alpha.
+
+1. Changes to Bash
+
+a. Fixes to build correctly when arrays are not compiled into the shell.
+
+b. Fixed command substitution to run any exit trap defined in the command
+ substitution before returning; the exit trap is not inherited from the
+ calling shell.
+
+c. Fixes to process group synchronization code so that every child process
+ attempts to set the terminal's process group; fixes some synchronization
+ problems on Linux kernels that schedule the child to always run before
+ the parent.
+
+d. Fixed processing of octal and hex constants in printf builtin for POSIX.2
+ compliance.
+
+e. Fixed a couple of core dumps in the pattern removal code.
+
+f. Fixes to the array subrange extraction code to deal better with sparse
+ arrays.
+
+g. Parser errors and other errors that result in the shell exiting now cause
+ the exit trap to be run.
+
+h. Change the command substitution completion functions to not append any
+ closing quote, because it would be inserted a closing "`" or ")".
+
+i. Fix history initialization so assignments to $histchars made in startup
+ files are honored.
+
+j. If an exit trap does not contain a call to `exit', the shell now uses
+ the exit status of the last command executed before the trap as the exit
+ status of the shell.
+
+k. The parser now prompts with $PS2 if it reads a newline while parsing a
+ compound array assignment statement.
+
+l. When performing a compound array assignment, the parser doesn't treat
+ words of the form [index]=value as assignments if they're the result of
+ expansions.
+
+m. Fixed a bug that caused `return' executed in a trap command to make the
+ shell think it was still running the trap.
+
+n. Fixed the value of errno set by the pathname canonicalization functions.
+
+o. Changed the grammar so that `time' alone on a line times a null command
+ rather than being a syntax error.
+
+p. The pattern substitution code no longer performs quote removal on the
+ pattern before trying to match it, as the pattern removal functions do.
+
+q. Fixed a bug that could cause core dumps when checking whether a quoted
+ command name was being completed.
+
+r. Fixes to the pattern removal and pattern replacement expansions to deal
+ with multibyte characters better (and faster).
+
+s. Fix to the substring expansion (${param:off[:len]}) to deal with (possibly
+ multibyte) characters instead of raw bytes.
+
+t. Fixed a bug that caused some key bindings set in an inputrc to be ignored
+ at shell startup.
+
+u. Fixed a bug that caused unsetting a local variable within a function to
+ not work correctly.
+
+v. Fixed a bug that caused invalid variables to be created when using
+ `read -a'.
+
+w. Fixed a bug that caused "$@" to expand incorrectly when used as the right
+ hand side of a parameter expansion such as ${word:="$@"} if the first
+ character of $IFS was not a space.
+
+x. Fixed a slight cosmetic problem when printing commands containing a
+ `>&word' redirection.
+
+y. Fixed a problem that could cause here documents to not be created correctly
+ if the system temporary directory did not allow writing.
+
+2. Changes to Readline
+
+a. Change to history expansion functions to treat `^' as equivalent to word
+ one, as the documention states.
+
+b. Some changes to the display code to improve display and redisplay of
+ multibyte characters.
+
+c. Changes to speed up the multibyte character redisplay code.
+
+d. Fixed a bug in the vi-mode `E' command that caused it to skip over the
+ last character of a word if invoked while point was on the word's
+ next-to-last character.
+
+e. Fixed a bug that could cause incorrect filename quoting when
+ case-insensitive completion was enabled and the word being completed
+ contained backslashes quoting word break characters.
+
+f. Fixed a bug in redisplay triggered when the prompt string contains
+ invisible characters.
+
+g. Fixed some display (and other) bugs encountered in multibyte locales
+ when a non-ascii character was the last character on a line.
+
+h. Fixed some display bugs caused by multibyte characters in prompt strings.
+
+i. Fixed a problem with history expansion caused by non-whitespace characters
+ used as history word delimiters.
+
+3. New Features in Bash
+
+a. printf builtin understands two new escape sequences: \" and \?.
+
+b. `echo -e' understands two new escape sequences: \" and \?.
+
+c. The GNU `gettext' package and libintl have been integrated; the shell's
+ messages can be translated into different languages.
+
+d. The `\W' prompt expansion now abbreviates $HOME as `~', like `\w'.
+
+e. The error message printed when bash cannot open a shell script supplied
+ as argument 1 now includes the name of the shell, to better identify
+ the error as coming from bash.
+
+4. New Features in Readline
+
+a. New application variable, rl_completion_quote_character, set to any
+ quote character readline finds before it calls the application completion
+ function.
+
+b. New application variable, rl_completion_suppress_quote, settable by an
+ application completion function. If set to non-zero, readline does not
+ attempt to append a closing quote to a completed word.
+
+c. New application variable, rl_completion_found_quote, set to a non-zero
+ value if readline determines that the word to be completed is quoted.
+ Set before readline calls any application completion function.
+
+d. New function hook, rl_completion_word_break_hook, called when readline
+ needs to break a line into words when completion is attempted. Allows
+ the word break characters to vary based on position in the line.
+
+e. New bindable command: unix-filename-rubout. Does the same thing as
+ unix-word-rubout, but adds `/' to the set of word delimiters.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.0-alpha,
+and the previous version, bash-2.05b-release.
+
+1. Changes to Bash
+
+a. Fixes so that the shell will compile without some of the default options
+ defined.
+
+b. Fixed an error message that did not pass enough arguments to printf.
+
+c. Fixed a bug that caused input redirection to a builtin inside a script
+ being read from standard input to result in the rest of the already-
+ read and buffered script to be discarded.
+
+d. Fixed a bug that caused subshell initialization to close the file
+ descriptor from which the shell was reading a script under certain
+ circumstances.
+
+e. Fixed a bug that caused the shell to not advance a string pointer over
+ a null wide character when doing string operations.
+
+f. Fixed the internal logout code so that shells that time out waiting for
+ input (using $TMOUT) run ~/.bash_logout.
+
+g. Portability and configuration changes for: cygwin, HP/UX, GNU/FreeBSD.
+
+h. The parser no longer adds implicit double quotes to ((...)) arithmetic
+ commands.
+
+i. The ((...)) arithmetic command evaluation code was fixed to not dump core
+ when the expanded string is null.
+
+j. The ((...)) arithmetic command evaluation code was fixed to not perform
+ variable assignments while expanding the expression.
+
+k. Fixed a bug that caused word splitting to be performed incorrectly when
+ IFS is set, but null.
+
+l. Fixed a bug in brace expansion that caused a quoted `$' preceding an
+ open brace to inhibit brace expansion.
+
+m. Fixed a bug that caused a leading `-' in the shell's name to cause it to
+ not be recognized as a restricted shell.
+
+n. Fixed a bug in the arithmetic evaluation code that could cause longjmps
+ to an invalid location and result in a core dump.
+
+o. Fixed a bug in the calculation of how many history lines are new in a
+ single shell session when reading new history lines from a file with
+ `history -n'.
+
+p. Fixed a bug in pathname canonicalization that caused the shell to dump
+ core when presented with a pathname longer than PATH_MAX.
+
+q. Fixed the parser so that it doesn't try to compare a char variable to
+ EOF, which fails when chars are unsigned.
+
+r. Fixed a bug in the simple command execution code that caused occasional
+ core dumps.
+
+s. The shell does a better job of saving any partial parsing state during
+ operations which cause a command to be executed while a line is being
+ entered and parsed.
+
+t. The completion code now splits words more like the expansion code when
+ $IFS is used to split.
+
+u. The locale code does a better job of recomputing the various locale
+ variable values when LC_ALL is unset.
+
+v. The programmable completion code does a better job of dequoting expanded
+ word lists before comparing them against the word to be matched.
+
+w. The shell no longer seg faults if the expanded value of $PS4 is null
+ and `set -x' is enabled.
+
+x. Fixed a bug that caused core dumps when a here string expanded to NULL.
+
+y. The mail checking code now makes sure the mailbox is bigger before
+ reporting the existence of new mail.
+
+z. The parser does not try to expand $'...' and $"..." when the appear
+ within double quotes unless the `extquote' option has been enabled with
+ `shopt'. For backwards compatibility, it is enabled by default.
+
+aa. Fixed a bug that caused `for x; do ...' and `select x; do ... to use
+ $@ instead of "$@" for the implicit list of arguments.
+
+bb. Fixed a bug that caused a subshell of a restricted shell (e.g., one
+ spawned to execute a pipeline) to not exit immediately if attempting
+ to use a command containing a slash.
+
+cc. Fixed a problem with empty replacements for a pattern that doesn't match
+ when performing ${param/word/} expansion.
+
+dd. Word expansions performed while expanding redirections no longer search
+ a command's temporary environment to expand variable values.
+
+ee. Improvements to the alias expansion code when expanding subsequent words
+ because an aliase's value ends with a space.
+
+ff. `cd -' now prints the current working directory after a successful chdir
+ even when the shell is not interactive, as the standard requires.
+
+gg. The shell does a better job of ensuring a child process dies of SIGINT
+ before resending SIGINT to itself.
+
+hh. The arithmetic expansion variable assignment code now does the right
+ thing when assigning to `special' variables like OPTIND.
+
+ii. When history expansion verification is enabled, the bash readline helper
+ functions that do history expansion on the current line don't print
+ the results.
+
+jj. Fixed bugs with multiple consecutive alias expansion when one of the
+ expansions ends with a space.
+
+kk. Fixed a problem in the programmable completion code that could cause core
+ dumps when trying to initialize a set of possible completions from a
+ list of variables.
+
+ll. The \[ and \] escape characters are now ignored when decoding the prompt
+ string if the shell is started with editing disabled.
+
+mm. Fixed a bug that could leave extra characters in a string when doing
+ quoted null character removal.
+
+nn. Command substitution and other subshell operations no longer reset the
+ line number (aids the bash debugger).
+
+oo. Better line number management when executing simple commands, conditional
+ commands, for commands, and select commands.
+
+pp. The globbing code now uses malloc, with its better failure properties,
+ rather than alloca().
+
+qq. Fixed a bug that caused expansions like #{a[2]:=value} to create the
+ appropriate array element instead of a variable named `a[2]'.
+
+rr. Fixed a bug in the handling of a `?(...)' pattern immediately following
+ a `*' when extglob is enabled.
+
+ss. Fixed a bug that caused a `return' invoked in an exit trap when exit is
+ invoked in a function to misbehave.
+
+tt. Fixed a bug that caused CTLESC and CTLNUL characters to not be escaped
+ by the internal shell string quoting functions.
+
+uu. Fixed a bug that caused quoted null characters in an expanded word list
+ to be inappropriately assigned to an array variable when using `read -a'.
+
+vv. Fixed a bug that caused redirections accompanying a null command to persist
+ in the current shell.
+
+ww. Fixed a bug that caused the prompt to be printed when the shell was
+ expanding a multiline alias.
+
+xx. Fixed a bug that resulted in core dumps when the completion for a command
+ changed the compspec.
+
+yy. Fixed a bug that caused evaluation of programmable completions to print
+ notifications of completed jobs.
+
+zz. Bash now disables line editing when $EMACS == `t' and $TERM == `dumb'
+ (which is what emacs shell windows do).
+
+aaa. In posix mode, `kill -l' causes signal names to be displayed without
+ a leading `SIG'.
+
+bbb. Clear error flag on standard output so it doesn't persist across multiple
+ builtin commands.
+
+ccc. In posix mode, `alias' displays alias values without the leading `alias',
+ so the output cannot be used as subsequent input.
+
+ddd. In posix mode, the `trap' builtin doesn't check whether or not its
+ first argument is a signal specification and revert the signal handling
+ to its original disposition if it is.
+
+eee. Fixed several bugs in the handling of "$*" and "${array[*]}" by the
+ pattern substitution and removal expansions.
+
+fff. Fixed several problems with the handling of ${array[@]}, ${array[*]},
+ $@, and $* by the indirect variable expansion code.
+
+ggg. Fixed a bug that did not allow `time' to be aliased.
+
+hhh. Improved the mail checking code so it won't check (and possibly cause an
+ NFS file system mount) until MAILPATH or MAIL is given a value -- there
+ is no default if DEFAULT_MAIL_DIRECTORY is not defined at compile time.
+ (It is computed by configure, but can be #undef'd in config-bot.h.)
+
+iii. If the `chkwinsize' option is enabled, the shell checks for window size
+ changes if a child process exits due to a signal.
+
+jjj. Removed the attempts to avoid adding a slash at the end of a completed
+ executable name if there was a directory with the same name in the
+ current directory.
+
+kkk. Fixed PATH lookup code so it treats the permission bits separately for
+ owner, group, and other, rather than checking them all.
+
+lll. Fixed the locale code to reset the parser's idea of the character class
+ <blank>, which controls how it splits tokens, when the locale changes.
+
+mmm. The shell now binds its special readline functions and key bindings only
+ if the user's inputrc file has not already bound them.
+
+nnn. The shell now reports on processes that dump core due to signals when
+ invoked as `-c command'.
+
+2. Changes to Readline
+
+a. Fixes to avoid core dumps because of null pointer references in the
+ multibyte character code.
+
+b. Fix to avoid infinite recursion caused by certain key combinations.
+
+c. Fixed a bug that caused the vi-mode `last command' to be set incorrectly.
+
+d. Readline no longer tries to read ahead more than one line of input, even
+ when more is available.
+
+e. Fixed the code that adjusts the point to not mishandle null wide
+ characters.
+
+f. Fixed a bug in the history expansion `g' modifier that caused it to skip
+ every other match.
+
+g. Fixed a bug that caused the prompt to overwrite previous output when the
+ output doesn't contain a newline and the locale supports multibyte
+ characters. This same change fixes the problem of readline redisplay
+ slowing down dramatically as the line gets longer in multibyte locales.
+
+h. History traversal with arrow keys in vi insertion mode causes the cursor
+ to be placed at the end of the new line, like in emacs mode.
+
+i. The locale initialization code does a better job of using the right
+ precedence and defaulting when checking the appropriate environment
+ variables.
+
+j. Fixed the history word tokenizer to handle <( and >( better when used as
+ part of bash.
+
+k. The overwrite mode code received several bug fixes to improve undo.
+
+l. Many speedups to the multibyte character redisplay code.
+
+m. The callback character reading interface should not hang waiting to read
+ keyboard input.
+
+n. Fixed a bug with redoing vi-mode `s' command.
+
+o. The code that initializes the terminal tracks changes made to the terminal
+ special characters with stty(1) (or equivalent), so that these changes
+ are reflected in the readline bindings. New application-callable function
+ to make it work: rl_tty_unset_default_bindings().
+
+p. Fixed a bug that could cause garbage to be inserted in the buffer when
+ changing character case in vi mode when using a multibyte locale.
+
+q. Fixed a bug in the redisplay code that caused problems on systems
+ supporting multibyte characters when moving between history lines when the
+ new line has more glyphs but fewer bytes.
+
+r. Undo and redo now work better after exiting vi insertion mode.
+
+s. Make sure system calls are restarted after a SIGWINCH is received using
+ SA_RESTART.
+
+t. Improvements to the code that displays possible completions when using
+ multibyte characters.
+
+u. Fixed a problem when parsing nested if statements in inputrc files.
+
+v. The completer now takes multibyte characters into account when looking for
+ quoted substrings on which to perform completion.
+
+w. The history search functions now perform better bounds checking on the
+ history list.
+
+3. New Features in Bash
+
+a. ANSI string expansion now implements the \x{hexdigits} escape.
+
+b. There is a new loadable `strftime' builtin.
+
+c. New variable, COMP_WORDBREAKS, which controls the readline completer's
+ idea of word break characters.
+
+d. The `type' builtin no longer reports on aliases unless alias expansion
+ will actually be performed.
+
+e. HISTCONTROL is now a colon-separated list of values, which permits
+ more extensibility and backwards compatibility.
+
+f. HISTCONTROL may now include the `erasedups' option, which causes all lines
+ matching a line being added to be removed from the history list.
+
+g. `configure' has a new `--enable-multibyte' argument that permits multibyte
+ character support to be disabled even on systems that support it.
+
+h. New variables to support the bash debugger: BASH_ARGC, BASH_ARGV,
+ BASH_SOURCE, BASH_LINENO, BASH_SUBSHELL, BASH_EXECUTION_STRING,
+ BASH_COMMAND
+
+i. FUNCNAME has been changed to support the debugger: it's now an array
+ variable.
+
+j. for, case, select, arithmetic commands now keep line number information
+ for the debugger.
+
+k. There is a new `RETURN' trap executed when a function or sourced script
+ returns (not inherited child processes; inherited by command substitution
+ if function tracing is enabled and the debugger is active).
+
+l. New invocation option: --debugger. Enables debugging and turns on new
+ `extdebug' shell option.
+
+m. New `functrace' and `errtrace' options to `set -o' cause DEBUG and ERR
+ traps, respectively, to be inherited by shell functions. Equivalent to
+ `set -T' and `set -E' respectively. The `functrace' option also controls
+ whether or not the DEBUG trap is inherited by sourced scripts.
+
+n. The DEBUG trap is run before binding the variable and running the action
+ list in a `for' command, binding the selection variable and running the
+ query in a `select' command, and before attempting a match in a `case'
+ command.
+
+o. New `--enable-debugger' option to `configure' to compile in the debugger
+ support code.
+
+p. `declare -F' now prints out extra line number and source file information
+ if the `extdebug' option is set.
+
+q. If `extdebug' is enabled, a non-zero return value from a DEBUG trap causes
+ the next command to be skipped, and a return value of 2 while in a
+ function or sourced script forces a `return'.
+
+r. New `caller' builtin to provide a call stack for the bash debugger.
+
+s. The DEBUG trap is run just before the first command in a function body is
+ executed, for the debugger.
+
+t. `for', `select', and `case' command heads are printed when `set -x' is
+ enabled.
+
+u. There is a new {x..y} brace expansion, which is shorthand for {x.x+1,
+ x+2,...,y}. x and y can be integers or single characters; the sequence
+ may ascend or descend; the increment is always 1.
+
+v. New ksh93-like ${!array[@]} expansion, expands to all the keys (indices)
+ of array.
+
+w. New `force_fignore' shopt option; if enabled, suffixes specified by
+ FIGNORE cause words to be ignored when performing word completion even
+ if they're the only possibilities.
+
+x. New `gnu_errfmt' shopt option; if enabled, error messages follow the `gnu
+ style' (filename:lineno:message) format.
+
+y. New `-o bashdefault' option to complete and compgen; if set, causes the
+ whole set of bash completions to be performed if the compspec doesn't
+ result in a match.
+
+z. New `-o plusdirs' option to complete and compgen; if set, causes directory
+ name completion to be performed and the results added to the rest of the
+ possible completions.
+
+aa. `kill' is available as a builtin even when the shell is built without
+ job control.
+
+bb. New HISTTIMEFORMAT variable; value is a format string to pass to
+ strftime(3). If set and not null, the `history' builtin prints out
+ timestamp information according to the specified format when displaying
+ history entries. If set, bash tells the history library to write out
+ timestamp information when the history file is written.
+
+cc. The [[ ... ]] command has a new binary `=~' operator that performs
+ extended regular expression (egrep-like) matching.
+
+dd. `configure' has a new `--enable-cond-regexp' option (enabled by default)
+ to enable the =~ operator and regexp matching in [[ ... ]].
+
+ee. Subexpressions matched by the =~ operator are placed in the new
+ BASH_REMATCH array variable.
+
+ff. New `failglob' option that causes an expansion error when pathname
+ expansion fails to produce a match.
+
+gg. New `set -o pipefail' option that causes a pipeline to return a failure
+ status if any of the processes in the pipeline fail, not just the last
+ one.
+
+4. New Features in Readline
+
+a. History expansion has a new `a' modifier equivalent to the `g' modifier
+ for compatibility with the BSD csh.
+
+b. History expansion has a new `G' modifier equivalent to the BSD csh `g'
+ modifier, which performs a substitution once per word.
+
+c. All non-incremental search operations may now undo the operation of
+ replacing the current line with the history line.
+
+d. The text inserted by an `a' command in vi mode can be reinserted with
+ `.'.
+
+e. New bindable variable, `show-all-if-unmodified'. If set, the readline
+ completer will list possible completions immediately if there is more
+ than one completion and partial completion cannot be performed.
+
+f. There is a new application-callable `free_history_entry()' function.
+
+g. History list entries now contain timestamp information; the history file
+ functions know how to read and write timestamp information associated
+ with each entry.
+
+h. Four new key binding functions have been added:
+
+ rl_bind_key_if_unbound()
+ rl_bind_key_if_unbound_in_map()
+ rl_bind_keyseq_if_unbound()
+ rl_bind_keyseq_if_unbound_in_map()
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05b-release,
+and the previous version, bash-2.05b-beta2.
+
+1. Changes to Bash
+
+a. Fixed an off-by-one error in the function that translates job
+ specifications.
+
+b. Note that we're running under Emacs and disable line editing if
+ $EMACS == `t'.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05b-beta2,
+and the previous version, bash-2.05b-beta1.
+
+1. Changes to Bash
+
+a. Fixed the /= and %= arithmetic operators to catch division by zero.
+
+b. Added putenv, setenv, unsetenv to getenv replacement for completeness.
+
+c. Fixed a bug that could cause the -O expand_aliases invocation option
+ to not take effect.
+
+d. Fixed a problem with process substitution that resulted in incorrect
+ behavior when the number of process substitutions in an individual
+ command approached 64.
+
+2. Changes to Readline
+
+a. Fixed a problem with backward-char-search when on a system with support
+ for multibyte characters when running in a locale without any multibyte
+ characters.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05b-beta1,
+and the previous version, bash-2.05b-alpha1.
+
+1. Changes to Bash
+
+a. Fixed a problem when parsing a POSIX.2 character class name while
+ evaluating a bracket expression containing multibyte characters.
+
+b. Changed the help text for `bind' to make it clear that any command
+ that may be placed in ~/.inputrc is a valid argument to `bind'.
+
+c. Added `help' builtin entries for `((', `[[', and arithmetic for.
+
+d. malloc updated again:
+ o slightly better overflow and underflow detection by putting the
+ chunk size at the beginning and end of the chunk and making
+ sure they match in free/realloc
+ o partial page allocated to make things page-aligned no longer
+ completely wasted
+ o block coalescing now enabled by default
+ o splitting and coalescing enabled for 32-byte chunks, the most
+ common size requested
+ o fixed a problem that resulted in spurious underflow messages and
+ aborts
+ o bin sizes are precomputed and stored in an array rather than
+ being computed at run time
+ o malloc will return memory blocks back to the system if the block
+ being freed is at the top of the heap and of sufficient size to
+ make it worthwhile
+ o malloc/free/realloc now inline memset instead of calling the
+ libc function; uses Duff's device for good performance
+
+e. Check for getservent(); make the service name completion code dependent
+ on its presence.
+
+f. Changed the readline callback that executes a command bound to a key
+ sequence to not save the executed command on the history list and to
+ save and restore the parsing state.
+
+g. Changes to lib/sh/snprintf.c: fixed some bugs in the `g' and `G'
+ floating point format display; implemented the "'" flag character
+ that turns on thousands' grouping; fixed behavior on systems where
+ MB_CUR_MAX does not evaluate to a constant.
+
+h. The `unset' builtin no longer returns a failure status when asked to
+ unset a previously-unset variable or function.
+
+i. Changes to the build system to make it easier to cross-compile bash
+ for different systems.
+
+j. Added `,' to the characters that are backslash-escaped during filename
+ completion, to avoid problems with complete-into-braces and RCS filenames
+ containing commas.
+
+k. Some changes to the multibyte character support code to avoid many calls
+ to strlen().
+
+l. Bash now correctly honors setting LANG to some value when LC_ALL does not
+ already have a value.
+
+m. Fixed a bug that could cause SIGSEGV when processing nested traps with
+ trap handlers.
+
+n. The `source/.' builtin now restores the positional parameters when it
+ returns unless they were changed using the `set' builtin during the file's
+ execution.
+
+o. Fixed a bug that caused a syntax error when a command was terminated by
+ EOF.
+
+2. New Features in Bash
+
+a. There is now support for placing the long help text into separate files
+ installed into ${datadir}/bash. Not enabled by default; can be turned
+ on with `--enable-separate-helpfiles' option to configure.
+
+b. All builtins that take operands accept a `--' pseudo-option, except
+ `echo'.
+
+c. The `echo' builtin now accepts \0xxx (zero to three octal digits following
+ the `0') in addition to \xxx (one to three octal digits) for SUSv3/XPG6/
+ POSIX.1-2001 compliance.
+
+3. Changes to Readline
+
+a. Fixed a small problem in _rl_insert_char with multibyte characters.
+
+b. Fixes from IBM for line wrapping problems when using multibyte characters.
+
+c. Fixed a problem which caused the display to be messed up when the last
+ line of a multi-line prompt (possibly containing invisible characters)
+ was longer than the screen width.
+
+d. Fixed a problem with the vi-mode `r' command that ocurred on systems with
+ support for multibyte characters when running in a locale without any
+ multibyte characters.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05b-alpha1,
+and the previous version, bash-2.05a-release.
+
+1. Changes to Bash
+
+a. Some changes to work around inlining differences between compilers.
+
+b. Added more prototypes for internal shell typedefs, to catch argument
+ passing errors when using pointers to functions.
+
+c. The `cd' builtin now fails in posix mode when a valid directory cannot be
+ constructed from a relative pathname argument and the $PWD using pathname
+ canonicalization, and the -P option has not been supplied. Previously,
+ the shell would attempt to use what the user typed, leading to weird
+ values for $PWD and discrepancies between the value of $PWD and the
+ actual working directory.
+
+d. The `cd' builtin now resets $PWD when canonicalization fails but a chdir
+ to the pathname passed as an argument succeeds (when not in posix mode).
+
+e. The `fc' builtin has been fixed, as POSIX requires, to use the closest
+ history position in range when given an out-of-range argument.
+
+f. The history file loading code was changed to allow lines to be saved in
+ the history list from the shell startup files.
+
+g. `history -s args' now works better in compound commands.
+
+h. The tilde expansion code was fixed to better recognize when it's being
+ invoked in an assignment context, which enables expansion after `='
+ and `:'.
+
+i. Fixed the command name completion code so a slash is no longer appended
+ to a single match if there happens to be a directory with that name in
+ $PWD.
+
+j. Fixed compound array assignment to no longer perform alias expansion, to
+ allow reserved words as array members, and to not produce extra output
+ when the `-v' option had been enabled.
+
+k. Fixed the programmable completion code to better handle newlines in lists
+ of possible completions (e.g., `complete -W').
+
+l. Removed the reserved words from the `bash-builtins' manual page.
+
+m. Parser error reporting now attempts to do a better job of identifying the
+ token in error rather than doing straight textual analysis.
+
+n. Fixes for Inf/NaN, locales, wide/multibyte characters and zero-length
+ arguments in the library snprintf(3) replacement.
+
+o. `read -e' no longer does command name completion on the first word on
+ the line being read.
+
+p. `select' now returns failure if the read of the user's selection fails.
+
+q. Fixed a bug that could cause a core dump when setting $PIPESTATUS.
+
+r. Fixes to not allocate so many job slots when the shell is running a loop
+ with job control enabled in a subshell of an interactive shell.
+
+s. Fixed a bug in the trap code that caused traps to be inherited by
+ command substitutions in some cases.
+
+t. Fixed a bug that could cause alias expansion to inappropriately expand
+ the word following the alias.
+
+u. Fixed a bug in the `kill' builtin that mishandled negative pid arguments.
+
+v. The parser is less lenient when parsing assignment statements where the
+ characters before the `=' don't comprise a valid identifier.
+
+w. The arithmetic expression evaluation code now honors the setting of the
+ `-u' option when expanding variable names.
+
+x. Fixed the arithmetic evaluation code to allow array subscripts to be
+ assigned (`let b[7]=42') and auto-incremented and auto-decremented
+ (e.g., b[7]++).
+
+y. Reimplemented the existing prompt string date and time expansions using
+ strftime(3), which changed the output of \@ in some locales.
+
+z. Fixed a bug that could cause a core dump when a special shell variable
+ (like RANDOM) was converted to an array with a variable assignment.
+
+aa. Fixed a bug that would reset the handler for a signal the user had
+ trapped to a function that would exit the shell when setting the exit
+ trap in a non-interactive shell.
+
+bb. Changed the execve(2) wrapper code to check whether or not a failing
+ command is a directory before looking at whether a `#!' interpreter
+ failed for some reason.
+
+cc. Fixed a bug in the command printing code so it no longer inserts a `;'
+ after a newline, which produces a syntax error when reused as input.
+
+dd. The code that expands $PS4 no longer inherits the `-x' flag.
+
+ee. The bash-specific completion functions may now take advantage of the
+ double-TAB and M-? features of the standard readline completion
+ functions.
+
+ff. The mail checking code no longer prints a message if the checked file's
+ size has not increased, even if the access time is less than the modification time.
+
+gg. Rewrote the variable symbol table code: there is now a stack of
+ contexts, each possibly including a separate symbol table; there can
+ be more than one temporary environment supplied to nested invocations
+ of `./source'; the temporary environments no longer require so much
+ special-case code; shell functions now handle the temporary environment
+ and local variables more consistently; function scope exit is faster now
+ that the entire symbol table does not have to be traversed to dispose of
+ local variables; it is now easier to push vars from the temporary
+ environment to the shell's variable table in posix mode; some duplicated
+ code has been removed.
+
+hh. Regularized the error message printing code; builtin_error is now called
+ more consistently, and common error message strings are handled by small
+ functions. This should make eventual message translation easier.
+
+ii. Error messages now include the line number in a script when the shell
+ is not interactive.
+
+jj. Array subscript expansion now takes place even when the array variable is
+ unset, so side effects will take place.
+
+kk. Fixed a bug in the SICGHLD child-reaping code so that it won't find
+ jobs already marked as terminated if the OS reuses pids quickly enough.
+
+ll. Fixed a bug that could cause a signal to not interrupt the `wait'
+ builtin while it was waiting for a background process to terminate.
+
+mm. A couple of changes to make it easier for multiple shells to share history
+ files using `history -n', `history -r', and `history -w'.
+
+nn. The `getopts' builtin always increments OPTIND to point to the next
+ option to be handled when an option is returned, whether it's valid
+ or not, as POSIX 1003.x-2001 requires.
+
+oo. Changed some parts of the expansion code to avoid allocating and
+ immediately freeing memory without using the results for anything.
+
+pp. The shell now keeps track of $IFS internally, updating its internal map
+ each time the variable is assigned a new value (or at local scope exit).
+ This saves thousands of hash lookups for IFS, which, while individually
+ cheap, add up.
+
+qq. Rewrote the hash table code: searching and insertion are much faster now,
+ and it uses a better string hashing function; augmented the function
+ interface to simplify other parts of the code and remove duplicated code
+
+rr. The shell now uses a simple, generic `object cache' for allocating and
+ caching words and word lists, which were the major users of
+ malloc/free.
+
+ss. Fixed the assignment statement parsing code to allow whitespace and
+ newlines in subscripts when performing array element assignment.
+
+tt. The shell now issues many fewer calls to sigprocmask and other signal
+ masking system calls.
+
+uu. Fixed the `test' and conditional command file comparison operators to
+ work right when one file has a non-positive timestamp and the other
+ does not exist.
+
+vv. Fixed some cases where the special characters '\001' and '\177' in the
+ values of variables or positional parameters caused incorrect expansion
+ results.
+
+2. Changes to Readline
+
+a. Fixed output of comment-begin character when listing variable values.
+
+b. Added some default key bindings for common escape sequences produced by
+ HOME and END keys.
+
+c. Fixed the mark handling code to be more emacs-compatible.
+
+d. A bug was fixed in the code that prints possible completions to keep it
+ from printing empty strings in certain circumstances.
+
+e. Change the key sequence printing code to print ESC as M\- if ESC is a
+ meta-prefix character -- it's easier for users to understand than \e.
+
+f. Fixed unstifle_history() to return values that match the documentation.
+
+g. Fixed the event loop (rl_event_hook) to handle the case where the input
+ file descriptor is invalidated.
+
+h. Fixed the prompt display code to work better when the application has a
+ custom redisplay function.
+
+i. Changes to make reading and writing the history file a little faster, and
+ to cope with huge history files without calling abort(3) from xmalloc.
+
+j. The vi-mode `S' and `s' commands are now undone correctly.
+
+3. New Features in Bash
+
+a. If set, TMOUT is the default timeout for the `read' builtin.
+
+b. `type' has two new options: `-f' suppresses shell function lookup, and
+ `-P' forces a $PATH search.
+
+c. New code to handle multibyte characters.
+
+d. `select' was changed to be more ksh-compatible, in that the menu is
+ reprinted each time through the loop only if REPLY is set to NULL.
+ The previous behavior is available as a compile-time option.
+
+e. `complete -d' and `complete -o dirnames' now force a slash to be
+ appended to names which are symlinks to directories.
+
+f. There is now a bindable edit-and-execute-command readline command,
+ like the vi-mode `v' command, bound to C-xC-e in emacs mode.
+
+g. Added support for ksh93-like [:word:] character class in pattern matching.
+
+h. The $'...' quoting construct now expands \cX to Control-X.
+
+i. A new \D{...} prompt expansion; passes the `...' to strftime and inserts
+ the result into the expanded prompt.
+
+j. The shell now performs arithmetic in the largest integer size the
+ machine supports (intmax_t), instead of long.
+
+k. If a numeric argument is supplied to one of the bash globbing completion
+ functions, a `*' is appended to the word before expansion is attempted.
+
+l. The bash globbing completion functions now allow completions to be listed
+ with double tabs or if `show-all-if-ambiguous' is set.
+
+m. New `-o nospace' option for `complete' and `compgen' builtins; suppresses
+ readline's appending a space to the completed word.
+
+n. New `here-string' redirection operator: <<< word.
+
+o. When displaying variables, function attributes and definitions are shown
+ separately, allowing them to be re-used as input (attempting to re-use
+ the old output would result in syntax errors).
+
+p. There is a new configuration option `--enable-mem-scramble', controls
+ bash malloc behavior of writing garbage characters into memory at
+ allocation and free time.
+
+q. The `complete' and `compgen' builtins now have a new `-s/-A service'
+ option to complete on names from /etc/services.
+
+r. `read' has a new `-u fd' option to read from a specified file descriptor.
+
+s. Fix the completion code so that expansion errors in a directory name
+ don't cause a longjmp back to the command loop.
+
+t. Fixed word completion inside command substitution to work a little more
+ intuitively.
+
+u. The `printf' %q format specifier now uses $'...' quoting to print the
+ argument if it contains non-printing characters.
+
+v. The `declare' and `typeset' builtins have a new `-t' option. When applied
+ to functions, it causes the DEBUG trap to be inherited by the named
+ function. Currently has no effect on variables.
+
+w. The DEBUG trap is now run *before* simple commands, ((...)) commands,
+ [[...]] conditional commands, and for ((...)) loops.
+
+x. The expansion of $LINENO inside a shell function is only relative to the
+ function start if the shell is interactive -- if the shell is running a
+ script, $LINENO expands to the line number in the script. This is as
+ POSIX-2001 requires.
+
+y. The bash debugger in examples/bashdb has been modified to work with the
+ new DEBUG trap semantics, the command set has been made more gdb-like,
+ and the changes to $LINENO make debugging functions work better. Code
+ from Gary Vaughan.
+
+z. New [n]<&word- and [n]>&word- redirections from ksh93 -- move fds (dup
+ and close).
+
+aa. There is a new `-l' invocation option, equivalent to `--login'.
+
+bb. The `hash' builtin has a new `-l' option to list contents in a reusable
+ format, and a `-d' option to remove a name from the hash table.
+
+4. New Features in Readline
+
+a. Support for key `subsequences': allows, e.g., ESC and ESC-a to both
+ be bound to readline functions. Now the arrow keys may be used in vi
+ insert mode.
+
+b. When listing completions, and the number of lines displayed is more than
+ the screen length, readline uses an internal pager to display the results.
+ This is controlled by the `page-completions' variable (default on).
+
+c. New code to handle editing and displaying multibyte characters.
+
+d. The behavior introduced in bash-2.05a of deciding whether or not to
+ append a slash to a completed name that is a symlink to a directory has
+ been made optional, controlled by the `mark-symlinked-directories'
+ variable (default is the 2.05a behavior).
+
+e. The `insert-comment' command now acts as a toggle if given a numeric
+ argument: if the first characters on the line don't specify a
+ comment, insert one; if they do, delete the comment text
+
+f. New application-settable completion variable:
+ rl_completion_mark_symlink_dirs, allows an application's completion
+ function to temporarily override the user's preference for appending
+ slashes to names which are symlinks to directories.
+
+g. New function available to application completion functions:
+ rl_completion_mode, to tell how the completion function was invoked
+ and decide which argument to supply to rl_complete_internal (to list
+ completions, etc.).
+
+h. Readline now has an overwrite mode, toggled by the `overwrite-mode'
+ bindable command, which could be bound to `Insert'.
+
+i. New application-settable completion variable:
+ rl_completion_suppress_append, inhibits appending of
+ rl_completion_append_character to completed words.
+
+j. New key bindings when reading an incremental search string: ^W yanks
+ the currently-matched word out of the current line into the search
+ string; ^Y yanks the rest of the current line into the search string,
+ DEL or ^H deletes characters from the search string.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05a-release,
+and the previous version, bash-2.05a-rc1.
+
+1. Changes to Bash
+
+a. Fixed the `printf' builtin so that the variable name supplied as an
+ argument to a %n conversion must be a valid shell identifier.
+
+b. Improved the random number generator slightly.
+
+c. Changes to configuration to not put -I/usr/include into $CFLAGS, since
+ it messes up some includes.
+
+d. Corrected description of POSIXLY_CORRECT in man page and info manual.
+
+e. Fixed a couple of cases of incorrect function prototypes that sneaked
+ through and caused compilation problems.
+
+f. A few changes to avoid potential core dumps in the programmable completion
+ code.
+
+g. Fixed a configure problem that could cause a non-existent file to show
+ up in LIBOBJS.
+
+h. Fixed a configure problem that could cause siglist.o to not be built when
+ required.
+
+i. Changes to the strtoimax and strtoumax replacement functions to work
+ around buggy compilers.
+
+j. Fixed a problem with the snprintf replacement function that could
+ potentially cause a core dump.
+
+2. Changes to Readline
+
+a. Fixed a locale-specific problem in the vi-mode `goto mark' command.
+
+b. Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause
+ include file problems.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05a-rc1,
+and the previous version, bash-2.05a-beta1.
+
+1. Changes to Bash
+
+a. Fixed the snprintf replacement to correctly implement the `alternate form'
+ of the %g and %G conversions.
+
+b. Fixed snprintf to correctly handle the optional precision with the %g and
+ %G conversions.
+
+c. Fixed the arithmetic evaluation code to correct the values of `@' and `_'
+ when translating base-64 constants (they were backwards).
+
+d. New library functions for formatting long and long long ints.
+
+e. Fixed a few places where negative array subscripts could have occurred,
+ mostly as the result of systems using signed characters.
+
+f. Fixed a few places that assumed a pid_t was no wider than an int.
+
+g. Fixed the `maildir' mail checking code to work on systems where a
+ `struct stat' doesn't include an `st_blocks' member.
+
+h. Fixed snprintf to make `unsigned long long' conversion formats (%llu)
+ work better.
+
+i. Fixed snprintf to not print a sign when asked to do an unsigned conversion.
+
+j. Made configure changes to avoid compiling empty source files in lib/sh.
+
+k. New replacement functions (if necessary) for strtoull, strtoll, strtoimax,
+ strtoumax.
+
+l. The `printf' builtin now handles the `ll' and `j' length modifiers
+ directly, since they can affect the type and width of the argument
+ passed to printf(3).
+
+m. Renamed a number of the bash-specific autoconf macros in aclocal.m4 to
+ have more sytematic naming, with accompanying changes to configure.in.
+
+n. Fixed snprintf to handle long doubles and the %a/%A conversions by
+ falling back to sprintf, as long as sprintf supports them.
+
+o. Fixed return value from vsnprintf/snprintf to be the number of characters
+ that would have been printed, even if that number exceeds the buffer
+ size passed as an argument.
+
+p. Bash no longer attempts to define its own versions of some ctype macros
+ if they are implemented as functions in libc but not as macros in
+ <ctype.h>.
+
+q. Changed the variable printing code (used by `set', `export', etc.) to
+ not use the $'...' syntax when in posix mode, since that caused
+ interoperability problems with other shells (most notably with autoconf).
+ When not in posix mode, it uses $'...' if the string to be printed
+ contains non-printing characters and regular single quotes otherwise.
+
+r. snprintf now recognizes the %F conversion.
+
+s. Fixed a bug that could cause the wrong status to be returned by a shell
+ function when the shell is compiled without job control and a null
+ command containing a command substutition was executed in the function.
+
+t. When in posix mode, the default value for MAILCHECK is 600.
+
+u. Bash only initializes FUNCNAME, GROUPS, and DIRSTACK as special variables
+ if they're not in the initial environment.
+
+v. If SECONDS appears in the initial environment with a valid integer value,
+ bash uses that as the starting value, as if an assignment had been
+ performed.
+
+w. Bash no longer auto-exports HOME, PATH, SHELL, or TERM, even though it
+ gives them default values if they don't appear in the initial environment.
+
+x. Bash no longer auto-exports HOSTNAME, HOSTTYPE, MACHTYPE, or OSTYPE,
+ even if it assigns them default values.
+
+y. Bash no longer removes the export attribute from SSH_CLIENT or SSH2_CLIENT
+ if they appear in the initial environment.
+
+z. Bash no longer attempts to discover if it's being run by sshd in order to
+ run the startup files. If the SSH_SOURCE_BASHRC is uncommented in
+ config-top.h it will attempt to do so as previously, but that's commented
+ out in the distributed version.
+
+aa. Fixed a typo in the code that tests for LC_NUMERIC.
+
+bb. The POSIXLY_CORRECT shell variable and its effects are now documented.
+
+cc. Some changes to several of the support shell scripts included in the
+ definitions to try to avoid race conditions and attacks.
+
+dd. Several changes to avoid warnings from `gcc -Wall'.
+
+ee. Fixed a problem with the `unset' builtin that could cause incorrect
+ results if asked to unset a variable and an array subscript in the
+ same command.
+
+ff. A few changes to the shell's temporary file creation code to avoid
+ potential file descriptor leaks and to prefer the system's idea of
+ the temporary directory to use.
+
+gg. Fixes to build with the C alloca in lib/malloc/alloca.c if the system
+ requires it but the shell has been configured --without-bash-malloc.
+
+hh. Updated the documentation to note that only interactive shells resend
+ SIGHUP to all jobs before exiting.
+
+ii. Fixes to only pass unquoted tilde words to tilde_expand, rather than
+ rely on tilde_expand or getpwnam(3) to handle the quotes (MacOS 10.x
+ will remove backslashes in any login name passed to getpwnam(3)).
+
+jj. Small change from Paul Eggert to make LINENO right in commands run with
+ `bash -c'.
+
+2. New Features in Bash
+
+a. The `printf' builtin now handles the %a and %A conversions if they're
+ implemented by printf(3).
+
+b. The `printf' builtin now handles the %F conversion (just about like %f).
+
+c. The `printf' builtin now handles the %n conversion like printf(3). The
+ corresponding argument is the name of a shell variable to which the
+ value is assigned.
+
+3. Changes to Readline
+
+a. Fixed a few places where negative array subscripts could have occurred.
+
+b. Fixed the vi-mode code to use a better method to determine the bounds of
+ the array used to hold the marks.
+
+c. Fixed the defines in chardefs.h to work better when chars are signed.
+
+d. Fixed configure.in to use the new names for bash autoconf macros.
+
+e. Readline no longer attempts to define its own versions of some ctype
+ macros if they are implemented as functions in libc but not as macros in
+ <ctype.h>.
+
+f. Fixed a problem where rl_backward could possibly set point to before
+ the beginning of the line.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05a-beta1,
+and the previous version, bash-2.05a-alpha1.
+
+1. Changes to Bash
+
+a. Fixed a bug in the evalution of arithmetic `for' statements when the
+ expanded expression is NULL.
+
+b. Fixed an unassigned variable problem in the redirection printing code.
+
+c. Added more prototypes to extern function declarations in the header
+ files and to static function declarations in C source files.
+
+d. Make sure called functions have a prototype in scope, to get the arguments
+ and return values right instead of casting. Removed extern function
+ declarations from C source files that were already included in header
+ files.
+
+e. Changed some function arguments to use function typedefs in general.h so
+ the prototypes can be checked. The only use of Function and VFunction
+ now is for unwind-protects.
+
+f. More const changes to function arguments and appropriate variables.
+
+g. Changed the mail checking support to handle `maildir'-style mail
+ directories.
+
+h. Augmented the bash malloc to pass in the file and line number information
+ for each malloc, realloc, and free. This should result in better error
+ messages.
+
+i. The `old' gnu malloc is no longer a configuration option.
+
+j. Augmented the bash malloc with optional tracing and registering allocated
+ and freed memory.
+
+k. Prompt string decoding now saves and restores the value of $? when it
+ expands the prompt string, so command substitutions don't change $?.
+
+i. Array indices are now `long', since shell arithmetic is performed as long,
+ and the internal arrayind_t type is used consistently.
+
+j. Some more `unsigned char *' fixes from Paul Eggert.
+
+k. Fixed a bad call to builtin_error that could cause core dumps when making
+ local variables.
+
+l. `return' may no longer be used to terminate a `select' command, for
+ compatibility with ksh.
+
+m. Changed code that reads octal numbers to do a better job of detecting
+ overflows.
+
+n. The time formatting code no longer uses absolute indices into a buffer,
+ because the buffer size changes depending on the size of a `time_t'.
+
+o. `umask' now prints four digits when printing in octal mode, for
+ compatibility with other shells.
+
+p. Lots of changes to the `printf' builtin from Paul Eggert: it handles `L'
+ formats and long doubles better, and internal functions have been
+ simpified where appropriate.
+
+q. Some `time_t' fixes for machines were a time_t is bigger than a long.
+
+r. Replaced some bash-specific autoconf macros with standard equivalents.
+
+s. Improvmed the code that constructs temporary filenames to make the
+ generated names a bit more random.
+
+t. Added code that checks for ascii before calling any of the is* ctype
+ functions.
+
+u. Changed some places where a `char' was used as an array subscript to use
+ `unsigned char', since a `char' can be negative if it's signed by default.
+
+v. Lots of changes to the `ulimit' builtin from Paul Eggert to add support
+ for the new POSIX-200x RLIM_SAVED_CUR and RLIM_SAVED_MAX values and
+ simplify the code.
+
+w. `ulimit' now prints the description of a resource in any error message
+ relating to fetching or setting that resource's limits.
+
+x. The `snprintf' replacement now computes maximum values at compile
+ time rather than using huge constants for things like long long.
+
+y. Interactive shells now ignore `set -n'.
+
+z. Changed the malloc bookkeeping information so that it's now 8 bytes
+ instead of 12 on most 32-bit machines (saving 4 bytes per allocation),
+ restoring 8-byte alignment.
+
+aa. The malloc error reporting code now attempts to print the file and line
+ number of the call that caused the error.
+
+bb. Changed the redirection error reporting code to catch EBADF errors and
+ report the file descriptor number rather than the file being redirected
+ to or from (e.g., things like `exec 4242<x' where 4242 is an out-of-range
+ file descriptor).
+
+cc. `printf', `echo -e', and the $'...' code now process only two hex digits
+ after a `\x' escape sequence for compatibility with other shells, and
+ the documentation was changed to note that the octal and hex escape
+ sequences result in an eight-bit value rather than strict ASCII.
+
+2. Changes to Readline
+
+a. The completion code now attempts to do a better job of preserving the
+ case of the word the user typed if ignoring case in completions.
+
+b. Readline defaults to not echoing the input and lets the terminal
+ initialization code enable echoing if there is a controlling terminal.
+
+c. The key binding code now processes only two hex digits after a `\x'
+ escape sequence, and the documentation was changed to note that the
+ octal and hex escape sequences result in an eight-bit value rather
+ than strict ASCII.
+
+3. New Features in Bash
+
+a. The builtin `ulimit' now takes two new non-numeric arguments: `hard',
+ meaning the current hard limit, and `soft', meaning the current soft
+ limit, in addition to `unlimited'
+
+b. `ulimit' now prints the option letter associated with a particular
+ resource when printing more than one limit.
+
+c. `ulimit' prints `hard' or `soft' when a value is not `unlimited' but is
+ one of RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively.
+
+4. New Features in Readline
+
+a. New bindable variable `history-preserve-point'. If set, the history
+ code attempts to place the user at the same location on each history
+ line retrived with previous-history or next-history.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05a-alpha1,
+and the previous version, bash-2.05-release.
+
+1. Changes to Bash
+
+a. Better checks in the redirection code for write errors.
+
+b. bashbug now uses $TMPDIR, defaulting to /tmp, and uses mktemp(1) more
+ portably.
+
+c. System-specific configuration changes for: Interix, OpenBSD, FreeBSD,
+ MacOS X.
+
+d. Some more `const' cleanups through the code.
+
+e. Fixed a typo in the /dev/fd redirection code, better checks for valid
+ numeric fds in /dev/fd.
+
+f. Fixed many parts of the shell to handle integer overflow more gracefully
+ and to do more stringent checks for valid numbers.
+
+g. Fixed mksignames to include config.h.
+
+h. Fixed an uninitialized variable problem that could cause the shell to core
+ dump when replacing characters in a string.
+
+i. New mechanism for updating the patch level when official patches are
+ released (patchlevel.h).
+
+j. configure.in changed to no longer require external files _distribution and
+ _patchlevel.
+
+k. Fixed non-interactive shell initialization problem when bash started as
+ `bash -i filename'.
+
+l. Fixed printf builtin conversion error handling to be POSIX.2-conformant.
+
+m. autoconf-2.52 is now used to build configure; autoconf-2.50 or newer is
+ required. Some of the bash-specific macros were removed, since they are
+ now standard.
+
+n. Startup files and files read with source or `.' are no longer required to
+ be regular files.
+
+o. Fixed core dump in builtin printf when user-supplied precision or field
+ width is 0.
+
+p. Fixed builtin printf to treat a negative field width as a positive field
+ width with left-justification.
+
+r. New unwind-protect implementation from Paul Eggert.
+
+s. Fixed an inadvertently-unclosed comment in the bash completion code that
+ caused programmable completions to not add trailing slashes or spaces to
+ completions.
+
+t. Fixed the process substitution code to cope better when stdin is closed.
+
+v. Fixes, mostly from Paul Eggert, for a few possible buffer overflows in
+ the shell.
+
+w. Fixes from Paul Eggert to avoid most of the type casts in the shell code,
+ and use more appropriate types for a number of variables.
+
+x. Command substition no longer inherits the DEBUG trap.
+
+y. Some fixes to the process substition code on machines without /dev/fd so
+ that named pipes are not removed inappropriately.
+
+z. The loadable `getconf' builtin is now much more complete, and will become
+ part of the shell in the future.
+
+aa. The select command no longer terminates on a `return', so it can be used
+ to return from an enclosing function (as ksh does it).
+
+bb. Fixed the extended pattern matching code to behave better when presented
+ with incorrectly-formed patterns.
+
+cc. Some changes were made with the intent of making cross-compilation easier.
+
+dd. The network code (/dev/tcp and /dev/udp redirections) uses getaddrinfo(3)
+ if it's available, which adds support for IPv6.
+
+ee. Subshells of login shells no longer source ~/.bash_logout when they exit.
+
+ff. Fixes so that subshells don't exit inappropriately if the -e option has
+ been set.
+
+gg. Restricted shells no longer allow functions to be exported.
+
+hh. Changes to the pattern matching code so extended pattern matching works
+ on systems with deficient shared library implementations, like MacOS X.
+
+ii. Better error messages when a script with a leading `#!interp' fails
+ to execute because of problems with `interp'.
+
+jj. Fixed `compgen' to handle the `-o default' option better.
+
+kk. Fixed the job control code to force an asynchronous process's standard
+ input to /dev/null only if job control is not active.
+
+ll. Fixed a possible infinite recursion problem when `fc ""=abc' (a null
+ pattern) is used to re-execute a previous command.
+
+mm. Fixed `declare [-a] var=value' to assign VALUE to element 0 if VAR is an
+ array variable. Similarly for `declare [-a] var[N]=value'. This is like
+ ksh93.
+
+nn. Fixed a bug that caused `read -a aname' to work even if ANAME had been
+ declared readonly.
+
+oo. Fixed a possible integer overflow problem when constructing names for
+ temporary files.
+
+2. New Features in Bash
+
+a. Added support for DESTDIR installation root prefix, so you can do a
+ `make install DESTDIR=bash-root' and do easier binary packaging.
+
+b. Added support for builtin printf "'" flag character as per latest POSIX
+ drafts.
+
+c. Support for POSIX.2 printf(1) length specifiers `j', `t', and `z' (from
+ ISO C99).
+
+d. New autoconf macro, RL_LIB_READLINE_VERSION, for use by other applications
+ (bash doesn't use very much of what it returns).
+
+e. `set [-+]o nolog' is recognized as required by the latest POSIX drafts,
+ but ignored.
+
+f. New read-only `shopt' option: login_shell. Set to non-zero value if the
+ shell is a login shell.
+
+g. New `\A' prompt string escape sequence; expands to time in 24 HH:MM format.
+
+h. New `-A group/-g' option to complete and compgen; does group name
+ completion.
+
+i. New `-t' option to `hash' to list hash values for each filename argument.
+
+j. New [-+]O invocation option to set and unset `shopt' options at startup.
+
+k. configure's `--with-installed-readline' option now takes an optional
+ `=PATH' suffix to set the root of the tree where readline is installed
+ to PATH.
+
+l. The ksh-like `ERR' trap has been added. The `ERR' trap will be run
+ whenever the shell would have exited if the -e option were enabled.
+ It is not inherited by shell functions.
+
+m. `readonly', `export', and `declare' now print variables which have been
+ given attributes but not set by assigning a value as just a command and
+ a variable name (like `export foo') when listing, as the latest POSIX
+ drafts require.
+
+n. `bashbug' now requires that the subject be changed from the default.
+
+o. configure has a new `--enable-largefile' option, like other GNU utilities.
+
+p. `for' loops now allow empty word lists after `in', like the latest POSIX
+ drafts require.
+
+3. Changes to Readline
+
+a. More `const' and type casting fixes.
+
+b. Changed rl_message() to use vsnprintf(3) (if available) to fix buffer
+ overflow problems.
+
+c. The completion code no longer appends a `/' or ` ' to a match when
+ completing a symbolic link that resolves to a directory name, unless
+ the match does not add anything to the word being completed. This
+ means that a tab will complete the word up to the full name, but not
+ add anything, and a subsequent tab will add a slash.
+
+d. Fixed a trivial typo that made the vi-mode `dT' command not work.
+
+e. Fixed the tty code so that ^S and ^Q can be inserted with rl_quoted_insert.
+
+f. Fixed the tty code so that ^V works more than once.
+
+g. Changed the use of __P((...)) for function prototypes to PARAMS((...))
+ because the use of __P in typedefs conflicted g++ and glibc.
+
+4. New Features in Readline
+
+a. Added extern declaration for rl_get_termcap to readline.h, making it a
+ public function (it was always there, just not in readline.h).
+
+b. New #defines in readline.h: RL_READLINE_VERSION, currently 0x0402,
+ RL_VERSION_MAJOR, currently 4, and RL_VERSION_MINOR, currently 2.
+
+c. New readline variable: rl_readline_version, mirrors RL_READLINE_VERSION.
+
+d. New bindable boolean readline variable: match-hidden-files. Controls
+ completion of files beginning with a `.' (on Unix). Enabled by default.
+
+e. The history expansion code now allows any character to terminate a
+ `:first-' modifier, like csh.
+
+f. The incremental search code remembers the last search string and uses
+ it if ^R^R is typed without a search string.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05-release,
+and the previous version, bash-2.05-beta2.
+
+1. Changes to Bash
+
+a. Make sure we note that the first line of a multi-line command was not
+ saved in the history if the tests for HISTCONTROL succeed, but the
+ HISTIGNORE check fails.
+
+b. Fixed a bug in the pattern matching code that caused `[' to be treated
+ as a special character inside a `[...]' bracket expression.
+
+c. Fixed a bug in the pattern matching code that caused `]' to terminate
+ a bracket expression even if it was the first character after the `['
+ (or a leading `!' or `^').
+
+d. Made a small change to report a more user-friendly error message if
+ execve(2) fails because of an error with the interpreter in a script
+ with a leading `#! interpreter'.
+
+e. If the OS does not support an exec(2) magic number of `#!', make sure we
+ have a non-null interpreter name before attempting to execute it.
+
+f. Fixed a bug that caused the shell process to end up in a different
+ process group than the controlling terminal if a job-control shell was
+ run with `exec' in the startup files.
+
+g. When started in POSIX mode, either by `bash --posix', `bash -o posix', or
+ `sh', $SHELLOPTS includes `posix' and POSIXLY_CORRECT is set.
+
+h. Fixed a problem that caused the `\W' prompt string escape sequence to
+ expand to nothing when $PWD was `//'.
+
+i. The `bashbug' shell script no longer uses $(...) command substitution.
+
+j. When `set' is invoked without options in POSIX mode, it no longer prints
+ the names and definitions of shell functions.
+
+2. Changes to Readline
+
+a. rl_set_paren_blink_timeout() is now documented.
+
+b. Corrected history.3 man page: `$' is not in the default value of
+ history_word_delimiters.
+
+c. If a hook function assigned to rl_event_hook sets rl_done to a non-zero
+ value, rl_read_key() now immediately returns '\n' (which is assumed to
+ be bound to accept-line).
+
+3. New Features in Bash
+
+a. The `>&word' redirection now works in POSIX mode as it does by default,
+ since POSIX.2 leaves it unspecified.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05-beta2,
+and the previous version, bash-2.05-beta1.
+
+1. Changes to Bash
+
+a. Fixed a bug in the arithmetic evaluation code so that a^=b is supported.
+
+b. Fixed startup so posixly_correct is retained across subshells begun to
+ execute scripts without a leading `#!'.
+
+c. Fixed a bug that caused $(< file) to not work in a (...) subshell.
+
+d. Added config support for Linux running on the IBM S390.
+
+e. Fixed a bug that caused bash to get its input pointer out of sync when
+ reading commands through a pipe and running a command with standard
+ input redirected from a file.
+
+f. Made a change so that command completion now makes about half as many
+ stat(2) calls when searching the $PATH.
+
+g. Fixed a bug that caused variable assignments preceding `return' to not
+ be propagated to the shell environment in POSIX mode.
+
+h. Fixed a bug with ${parameter[:]?word} -- tilde expansion was not performed
+ on `word'.
+
+i. In POSIX mode, `break' and `continue' do not complain and return success
+ if called when the shell is not executing a loop.
+
+j. Fixed `bash -o posix' to work the same as `bash --posix'.
+
+k. Fixed a bug where variable assignments preceding `eval' or `source/.'
+ would not show up in the environment exported to subshells run by the
+ commands.
+
+l. In POSIX mode, shells started to execute command substitutions inherit
+ the value of the `-e' option from their parent shell.
+
+m. In POSIX mode, aliases are expanded even in non-interactive shells.
+
+n. Changed some of the job control messages to display the text required by
+ POSIX.2 when the shell is in POSIX mode.
+
+o. Fixed a bug in `test' that caused it to occasionally return incorrect
+ results when non-numeric arguments were supplied to `-t'.
+
+2. Changes to Readline
+
+a. Some changes were made to avoid gcc warnings with -Wall.
+
+b. rl_get_keymap_by_name now finds keymaps case-insensitively, so
+ `set keymap EMACS' works.
+
+c. The history file writing and truncation functions now return a useful
+ status on error.
+
+d. Fixed a bug that could cause applications to dereference a NULL pointer
+ if a NULL second argument was passed to history_expand().
+
+3. New Features in Bash
+
+a. doc/readline.3 has been moved to the readline distribution.
+
+4. New Features in Readline
+
+a. New function, rl_get_screen_size (int *rows, int *columns), returns
+ readline's idea of the screen dimensions.
+
+b. The timeout in rl_gather_tyi (readline keyboard input polling function)
+ is now settable via a function (rl_set_keyboard_input_timeout()).
+
+c. Renamed the max_input_history variable to history_max_entries; the old
+ variable is maintained for backwards compatibility.
+
+d. The list of characters that separate words for the history tokenizer is
+ now settable with a variable: history_word_delimiters. The default
+ value is as before.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05-beta1,
+and the previous version, bash-2.05-alpha1.
+
+1. Changes to Bash
+
+a. Changes to allow shared library and object building on the GNU Hurd.
+
+b. Fixes to the way exported functions are placed into the environment and
+ cached.
+
+c. The globbing library once again respects locales when processing ranges
+ in bracket expressions while doing pattern matching.
+
+d. System-specific configuration changes for: Tru 64, Interix
+
+e. Bashbug now uses /usr/bin/editor as one of the editing alternatives, and
+ will use mktemp(1) or tempfile(1), if present, for temporary file creation.
+
+f. Bash no longer performs a binary file check on a script argument that's
+ really a tty (like /dev/fd/0 or /dev/stdin).
+
+g. Fixed a bug in the execution of shell scripts that caused the effects of
+ $BASH_ENV to be undone in some cases.
+
+h. Fixed several bugs that made `bash [-i] /dev/stdin' not work correctly.
+
+i. Several changes to the job control code to avoid some signal state
+ manipulation.
+
+j. The Bash malloc no longer blocks signals as often, which should make it
+ faster.
+
+k. Fixed a parsing bug that did not allow backslash to escape a single quote
+ inside a $'...' construct.
+
+l. Fixed a bug that caused things like ${var:=$'value'} to be parsed
+ incorrectly. This showed up in newer versions of autoconf.
+
+m. Fixed a bug in the bash-specific readline initialization that caused
+ key bindings to bash-specific function names appearing in .inputrc to
+ not be honored.
+
+n. Bash now sets the file descriptor it uses to save the file descriptor
+ opened on a shell script to close on exec.
+
+o. Fixed a bug in the prompt string decoding that caused it to misbehave
+ when presented an octal sequence of fewer than three characters.
+
+p. Fixed the `test' builtin to return an error if `[' is supplied a single
+ argument that is not `]'.
+
+q. Fixed a bug that caused subshells started to run executable shell scripts
+ without a leading `#!' to incorrectly inherit an argument list preceding
+ a shell builtin (like such a script called from a script sourced with `.',
+ where there were variable assignments preceding the `.' command)
+
+r. Fixed a bug that caused changes to variables supplied in an assignment
+ statement preceding a shell builtin to not be honored (like a script
+ run with `.').
+
+s. HOSTTYPE, OSTYPE, and MACHTYPE are set only if they do not have values
+ when the shell is started.
+
+t. Fixed a bug that caused SIGINT to kill shell scripts after the script
+ called `wait'.
+
+u. The `fc' builtin now tries to create its temporary files in the directory
+ named by $TMPDIR.
+
+v. Bash no longer calls any Readline functions or uses any Readline variables
+ not declared in readline.h.
+
+w. Fixed a bug that caused some substitutions involving $@ to not be split
+ correctly, especially expansions of the form ${paramterOPword}.
+
+x. SSH2_CLIENT is now treated like SSH_CLIENT and not auto-exported if it
+ appears in the initial environment.
+
+y. Fixed a couple of problems with shell scripts without a leading `#!'
+ being executed out of shell functions that could cause core dumps if
+ such a script attempted to execute `return'.
+
+z. Fixed a problem with the `-nt' and `-ot' binary operators for the
+ `test/[' builtin and the `[[' conditional command that caused wrong
+ return values if one of the file arguments did not exist.
+
+aa. Fixed a bug that caused non-interactive shells which had previously
+ executed `shopt -s expand_aliases' to fail to expand aliases in a
+ command like `(command) &'.
+
+2. Changes to Readline
+
+a. Changes to make most (but not yet all -- there is still crlf()) of the
+ exported readline functions declared in readline.h have an rl_ prefix.
+
+b. More `const' changes in function arguments, mostly for completion
+ functions.
+
+c. Fixed a bug in rl_forward that could cause the point to be set to before
+ the beginning of the line in vi mode.
+
+d. Fixed a bug in the callback read-char interface to make it work when a
+ readline function pushes some input onto the input stream with
+ rl_execute_next (like the incremental search functions).
+
+e. Fixed a file descriptor leak in the history file manipulation code that
+ was tripped when attempting to truncate a non-regular file (like
+ /dev/null).
+
+f. Some existing variables are now documented and part of the public
+ interface (declared in readline.h): rl_explict_arg, rl_numeric_arg,
+ rl_editing_mode, rl_last_func.
+
+g. Renamed rltty_set_default_bindings to rl_tty_set_default_bindings and
+ crlf to rl_crlf, so there are no public functions declared in readline.h
+ without an `rl_' prefix. The old functions still exist for backwards
+ compatibility.
+
+3. New Features in Bash
+
+a. A new loadable builtin, realpath, which canonicalizes and expands symlinks
+ in pathname arguments.
+
+b. When `set' is called without options, it prints function defintions in a
+ way that allows them to be reused as input. This affects `declare' and
+ `declare -p' as well.
+
+4. New Features in Readline
+
+a. New application-callable function rl_set_prompt(const char *prompt):
+ expands its prompt string argument and sets rl_prompt to the result.
+
+b. New application-callable function rl_set_screen_size(int rows, int cols):
+ public method for applications to set readline's idea of the screen
+ dimensions.
+
+c. The history example program (examples/histexamp.c) is now built as one
+ of the examples.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.05-alpha1,
+and the previous version, bash-2.04-release.
+
+1. Changes to Bash
+
+a. A fix was made to allow newlines in compond array assignments.
+
+b. configure now checks for real-time signals with unusable values.
+
+c. Interactive shells no longer exit if a substitution fails because of an
+ unset variable within a sourced file.
+
+d. Fixed a problem with incorrect matching of extended glob patterns when
+ doing pattern substitution.
+
+e. `{' is now quoted by the completion code when it appears in a filename.
+
+f. Fixed an error in pattern matching that caused the matcher to not
+ correctly skip the rest of a bracket expression after a character
+ matched.
+
+g. Fixed a bug in the IFS word splitting code to make a non-whitespace IFS
+ character preceded by IFS whitespace part of the current delimiter rather
+ than generating a separate field.
+
+h. The {!prefix@} expansion now generates separate words, analogous to $@,
+ when double-quoted.
+
+i. Command substitution now ignores NUL bytes in the command output, and the
+ parser ignores them on input.
+
+j. A fix was made to the job control code to prevent hanging processes when
+ the shell thinks background processes are running but the kernel returns
+ -1/ECHILD from waitpid().
+
+k. `pwd' now prints an error message if the write fails when displaying the
+ current directory.
+
+l. When in POSIX mode, the shell prints trap dispostions without a leading
+ `SIG' in the signal specification.
+
+m. Fixed a parser bug that caused the current command's line count to be
+ messed up by a compound array assignment.
+
+n. Fixed a bug in the unwind-protect code that caused bad behavior on machines
+ where ints and pointers are not the same size.
+
+o. System-specific configure changes for: MacOS X.
+
+p. Changes for Cygwin to translate \r\n and \r to \n and to set file
+ descriptors used for reading input to text mode in various places.
+
+q. Fixed a bug that caused `!' to occasionally not be honored when in
+ a (...) subshell.
+
+r. Bash no longer assumes that getcwd() will return any useful error message
+ in the buffer passed as an argument if the call fails.
+
+s. The `source', `.', and `fc' builtins no longer check whether a file is
+ binary before reading commands from it.
+
+t. Subshells no longer turn off job control when they exit, since that
+ sometimes resulted in the terminal being reset to the wrong process
+ group.
+
+u. The history code no longer tries to save the second and subsequent lines
+ of a multi-line command if the first line was not saved.
+
+v. The history saving code now does a better job of saving blank lines in a
+ multi-line command.
+
+w. Removed a `feature' that made `ulimit' silently translate `unlimited' to
+ the current hard limit, which obscured some kernel error returns.
+
+x. Fixed the grammar so that `}' is recognized as a reserved word after
+ another reserved word, rather than requiring a `;' or newline. This
+ means that constructs like
+
+ { { echo a b c ; } }
+
+ work as expected.
+
+y. Conditional commands ([[...]]) now perform tilde expansion on their
+ arguments.
+
+z. Noted in the documentation that `set -a' will cause functions to be
+ exported if they are defined after `set -a' is executed.
+
+aa. When an interactive login shell starts, if $PWD and $HOME refer to the
+ same directory but are not the same string, $PWD is set to $HOME.
+
+bb. Fixed `printf' to handle invalid floating point numbers better.
+
+cc. Temporary files are now created with random filenames, to improve security.
+
+dd. The readline initialization code now binds the custom bash functions and
+ key bindings after the readline defaults are set up.
+
+ee. Fixed the `source' builtin to no longer overwrite a shell function's
+ argument list, even if the sourced file changes the positional parameters.
+
+ff. A bug fix was made in the expansion of `$*' in contexts where it should
+ not be split, like assignment statements.
+
+gg. Fixed a bug in the parameter substring expansion to handle conditional
+ arithmetic expressions ( exp ? val1 : val2 ) without cutting the expression
+ off at the wrong `:'.
+
+hh. The `<>' redirection is no longer subject to the current setting of
+ `noclobber', as POSIX.2 specifies.
+
+ii. Fixed a bug in the conditional command parsing code that caused expressions
+ in parentheses to occasionally be parsed incorrectly.
+
+jj. Fixed a bug in the ((...)) arithmetic command to allow do...done or
+ {...} to follow the )) without an intervening list terminator.
+
+kk. `printf' now treats `\E' the same as `\e' when performing backslash escape
+ expansion for the `%b' format specifier.
+
+ll. When in POSIX mode, the shell no longer searches the current directory for
+ a file to be sourced with `.' or `source' if `.' is not in $PATH.
+
+mm. Interactive comments are no longer turned off when POSIX mode is disabled.
+
+nn. The UID, EUID, HOSTNAME variables are not set if they are in the shell's
+ environment when it starts up.
+
+oo. Fixed a bug in the `command' builtin so the effect of a command like
+ `command exec 4<file' is as if the `command' had been omitted.
+
+pp. ${foo[@]} and ${foo[*]} now work as in ksh93 if `foo' is not an array
+ variable.
+
+qq. ${#foo[X]}, where X is 0, @, or *, now work as in ksh93 if `foo' is not
+ an array variable.
+
+rr. The shell's idea of an absolute pathname now takes into account a
+ possible drive specification on Cygwin and other Windows systems.
+
+ss. Fixed a bug which caused incorrect parsing of some multi-character
+ constructs if they were split across input lines with backslash-newline
+ line continuation.
+
+tt. Fixed a bug that caused restricted shell mode to be set inappropriately
+ when trying to execute a shell script without a leading `#!'.
+
+uu. Shell function definitions no longer require that the body be a group
+ command ( {...} ), as POSIX.2 requires.
+
+vv. The `cd' and `pwd' builtins now process symlinks in pathnames internally
+ and should require many fewer calls to getcwd().
+
+ww. Fixed a bug that caused a pipeline's process group to be set incorrectly
+ if one of the pipeline elements contained a command substitution.
+
+xx. Fixed a bug that caused core dumps when expanding the value of HISTIGNORE.
+
+yy. The output of `set' is now quoted using $'...' so invisible characters are
+ displayed as escape sequences.
+
+zz. Fixed the help text for `unset', since PATH and IFS may both be unset.
+
+aaa. The shell no longer puts directory names into the command hash table.
+
+bbb. Fixed a bug in `read' that caused it to occasionally free memory twice if
+ it was interrupted after reading a large amount of data.
+
+ccc. Assignment statements that attempt to assign values to readonly variables
+ now cause the command to return an error status.
+
+ddd. Fixed a bug that could cause incorrect output if a $(<file) construct was
+ interrupted.
+
+eee. GROUPS and FUNCNAME now return an error status when assignment is
+ attempted, but may be unset (in which case they lose their special
+ properties). In all respects except unsetting, they are readonly.
+
+fff. The string-to-integer conversion code now ignores trailing whitespace in
+ the string, even if strtol(3) does not.
+
+ggg. The tcsh magic-space function now does a better job of inserting the
+ space close to where the point was before the history expansion, rather
+ than just appending it.
+
+hhh. Fixed a bug which caused a file sourced from an interactive shell to
+ fill up the jobs table if it ran lots of jobs.
+
+iii. Fixed a bug in the parameter pattern substitution code to avoid infinite
+ recursion on zero-length matches.
+
+2. Changes to Readline
+
+a. When setting the terminal attributes on systems using `struct termio',
+ readline waits for output to drain before changing the attributes.
+
+b. A fix was made to the history word tokenization code to avoid attempts to
+ dereference a null pointer.
+
+c. Readline now defaults rl_terminal_name to $TERM if the calling application
+ has left it unset, and tries to initialize with the resultant value.
+
+d. Instead of calling (*rl_getc_function)() directly to get input in certain
+ places, readline now calls rl_read_key() consistently.
+
+e. Fixed a bug in the completion code that allowed a backslash to quote a
+ single quote inside a single-quoted string.
+
+f. rl_prompt is no longer assigned directly from the argument to readline(),
+ but uses memory allocated by readline. This allows constant strings to
+ be passed to readline without problems arising when the prompt processing
+ code wants to modify the string.
+
+g. Fixed a bug that caused non-interactive history searches to return the
+ wrong line when performing multiple searches backward for the same string.
+
+h. Many variables, function arguments, and function return values are now
+ declared `const' where appropriate, to improve behavior when linking with
+ C++ code.
+
+i. The control character detection code now works better on systems where
+ `char' is unsigned by default.
+
+j. The vi-mode numeric argument is now capped at 999999, just like emacs mode.
+
+k. The Function, CPFunction, CPPFunction, and VFunction typedefs have been
+ replaced with a set of specific prototyped typedefs, though they are
+ still in the readline header files for backwards compatibility.
+
+m. Nearly all of the (undocumented) internal global variables in the library
+ now have an _rl_ prefix -- there were a number that did not, like
+ screenheight, screenwidth, alphabetic, etc.
+
+n. The ding() convenience function has been renamed to rl_ding(), though the
+ old function is still defined for backwards compatibility.
+
+o. The completion convenience functions filename_completion_function,
+ username_completion_function, and completion_matches now have an rl_
+ prefix, though the old names are still defined for backwards compatibility.
+
+p. The functions shared by readline and bash (linkage is satisfied from bash
+ when compiling with bash, and internally otherwise) now have an sh_ prefix.
+
+q. Changed the shared library creation procedure on Linux and BSD/OS 4.x so
+ that the `soname' contains only the major version number rather than the
+ major and minor numbers.
+
+r. Fixed a redisplay bug that occurred when the prompt spanned more than one
+ physical line and contained invisible characters.
+
+3. New Features in Bash
+
+a. Added a new `--init-file' invocation argument as a synonym for `--rcfile',
+ per the new GNU coding standards.
+
+b. The /dev/tcp and /dev/udp redirections now accept service names as well as
+ port numbers.
+
+c. `complete' and `compgen' now take a `-o value' option, which controls some
+ of the aspects of that compspec. Valid values are:
+
+ default - perform bash default completion if programmable
+ completion produces no matches
+ dirnames - perform directory name completion if programmable
+ completion produces no matches
+ filenames - tell readline that the compspec produces filenames,
+ so it can do things like append slashes to
+ directory names and suppress trailing spaces
+
+4. New Features in Readline
+
+a. The blink timeout for paren matching is now settable by applications.
+
+b. _rl_executing_macro has been renamed to rl_executing_macro, which means
+ it's now part of the public interface.
+
+c. Readline has a new variable, rl_readline_state, which is a bitmap that
+ encapsulates the current state of the library; intended for use by
+ callbacks and hook functions.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-release,
+and the previous version, bash-2.04-beta5.
+
+1. Changes to Bash
+
+a. Better compile-time and configure-time checks for the necessity of
+ inet_aton().
+
+b. A bug was fixed in the expansion of "${@:-}" when there are positional
+ parameters.
+
+c. A typo was fixed in the output of `complete'.
+
+d. The matches generated for a word by the `-W' argument to complete and
+ compgen are now matched against the word being completed, and only
+ matches are returned as the result.
+
+e. Some fixes were made for systems which do not restart read(2) when a
+ signal caught by bash is received.
+
+f. A bug was fixed which caused the umask to be set to 0 when an invalid
+ symbolic mode mask was parsed.
+
+g. Fixed a bug that could cause a core dump if a SIGCHLD was received while
+ performing an assignment statement using command substitution.
+
+h. Changed the word splitting function for programmable completion so cases
+ in which the cursor is between words are handled a bit better.
+
+2. Changes to Readline
+
+a. rl_funmap_names() is now documented.
+
+3. New Features in Bash
+
+a. The LC_NUMERIC variable is now treated specially, and used to set the
+ LC_NUMERIC locale category for number formatting, e.g., when `printf'
+ displays floating-point numbers.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-beta5,
+and the previous version, bash-2.04-beta4.
+
+1. Changes to Bash
+
+a. A couple of changes were made to the Makefiles for easier building on
+ non-Unix systems.
+
+b. Fixed a bug where the current prompt would be set to $PS2 at startup.
+
+c. The shell script that tests an already-installed version was changed to
+ remove the directory it created its test programs in at exit.
+
+d. Several changes were made to the code that tokenizes an input line for
+ the programmable completion code. Shell metacharacters will now appear
+ as individual words in the word list passed to the completion functions.
+ Some of the example completion shell functions were changed to understand
+ redirection operators.
+
+e. A bug was fixed that, under obscure circumstances, could confuse the
+ parser when a shell function was run by the programmable completion code.
+
+f. A bug was fixed in the ulimit builtin for systems not using getrlimit().
+
+g. The execution code now propagates the correct exit status back to the rest
+ of the code if the return value of a subshell command was being inverted.
+ Some new test cases for inverting return values with the `!' reserved
+ word have been added.
+
+h. Negative exponents in the arithmetic evaluation of v**e now return an
+ evaluation error.
+
+i. A bug that caused bash to check the wrong process in a pipeline for
+ abnormal termination (and consequently resetting the terminal attributes)
+ was fixed.
+
+j. Fixed a bug that caused $PS2 to be displayed after PROMPT_COMMAND was
+ executed.
+
+2. Changes to Readline
+
+1. Fixed a bug in a C preprocessor define that caused the keypad control
+ functions to be compiled out for all platforms except DJGPP.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-beta4,
+and the previous version, bash-2.04-beta3.
+
+1. Changes to Bash
+
+a. A couple of changes were made to the redirection to attempt to avoid
+ race conditions and malicious file replacement.
+
+2. A change was made to the string evaluation code (used for command
+ substitution, `eval', and the `.' builtin) to fix an obscure core
+ dump on alpha machines.
+
+3. A bug that caused $LINENO to be wrong when executing arithmetic for
+ commands was fixed.
+
+4. A couple of memory leaks in the programmable completion code were fixed.
+
+5. A bug that could cause a core dump by freeing memory twice during a call
+ to `eval' if `set -u' had been enabled and an undefined variable was
+ referenced was fixed.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-beta3,
+and the previous version, bash-2.04-beta2.
+
+1. Changes to Bash
+
+a. Bash should run the appropriate startup files when invoked by ssh2.
+
+b. Fixed a bug in the parsing of conditional commands that could cause a
+ core dump.
+
+c. Fixed a bug in parsing job specifications that occasionally caused
+ core dumps when an out-of-range job was referenced.
+
+d. Fixed the `type' and `command' builtins to do better reporting of
+ commands that are not found in $PATH or the hash table.
+
+e. Fixed a POSIX.2 compliance problem in the command builtin -- commands
+ are supposed to be reported as full pathnames.
+
+f. The `echo' builtin now returns failure if a write error occurs.
+
+g. Fixed a bug which caused the locale to not be reset correctly when
+ LC_ALL was unset.
+
+h. Changed description of `getopts' in man page and reference manual to make
+ it clear that option characters may be characters other than letters.
+
+i. If the shell exits while in a function, make sure that any trap on EXIT
+ doesn't think the function is still executing.
+
+j. Bashbug now tries harder to find a usable editor if $EDITOR is not set,
+ rather than simply defaulting to `emacs'.
+
+k. Changes to the scripts that guess and canonicalize the system type, from
+ the latest `automake' distribution via Debian.
+
+l. When using named pipes for process substitution, make sure the file
+ descriptors opened for reading are set to non-blocking mode.
+
+m. Fixed a bug that caused termination of pipelines that are killed by a
+ signal to not be reported in some cases.
+
+n. When not in literal-history mode, shell comment lines are not added to
+ the history list.
+
+o. When running in POSIX.2 mode, bash no longer performs word splitting on
+ the expanded value of the word supplied as the filename argument to
+ redirection operators.
+
+p. The prompt string decoding code now backslash-quotes only characters that
+ are special within double quotes when expanding the \w and \W escape
+ sequences.
+
+q. Fixed a bug in the prompt decoding code that could cause a non-interactive
+ shell to seg fault if `\u' was used in PS4 and the shell was in xtrace
+ mode.
+
+r. Fixed a bug that caused function definitions to be printed with any
+ redirections that should be attached to the entire function before the
+ closing brace.
+
+s. Changed the tilde expansion code for Cygwin systems to avoid creating
+ pathnames beginning with `//' if $HOME == `/'.
+
+t. Fixed a couple of autoconf tests to avoid creating files with fixed names
+ in /tmp.
+
+u. The `trap' and `kill' builtins now know the names of the POSIX.1b real-
+ time signals on systems which support them.
+
+2. Changes to Readline
+
+a. Fixed a problem with the single-quote quoting function that could cause
+ buffer overflows.
+
+b. Fixed a bug that caused incorrect `stat characters' to be printed if
+ the files being completed were in the root directory and visible-stats
+ was enabled.
+
+3. New Features in Bash
+
+a. There is a new `rbash.1' manual page, from the Debian release.
+
+b. The `--enable-usg-echo-default' option to `configure' has been renamed to
+ `--enable-xpg-echo-default'. The old option is still there for backwards
+ compatibility.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-beta2,
+and the previous version, bash-2.04-beta1.
+
+1. Changes to Bash
+
+a. Fixed a bug that could cause pipes to be closed inappropriately in
+ some obscure cases.
+
+b. Fixed a bug that caused creation of the exported environment to clobber
+ the current command string if there were any exported shell functions.
+
+c. Some changes were made to reduce bash's memory usage.
+
+d. Fixed a problem with programmable completion and filenames to be
+ completed containing quote characters.
+
+e. Changed the code the removes named pipes created for the <(...) and >(...)
+ expansions to defer removal until after any current shell function has
+ finished executing.
+
+f. Fixed a bug in `select' which caused it to not handle the `continue'
+ builtin correctly.
+
+g. Autoconf tests added for cygwin32 and mingw32.
+
+2. New Features in Bash
+
+a. The `--with-bash-malloc' configure option replaces `--with-gnu-malloc'
+ (which is still there for backwards compatibility).
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-beta1,
+and the previous version, bash-2.04-alpha1.
+
+1. Changes to Bash
+
+a. Fixed a bug in the programmable completion code that occurred when
+ trying to complete command lines containing a `;' or `@'.
+
+b. The file descriptor from which the shell is reading a script is now
+ moved to a file descriptor above the user-addressible range.
+
+c. Changes to `printf' so that it can handle integers beginning with 0
+ or 0x as octal and hex, respectively.
+
+d. Fixes to the programmable completion code so it handles nonsense like
+ `compgen -C xyz' gracefully.
+
+e. The shell no longer modifies the signal handler for SIGPROF, allowing
+ profiling again on certain systems.
+
+f. The shell checks for a new window size, if the user has requested it,
+ after a process exits due to a signal.
+
+g. Fixed a bug with variables with null values in a program's temporary
+ environment and the bash getenv() replacement.
+
+h. `declare' and the other builtins that take variable assignments as
+ arguments now honor `set -a' and mark modified variables for export.
+
+i. Some changes were made for --dump-po-strings mode when writing strings
+ with embedded newlines.
+
+j. The code that caches export strings from the initial environment now
+ duplicates the string rather than just pointing into the environment.
+
+k. The filename completion quoting code now uses single quotes by default
+ if the filename being completed contains newlines, since \<newline>
+ has a special meaning to the parser.
+
+l. Bash now uses typedefs bits32_t and u_bits32_t instead of int32_t and
+ u_int32_t, respectively to avoid conflicts on certain Unix versions.
+
+m. Configuration changes were made for: Rhapsody, Mac OS, FreeBSD-3.x.
+
+n. Fixed a problem with hostname-to-ip-address translation in the
+ /dev/(tcp|udp)/hostname/port redirection code.
+
+o. The texinfo manual has been reorganized slightly.
+
+p. Filename generation (globbing) range comparisons in bracket expressions
+ no longer use strcoll(3) even if it is available, since it has unwanted
+ effects in certain locales.
+
+q. Fixed a cosmetic problem in the source that caused the shell to not
+ compile if DPAREN_ARITHMETIC was not defined but ARITH_FOR_COMMAND was.
+
+r. Fixed a bug in the here-document code tripped when the file descriptor
+ opened to the file containing the text of the here document was the
+ same as a redirector specified by the user.
+
+s. Fixed a bug where the INVERT_RETURN flag was not being set for `pipeline'
+ in `time ! pipeline'.
+
+t. Fixed a bug with the `wait' builtin which manifested itself when an
+ interrupt was received while the shell was waiting for asynchronous
+ processes in a shell script.
+
+u. Fixed the DEBUG trap code so that it has the correct value of $?.
+
+v. Fixed a bug in the parameter pattern substitution code that could cause
+ the shell to attempt to free unallocated memory if the pattern started
+ with `/' and an expansion error occurs.
+
+w. Fixed a bug in the positional parameter substring code that could
+ cause the shell to loop freeing freed memory.
+
+x. Fixed a bug in the positional parameter pattern substitution code so
+ that it correctly handles null replacement strings with a pattern
+ string prefixed with `%' or `#'.
+
+y. The shell no longer attempts to import functions from the environment if
+ started with `-n'.
+
+z. Fixed a bug that caused `return' in a command substitution executed in
+ a shell function to return from the function in a subshell and continue
+ execution.
+
+aa. `hash -p /pathname/with/slashes name' is no longer allowed when the shell
+ is restricted.
+
+bb. The wait* job control functions now behave better if called when there
+ are no unwaited-for children.
+
+cc. Command substitution no longer unconditionally disables job control in
+ the subshell started to run the command.
+
+dd. A bug was fixed that occasionally caused traps to mess up the parser
+ state.
+
+ee. `bashbug' now honors user headers in the mail message it sends.
+
+ff. A bug was fixed that caused the `:p' history modifier to not print the
+ history expansion if the `histverify' option was set.
+
+2. Changes to Readline
+
+a. Fixed a bug in the redisplay code for lines with more than 256 line
+ breaks.
+
+b. A bug was fixed which caused invisible character markers to not be
+ stripped from the prompt string if the terminal was in no-echo mode.
+
+c. Readline no longer tries to get the variables it needs for redisplay
+ from the termcap entry if the calling application has specified its
+ own redisplay function. Readline treats the terminal as `dumb' in
+ this case.
+
+d. Fixes to the SIGWINCH code so that a multiple-line prompt with escape
+ sequences is redrawn correctly.
+
+3. New Features in Bash
+
+a. `bashbug' now accepts `--help' and `--version' options.
+
+b. There is a new `xpg_echo' option to `shopt' that controls the behavior
+ of echo with respect to backslash-escaped characters at runtime.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-alpha1,
+and the previous version, bash-2.04-devel.
+
+1. Changes to Bash
+
+a. Fixed a bug that could cause core dumps when performing substring
+ expansion.
+
+b. Shared object configuration changes for: Solaris, OSF/1
+
+c. The POSIX_GLOB_LIBRARY code that uses the POSIX.2 globbing facilities
+ for pathname expansion now understands GLOBIGNORE.
+
+d. The code that implements `eval' was changed to save the value of the
+ current prompt, so an eval in a shell function called by the programmable
+ completion code will not change the prompt to $PS2.
+
+e. Restored the undocumented NON_INTERACTIVE_LOGIN_SHELLS #define to
+ config-top.h. If this is defined, all login shells will read the
+ startup files, not just interactive and non-interactive started with
+ the `--login' option.
+
+f. Fixed a bug that caused the expansion code to occasionally dump core if
+ IFS contained characters > 128.
+
+g. Fixed a problem with the grammar so that a newline is not required
+ after the `))' in the new-style arithmetic for statement; a semicolon
+ may be used as expected.
+
+h. Variable indirection may now reference the shell's special variables.
+
+i. The $'...' and $"..." constructs are now added to the history correctly
+ if they contain newlines and command-oriented history is enabled.
+
+j. It is now an error to try to assign a value to a function-local copy
+ of a readonly shell variable (declared with the `local' builtin).
+
+2. Changes to Readline
+
+a. The history file code now uses O_BINARY mode when reading and writing
+ the history file on cygwin32.
+
+3. New Features in Bash
+
+a. A new programmable completion facility, with two new builtin commands:
+ complete and compgen.
+
+b. configure has a new option, `--enable-progcomp', to compile in the
+ programmable completion features (enabled by default).
+
+c. `shopt' has a new option, `progcomp', to enable and disable programmable
+ completion at runtime.
+
+d. Unsetting HOSTFILE now clears the list of hostnames used for completion.
+
+4. New Features in Readline
+
+a. A new variable, rl_gnu_readline_p, always 1. The intent is that an
+ application can verify whether or not it is linked with the `real'
+ readline library or some substitute.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.04-devel,
+and the previous version, bash-2.03-release.
+
+1. Changes to Bash
+
+a. System-specific configuration and source changes for: Interix, Rhapsody
+
+b. Fixed a bug in execute_cmd.c that resulted in a compile-time error if
+ JOB_CONTROL was not defined.
+
+c. An obscure race condition in the trap code was fixed.
+
+d. The string resulting from $'...' is now requoted to avoid any further
+ expansion.
+
+e. The $'...' quoting syntax now allows backslash to escape a single quote,
+ for ksh-93 compatibility.
+
+f. The $"..." quoting syntax now escapes backslashes and double quotes in
+ the translated string when displaying them with the --dump-po-strings
+ option.
+
+g. `echo -e' no longer converts \' to '.
+
+h. Fixes were made to the extended globbing code to handle embedded (...)
+ patterns better.
+
+i. Some improvements were made to the code that unsets `nodelay' mode on
+ the file descriptor from which bash is reading input.
+
+j. Some changes were made to the replacement termcap library for better
+ operation on MS-DOS.
+
+k. Some changes were made to the tilde expansion code to handle backslash
+ as a pathname separator on MS-DOS.
+
+l. The source has been reorganized a little bit -- there is now an `include'
+ subdirectory, and lib/posixheaders has been removed.
+
+m. Improvements were made to the `read' builtin so that it makes many
+ fewer read(2) system calls.
+
+n. The expansion of $- will include `c' and `s' when those options are
+ supplied at shell invocation.
+
+o. Several improvments were made to the completion code: variable completion
+ now works better when there are unterminated expansions, command
+ completion understands quotes better, and completion now works in certain
+ unclosed $(... constructs.
+
+p. The arithmetic expansion code was fixed to not need the value of a
+ variable being assigned a value (fixes the "ss=09; let ss=10" bug).
+
+q. Some changes were made to make exported environment creation faster.
+
+r. The html documentation will be installed into $(htmldir) if that variable
+ has a value when `make install' is run.
+
+s. Fixed a bug that would cause the bashrc file to be sourced inappropriately
+ when bash is started by sshd.
+
+t. The SSH_CLIENT environment variable is no longer auto-exported.
+
+u. A bug that caused redirections with (...) subshells to be performed in
+ the wrong order was fixed.
+
+v. A bug that occasionally caused inappropriate expansion of assignment
+ statements in compound array assignments was fixed.
+
+w. The code that parses the words in a compound array assignment was
+ simplified considerably and should work better now.
+
+x. Fixes to the non-job-control code in nojobs.c to make it POSIX.2-compliant
+ when a user attempts to retrieve the status of a terminated background
+ process.
+
+y. Fixes to the `printf' builtin so that it doesn't try to expand all
+ backslash escape sequences in the format string before parsing it for
+ % format specifiers.
+
+2. Changes to Readline
+
+a. The history library tries to truncate the history file only if it is a
+ regular file.
+
+b. A bug that caused _rl_dispatch to address negative array indices on
+ systems with signed chars was fixed.
+
+c. rl-yank-nth-arg now leaves the history position the same as when it was
+ called.
+
+d. Changes to the completion code to handle MS-DOS drive-letter:pathname
+ filenames.
+
+e. Completion is now case-insensitive by default on MS-DOS.
+
+f. Fixes to the history file manipulation code for MS-DOS.
+
+g. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS.
+
+h. Some fixes were made to the redisplay code for better operation on MS-DOS.
+
+i. The quoted-insert code will now insert tty special chars like ^C.
+
+j. A bug was fixed that caused the display code to reference memory before
+ the start of the prompt string.
+
+k. More support for __EMX__ (OS/2).
+
+l. A bug was fixed in readline's signal handling that could cause infinite
+ recursion in signal handlers.
+
+m. A bug was fixed that caused the point to be less than zero when rl_forward
+ was given a very large numeric argument.
+
+n. The vi-mode code now gets characters via the application-settable value
+ of rl_getc_function rather than calling rl_getc directly.
+
+3. New Features in Bash
+
+a. The history builtin has a `-d offset' option to delete the history entry
+ at position `offset'.
+
+b. The prompt expansion code has two new escape sequences: \j, the number of
+ active jobs; and \l, the basename of the shell's tty device name.
+
+c. The `bind' builtin has a new `-x' option to bind key sequences to shell
+ commands.
+
+d. There is a new shell option, no_empty_command_completion, which, when
+ enabled, disables command completion when TAB is typed on an empty line.
+
+e. The `help' builtin has a `-s' option to just print a builtin's usage
+ synopsys.
+
+f. There are several new arithmetic operators: id++, id-- (variable
+ post-increment/decrement), ++id, --id (variabl pre-increment/decrement),
+ expr1 , expr2 (comma operator).
+
+g. There is a new ksh-93 style arithmetic for command:
+ for ((expr1 ; expr2; expr3 )); do list; done
+
+h. The `read' builtin has a number of new options:
+ -t timeout only wait timeout seconds for input
+ -n nchars only read nchars from input instead of a full line
+ -d delim read until delim rather than newline
+ -s don't echo input chars as they are read
+
+i. The redirection code now handles several filenames specially:
+ /dev/fd/N, /dev/stdin, /dev/stdout, and /dev/stderr, whether or
+ not they are present in the file system.
+
+j. The redirection code now recognizes pathnames of the form
+ /dev/tcp/host/port and /dev/udp/host/port, and tries to open a socket
+ of the appropriate type to the specified port on the specified host.
+
+k. The ksh-93 ${!prefix*} expansion, which expands to the names of all
+ shell variables whose names start with prefix, has been implemented.
+
+l. There is a new dynamic variable, FUNCNAME, which expands to the name of
+ a currently-executing function. Assignments to FUNCNAME have no effect.
+
+m. The GROUPS variable is no longer readonly; assignments to it are silently
+ discarded. This means it can be unset.
+
+4. New Features in Readline
+
+a. Parentheses matching is now always compiled into readline, and enabled
+ or disabled when the value of the `blink-matching-paren' variable is
+ changed.
+
+b. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename.
+
+c. MS-DOS systems now use ~/_history as the default history file.
+
+d. history-search-{forward,backward} now leave the point at the end of the
+ line when the string to search for is empty, like
+ {reverse,forward}-search-history.
+
+e. history-search-{forward,backward} now leave the last history line found
+ in the readline buffer if the second or subsequent search fails.
+
+f. New function for use by applications: rl_on_new_line_with_prompt, used
+ when an application displays the prompt itself before calling readline().
+
+g. New variable for use by applications: rl_already_prompted. An application
+ that displays the prompt itself before calling readline() must set this to
+ a non-zero value.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.03-release,
+and the previous version, bash-2.03-beta2.
+
+1. Changes to Bash
+
+a. A file descriptor leak in the `fc' builtin was fixed.
+
+b. A bug was fixed in the `read' builtin that caused occasional spurious
+ failures when using `read -e'.
+
+c. The version code needed to use the value of the cpp variable
+ CONF_MACHTYPE rather than MACHTYPE.
+
+d. A new test was added to exercise the command printing and copying code.
+
+e. A bug was fixed that caused `time' to be recognized as a reserved word
+ if it was the first pattern in a `case' statement pattern list.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.03-beta2,
+and the previous version, bash-2.03-beta1.
+
+1. Changes to Bash
+
+a. Slight additions to support/shobj-conf, mostly for the benefit of AIX 4.2.
+
+b. config.{guess,sub} support added for the NEC SX4.
+
+c. Changed some of the cross-compiling sections of the configure macros in
+ aclocal.m4 so that configure won't abort.
+
+d. Slight changes to how the HTML versions of the bash and readline manuals
+ are generated.
+
+e. Fixed conditional command printing to avoid interpreting printf `%'-escapes
+ in arguments to [[.
+
+f. Don't include the bash malloc on all variants of the alpha processor.
+
+g. Changes to configure to make --enable-profiling work on Solaris 2.x.
+
+h. Fixed a bug that manifested itself when shell functions were called
+ between calls to `getopts'.
+
+i. Fixed pattern substitution so that a bare `#'as a pattern causes the
+ replacement string to be prefixed to the search string, and a bare
+ `%' causes the replacement string to be appended to the search string.
+
+j. Fixed a bug in the command execution code that caused child processes
+ to occasionally have the wrong value for $!.
+
+2. Changes to Readline
+
+a. Added code to the history library to catch history substitutions using
+ `&' without a previous history substitution or search having been
+ performed.
+
+3. New Features in Bash
+
+4. New Features in Readline
+
+a. New bindable variable: `isearch-terminators'.
+
+b. New bindable function: `forward-backward-delete-char' (unbound by default).
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.03-beta1,
+and the previous version, bash-2.03-alpha.
+
+1. Changes to Bash
+
+a. A change was made to the help text for `{...}' to make it clear that a
+ semicolon is required before the closing brace.
+
+b. A fix was made to the `test' builtin so that syntax errors cause test
+ to return an exit status > 1.
+
+c. Globbing is no longer performed on assignment statements that appear as
+ arguments to `assignment builtins' such as `export'.
+
+d. System-specific configuration changes were made for: Rhapsody,
+ AIX 4.2/gcc, BSD/OS 4.0.
+
+e. New loadable builtins: ln, unlink.
+
+f. Some fixes were made to the globbing code to handle extended glob patterns
+ which immediately follow a `*'.
+
+g. A fix was made to the command printing code to ensure that redirections
+ following compound commands have a space separating them from the rest
+ of the command.
+
+h. The pathname canonicalization code was changed to produce fewer leading
+ `//' sequences, since those are interpreted as network file system
+ pathnames on some systems.
+
+i. A fix was made so that loops containing `eval' commands in commands passed
+ to `bash -c' would not exit prematurely.
+
+j. Some changes were made to the job reaping code when the shell is not
+ interactive, so the shell will retain exit statuses longer for examination
+ by `wait'.
+
+k. A fix was made so that `jobs | command' works again.
+
+l. The erroneous compound array assignment var=((...)) is now a syntax error.
+
+m. A change was made to the dynamic loading code in `enable' to support
+ Tenon's MachTen.
+
+n. A fix was made to the globbing code so that extended globbing patterns
+ will correctly match `.' in a bracket expression.
+
+2. Changes to Readline
+
+a. A fix was made to the completion code in which a typo caused the wrong
+ value to be passed to the function that computed the longest common
+ prefix of the list of matches.
+
+b. The completion code now checks the value of rl_filename_completion_desired,
+ which is set by application-supplied completion functions to indicate
+ that filename completion is being performed, to decide whether or not to
+ call an application-supplied `ignore completions' function.
+
+3. New Features in Bash
+
+a. A change was made to the startup file code so that any shell begun with
+ the `--login' option, even non-interactive shells, will source the login
+ shell startup files.
+
+4. New Features in Readline
+
+a. A new variable, rl_erase_empty_line, which, if set by an application using
+ readline, will cause readline to erase, prompt and all, lines on which the
+ only thing typed was a newline.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.03-alpha,
+and the previous version, bash-2.02.1-release.
+
+1. Changes to Bash
+
+a. System-specific configuration changes were made for: Irix 6.x, Unixware 7.
+
+b. The texi2dvi and texi2html scripts were updated to the latest versions
+ from the net.
+
+c. The configure tests that determine which native type is 32 bits were
+ changed to not require a compiled program.
+
+d. Fixed a bug in shell_execve that could cause memory to be freed twice
+ after a failed exec.
+
+e. The `printf' test uses `diff -a' if it's available to prevent confusion
+ due to the non-ascii output.
+
+f. Shared object configuration is now performed by a shell script,
+ support/shobj-conf, which generates values to be substituted into
+ makefiles by configure.
+
+g. Some changes were made to `ulimit' to avoid the use of RLIM_INVALID as a
+ return value.
+
+h. Changes were made to `ulimit' to work around HPUX 9.x's peculiar
+ handling of RLIMIT_FILESIZE.
+
+i. Some new loadable builtins were added: id, printenv, sync, whoami, push,
+ mkdir. `pushd', `popd', and `dirs' can now be built as regular or
+ loadable builtins from the same source file.
+
+j. Changes were made to `printf' to handle NUL bytes in the expanded format
+ string.
+
+k. The various `make clean' Makefile targets now descend into lib/sh.
+
+l. The `type' builtin was changed to use the internal `getopt' so that things
+ like `type -ap' work as expected.
+
+m. There is a new configuration option, --with-installed-readline, to link
+ bash with a locally-installed version of readline. Only readline version
+ 4.0 and later releases can support this. Shared and static libraries
+ are supported. The installed include files are used.
+
+n. There is a new autoconf macro used to find which basic type is 64 bits.
+
+o. Dynamic linking and loadable builtins should now work on SCO 3.2v5*,
+ AIX 4.2 with gcc, Unixware 7, and many other systems using gcc, where
+ the `-shared' options works correctly.
+
+p. A bug was fixed in the bash filename completion code that caused memory to
+ be freed twice if a directory name containing an unset variable was
+ completed and the -u option was set.
+
+q. The prompt expansion code now quotes the `$' in the `\$' expansion so it
+ is not processed by subsequent parameter expansion.
+
+r. Fixed a parsing bug that caused a single or double quote after a `$$' to
+ trigger ANSI C expansion or locale translation.
+
+s. Fixed a bug in the globbing code that caused quoted filenames containing
+ no globbing characters to sometimes be incorrectly expanded.
+
+t. Changes to the default prompt strings if prompt string decoding is not
+ compiled into the shell.
+
+u. Added `do', `then', `else', `{', and `(' to the list of keywords that may
+ precede the `time' reserved word.
+
+v. The shell may now be cross-built for BeOS as well as cygwin32.
+
+w. The conditional command execution code now treats `=' the same as `=='
+ for deciding when to perform pattern matching.
+
+x. The `-e' option no longer causes the shell to exit if a command exits
+ with a non-zero status while running the startup files.
+
+y. The `printf' builtin no longer dumps core if a modifier is supplied in
+ the format string without a conversion character (e.g. `%h').
+
+z. Array assignments of the form a=(...) no longer show up in the history
+ list.
+
+aa. The parser was fixed to obey the POSIX.2 rules for finding the closing
+ `}' in a ${...} expression.
+
+bb. The history file is now opened with mode 0600 rather than 0666, so bash
+ no longer relies on the user's umask being set appropriately.
+
+cc. Setting LANG no longer causes LC_ALL to be assigned a value; bash now
+ relies on proper behavior from the C library.
+
+dd. Minor changes were made to allow quoted variable expansions using
+ ${...} to be completed correctly if there is no closing `"'.
+
+ee. Changes were made to builtins/Makefile.in so that configuring the shell
+ with `--enable-profiling' works right and builtins/mkbuiltins is
+ generated.
+
+2. Changes to Readline
+
+a. The version number is now 4.0.
+
+b. There is no longer any #ifdef SHELL code in the source files.
+
+c. Some changes were made to the key binding code to fix memory leaks and
+ better support Win32 systems.
+
+d. Fixed a silly typo in the paren matching code -- it's microseconds, not
+ milliseconds.
+
+e. The readline library should be compilable by C++ compilers.
+
+f. The readline.h public header file now includes function prototypes for
+ all readline functions, and some changes were made to fix errors in the
+ source files uncovered by the use of prototypes.
+
+g. The maximum numeric argument is now clamped at 1000000.
+
+h. Fixes to rl_yank_last_arg to make it behave better.
+
+i. Fixed a bug in the display code that caused core dumps if the prompt
+ string length exceeded 1024 characters.
+
+j. The menu completion code was fixed to properly insert a single completion
+ if there is only one match.
+
+k. A bug was fixed that caused the display code to improperly display tabs
+ after newlines.
+
+3. New Features in Bash
+
+a. New `shopt' option, `restricted_shell', indicating whether or not the
+ shell was started in restricted mode, for use in startup files.
+
+b. Filename generation is now performed on the words between ( and ) in
+ array assignments (which it probably should have done all along).
+
+c. OLDPWD is now auto-exported, as POSIX.2 seems to require.
+
+d. ENV and BASH_ENV are read-only variables in a restricted shell.
+
+4. New Features in Readline
+
+a. Many changes to the signal handling:
+ o Readline now catches SIGQUIT and cleans up the tty before returning;
+ o A new variable, rl_catch_signals, is available to application writers
+ to indicate to readline whether or not it should install its own
+ signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP,
+ SIGTTIN, and SIGTTOU;
+ o A new variable, rl_catch_sigwinch, is available to application
+ writers to indicate to readline whether or not it should install its
+ own signal handler for SIGWINCH, which will chain to the calling
+ applications's SIGWINCH handler, if one is installed;
+ o There is a new function, rl_free_line_state, for application signal
+ handlers to call to free up the state associated with the current
+ line after receiving a signal;
+ o There is a new function, rl_cleanup_after_signal, to clean up the
+ display and terminal state after receiving a signal;
+ o There is a new function, rl_reset_after_signal, to reinitialize the
+ terminal and display state after an application signal handler
+ returns and readline continues
+
+b. There is a new function, rl_resize_terminal, to reset readline's idea of
+ the screen size after a SIGWINCH.
+
+c. New public functions: rl_save_prompt and rl_restore_prompt. These were
+ previously private functions with a `_' prefix.
+
+d. New function hook: rl_pre_input_hook, called just before readline starts
+ reading input, after initialization.
+
+e. New function hook: rl_display_matches_hook, called when readline would
+ display the list of completion matches. The new function
+ rl_display_match_list is what readline uses internally, and is available
+ for use by application functions called via this hook.
+
+f. New bindable function, delete-char-or-list, like tcsh.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.02.1-release,
+and the previous version, bash-2.02-release.
+
+1. Changes to Bash
+
+a. A bug that caused the bash readline support to not compile unless aliases
+ and csh-style history were configured into the shell was fixed.
+
+b. Fixed a bug that could cause a core dump when here documents contained
+ more than 1000 characters.
+
+c. Fixed a bug that caused a CDPATH entry of "" to not be treated the same
+ as the current directory when in POSIX mode.
+
+d. Fixed an alignment problem with the memory returned by the bash malloc,
+ so returned memory is now 64-bit aligned.
+
+e. Fixed a bug that caused command substitutions executed within pipelines
+ to put the terminal in the wrong process group.
+
+f. Fixes to support/config.sub for: alphas, SCO Open Server and Open Desktop,
+ Unixware 2, and Unixware 7.
+
+g. Fixes to the pattern matching code to make it work correctly for eight-bit
+ characters.
+
+h. Fixed a problem that occasionally caused the shell to display the wrong
+ value for the new working directory when changing to a directory found
+ in $CDPATH when in physical mode.
+
+i. Fixed a bug that caused core dumps when using conditional commands in
+ shell functions.
+
+j. Fixed a bug that caused the printf builtin to loop forever if the format
+ string did not consume any of the arguments.
+
+k. Fixed a bug in the parameter expansion code that caused "$@" to be
+ incorrectly split if $IFS did not contain a space character.
+
+l. Fixed a bug that could cause a core dump when completing hostnames if
+ the number of matching hostnames was an exact multiple of 16.
+
+m. Fixed a bug that caused the shell to fork too early when a command
+ such as `%2 &' was given.
+
+2. Changes to Readline
+
+a. Fixed a problem with redisplay that showed up when the prompt string was
+ longer than the screen width and the prompt contained invisible characters.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.02-release,
+and the previous version, bash-2.02-beta2.
+
+1. Changes to Bash
+
+a. A bug was fixed that caused the terminal process group to be set
+ incorrectly when performing command substitution of builtins in a
+ pipeline.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.02-beta2,
+and the previous version, bash-2.02-beta1.
+
+1. Changes to Bash
+
+a. Attempting to `wait' for stopped jobs now generates a warning message.
+
+b. Pipelines which exit due to SIGPIPE in non-interactive shells are now
+ not reported if the shell is compiled -DDONT_REPORT_SIGPIPE.
+
+c. Some changes were made to builtins/psize.sh and support/bashbug.sh to
+ attempt to avoid some /tmp file races and surreptitious file
+ substitutions.
+
+d. Fixed a bug that caused the shell not to compile if configured with
+ dparen arithmetic but without aliases.
+
+e. Fixed a bug that caused the input stream to be switched when assigning
+ empty arrays with `bash -c'.
+
+f. A bug was fixed in the readline expansion glue code that caused bash to
+ dump core when expanding lines with an unclosed single quote.
+
+g. A fix was made to the `cd' builtin so that using a non-empty directory
+ from $CDPATH results in an absolute pathname of the new current working
+ directory to be displayed after the current directory is changed.
+
+h. Fixed a bug in the variable assignment code that caused the shell to
+ dump core when referencing an unset variable with `set -u' enabled in
+ an assignment statement preceding a command.
+
+i. Fixed a bug in the exit trap code that caused reserved words to not be
+ recognized under certain circumstances.
+
+j. Fixed a bug in the parameter pattern substitution code so that quote
+ removal is performed.
+
+k. The shell should now configure correctly on Apple Rhapsody systems.
+
+l. The `kill' builtin now prints a usage message if it is not passed any
+ arguments.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.02-beta1,
+and the previous version, bash-2.02-alpha1.
+
+1. Changes to Bash
+
+a. A few compilation bugs were fixed in the new extended globbing code.
+
+b. Executing arithmetic commands now sets the command name to `((' so
+ error messages look right.
+
+c. Fixed some build problems with various configuration options.
+
+d. The `printf' builtin now aborts immediately if an illegal format
+ character is encountered.
+
+e. The code that creates here-documents now behaves better if the file it's
+ trying to create already exists for some reason.
+
+f. Fixed a problem with the extended globbing code that made patterns like
+ `x+*' expand incorrectly.
+
+g. The prompt string expansion code no longer quotes tildes with backslashes.
+
+h. The bash getcwd() implementation in lib/sh/getcwd.c now behaves better in
+ the presence of lstat(2) failures.
+
+i. Fixed a bug with strsub() that caused core dumps when executing `fc -s'.
+
+j. The mail checking code now ensures that it has a valid default mailpath.
+
+k. A bug was fixed that caused local variables to be unset inappropriately
+ when sourcing a script from within another sourced script.
+
+l. A bug was fixed in the history saving code so that functions are saved
+ in the history list correctly if `cmdhist' is enabled, but `lithist'
+ is not.
+
+m. A bug was fixed that caused printf overflows when displaying error
+ messages.
+
+n. It should be easier to build the loadble builtins in examples/loadables,
+ though some manual editing of the generated Makefile is still required.
+
+o. The user's primary group is now always ${GROUPS[0]}.
+
+p. Some updates were made to support/config.guess from the GNU master copy.
+
+q. Some changes were made to the autoconf support for Solaris 2.6 large
+ files.
+
+r. The `command' builtins now does the right thing when confstr(3) cannot
+ find a value for _CS_PATH.
+
+s. Extended globbing expressions like `*.!(c)' are not history expanded if
+ `extglob' is enabled.
+
+t. Using the `-P' option to `cd' will force the value that is assigned to
+ PWD to not contain any symbolic links.
+
+2. Changes to Readline
+
+a. The code that prints completion listings now behaves better if one or
+ more of the filenames contains non-printable characters.
+
+b. The time delay when showing matching parentheses is now 0.5 seconds.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.02-alpha1,
+and the previous version, bash-2.01.1-release.
+
+1. Changes to Bash
+
+a. OS-specific configuration changes for: BSD/OS 3.x, Minix 2.x,
+ Solaris 2.6, SINIX SVR4.
+
+b. Changes were made to the generated `info' files so that `install-info'
+ works correctly.
+
+c. PWD is now auto-exported.
+
+d. A fix was made to the pipeline code to make sure that the shell forks
+ to execute simple commands consisting solely of assignment statements.
+
+e. Changes to the test suite for systems with 14-character filenames.
+
+f. The default sizes of some internal hash tables have been made smaller
+ to reduce the shell's memory footprint.
+
+g. The `((...))' arithmetic command is now executed directly instead of
+ being translated into `let "..."'.
+
+h. Fixes were made to the expansion code so that "$*", "$@", "${array[@]}",
+ and "${array[@]}" expand correctly when IFS does not contain a space
+ character, is unset, or is set to NULL.
+
+i. The indirect expansion code (${!var}) was changed so that the only
+ valid values of `var' are variable names, positional parameters, `#',
+ `@', and `*'.
+
+j. An arithmetic expression error in a $((...)) expansion now causes a
+ non-interactive shell running in posix mode to exit.
+
+k. Compound array assignment now splits the words within the parentheses
+ on shell metacharacters like the parser would before expansing them
+ and performing the assignment. This is for compatibility with ksh-93.
+
+l. The internal shell backslash-quoting code (used in the output of `set'
+ and completion) now quotes tildes if they appear at the start of the
+ string or after a `=' or `:'.
+
+m. A couple of bugs with `shopt -o' were fixed.
+
+n. `bash +o' now displays the same output as `set +o' before starting an
+ interactive shell.
+
+o. A bug that caused command substitution and the `eval' builtin to
+ occasionally free memory twice when an error was encountered was fixed.
+
+p. The filename globbing code no longer requires read permission for a
+ directory when the filename to be matched does not contain any globbing
+ characters, as POSIX.2 specifies.
+
+q. A bug was fixed so that the job containing the last asynchronous
+ process is not removed from the job table until a `wait' is executed
+ for that process or another asynchronous process is started. This
+ satisfies a POSIX.2 requirement.
+
+r. A `select' bug was fixed so that a non-numeric user response is treated
+ the same as a numeric response that is out of range.
+
+s. The shell no longer parses the value of SHELLOPTS from the environment
+ if it is restricted, running setuid, or running in `privileged mode'.
+
+t. Fixes were made to enable large file support on systems such as
+ Solaris 2.6, where the size of a file may be larger than can be held
+ in an `int'.
+
+u. The filename hashing code was fixed to not add `./' to the beginning of
+ filenames which already begin with `./'.
+
+v. The configure script was changed so that the GNU termcap library is not
+ compiled in if `prefer-curses' has been specified.
+
+w. HISTCONTROL and HISTIGNORE are no longer applied to the second and
+ subsequent lines of a multi-line command.
+
+x. A fix was made to `disown' so that it does a better job of catching
+ out-of-range jobs.
+
+y. Non-interactive shells no longer report the status of processes terminated
+ due to SIGINT, even if the standard output is a terminal.
+
+z. A bug that caused the output of `jobs' to have extra carriage returns
+ was fixed.
+
+aa. A bug that caused PIPESTATUS to not be set when builtins or shell
+ functions were executed in the foreground was fixed.
+
+bb. Bash now attempts to detect when it is being run by sshd, and treats
+ that case identically to being run by rshd.
+
+cc. A bug that caused `set -a' to export SHELLOPTS when one of the shell
+ options was changed was fixed.
+
+dd. The `kill' builtin now disallows empty or missing process id arguments
+ instead of treating them as identical to `0', which means the current
+ process.
+
+ee. `var=value declare -x var' now behaves identically to
+ `var=value export var'. Similarly for `var=value declare -r var' and
+ `var=value readonly var'.
+
+ff. A few memory leaks were fixed.
+
+gg. `alias' and `unalias' now print error messages when passed an argument
+ that is not an alias for printing or deletion, even when the shell is
+ not interactive, as POSIX.2 specifies.
+
+hh. `alias' and `alias -p' now return a status of 0 when no aliases are
+ defined, as POSIX.2 specifes.
+
+ii. `cd -' now prints the pathname of the new working directory if the shell
+ is interactive.
+
+jj. A fix was made so that the code that binds $PWD now copes with getcwd()
+ returning NULL.
+
+kk. `unset' now checks whether or not a function name it's trying to unset
+ is a valid shell identifier only when the shell is running in posix mode.
+
+ll. A change was made to the code that generates filenames for here documents
+ to make them less prone to name collisions.
+
+mm. The parser was changed so that `time' is recognized as a reserved word
+ only at the beginning of a pipeline.
+
+nn. The pathname canonicalization code was changed so that `//' is converted
+ into `/', but all other pathnames beginning with `//' are left alone, as
+ POSIX.2 specifies.
+
+oo. The `logout' builtin will no longer exit a non-interactive non-login
+ shell.
+
+2. Changes to Readline
+
+a. Fixed a problem in the readline test program rltest.c that caused a core
+ dump.
+
+b. The code that handles parser directives in inputrc files now displays
+ more error messages.
+
+c. The history expansion code was fixed so that the appearance of the
+ history comment character at the beginning of a word inhibits history
+ expansion for that word and the rest of the input line.
+
+3. New Features in Bash
+
+a. A new version of malloc, based on the older GNU malloc, that has many
+ changes, is more page-based, is more conservative with memory usage,
+ and does not `orphan' large blocks when they are freed.
+
+b. A new version of gmalloc, based on the old GLIBC malloc, with many
+ changes and range checking included by default.
+
+c. A new implementation of fnmatch(3) that includes full POSIX.2 Basic
+ Regular Expression matching, including character classes, collating
+ symbols, equivalence classes, and support for case-insensitive pattern
+ matching.
+
+d. ksh-88 egrep-style extended pattern matching ([@+*?!](patlist)) has been
+ implemented, controlled by a new `shopt' option, `extglob'.
+
+e. There is a new ksh-like `[[' compound command, which implements
+ extended `test' functionality.
+
+f. There is a new `printf' builtin, implemented according to the POSIX.2
+ specification.
+
+g. There is a new feature for command substitution: $(< filename) now expands
+ to the contents of `filename', with any trailing newlines removed
+ (equivalent to $(cat filename)).
+
+h. There are new tilde prefixes which expand to directories from the
+ directory stack.
+
+i. There is a new `**' arithmetic operator to do exponentiation.
+
+j. There are new configuration options to control how bash is linked:
+ `--enable-profiling', to allow bash to be profiled with gprof, and
+ `--enable-static-link', to allow bash to be linked statically.
+
+k. There is a new configuration option, `--enable-cond-command', which
+ controls whether or not the `[[' command is included. It is on by
+ default.
+
+l. There is a new configuration option, `--enable-extended-glob', which
+ controls whether or not the ksh extended globbing feature is included.
+ It is enabled by default.
+
+m. There is a new configuration #define in config.h.top that, when enabled,
+ will cause all login shells to source /etc/profile and one of the user-
+ specific login shell startup files, whether or not the shell is
+ interactive.
+
+n. There is a new invocation option, `--dump-po-strings', to dump
+ a shell script's translatable strings ($"...") in GNU `po' format.
+
+o. There is a new `shopt' option, `nocaseglob', to enable case-insensitive
+ pattern matching when globbing filenames and using the `case' construct.
+
+p. There is a new `shopt' option, `huponexit', which, when enabled, causes
+ the shell to send SIGHUP to all jobs when an interactive login shell
+ exits.
+
+q. `bind' has a new `-u' option, which takes a readline function name as an
+ argument and unbinds all key sequences bound to that function in a
+ specified keymap.
+
+r. `disown' now has `-a' and `-r' options, to limit operation to all jobs
+ and running jobs, respectively.
+
+s. The `shopt' `-p' option now causes output to be displayed in a reusable
+ format.
+
+t. `test' has a new `-N' option, which returns true if the filename argument
+ has been modified since it was last accessed.
+
+u. `umask' now has a `-p' option to print output in a reusable format.
+
+v. A new escape sequence, `\xNNN', has been added to the `echo -e' and $'...'
+ translation code. It expands to the character whose ascii code is NNN
+ in hexadecimal.
+
+w. The prompt string expansion code has a new `\r' escape sequence.
+
+x. The shell may now be cross-compiled for the CYGWIN32 environment on
+ a Unix machine.
+
+4. New Features in Readline
+
+a. There is now an option for `iterative' yank-last-arg handline, so a user
+ can keep entering `M-.', yanking the last argument of successive history
+ lines.
+
+b. New variable, `print-completions-horizontally', which causes completion
+ matches to be displayed across the screen (like `ls -x') rather than up
+ and down the screen (like `ls').
+
+c. New variable, `completion-ignore-case', which causes filename completion
+ and matching to be performed case-insensitively.
+
+d. There is a new bindable command, `magic-space', which causes history
+ expansion to be performed on the current readline buffer and a space to
+ be inserted into the result.
+
+e. There is a new bindable command, `menu-complete', which enables tcsh-like
+ menu completion (successive executions of menu-complete insert a single
+ completion match, cycling through the list of possible completions).
+
+f. There is a new bindable command, `paste-from-clipboard', for use on Win32
+ systems, to insert the text from the Win32 clipboard into the editing
+ buffer.
+
+g. The key sequence translation code now understands printf-style backslash
+ escape sequences, including \NNN octal escapes. These escape sequences
+ may be used in key sequence definitions or macro values.
+
+h. An `$include' inputrc file parser directive has been added.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.01.1-release,
+and the previous version, bash-2.01-release.
+
+1. Changes to Bash
+
+a. The select command was fixed to check the validity of the user's
+ input more strenuously.
+
+b. A bug was fixed that prevented `time' from timing commands correctly
+ when supplied as an argument to `bash -c'.
+
+c. A fix was made to the mail checking code to keep from adding the same
+ mail file to the list of files to check multiple times when parsing
+ $MAILPATH.
+
+d. Fixed an off-by-one error in the tilde expansion library.
+
+e. When using the compound array assignment syntax, the old value of
+ the array is cleared before assigning the new value.
+
+f. Fixed a bug that could cause a core dump when a trap handler was reset
+ to the default in the trap command associated with that signal.
+
+g. Fixed a bug in the locale code that occurred when assigning a value
+ to LC_ALL.
+
+h. A change was made to the parser so that words of the form xxx=(...)
+ are not considered compound assignment statements unless there are
+ characters before the `='.
+
+i. A fix was made to the command tracing code to correctly quote each
+ word of output.
+
+j. Some changes were made to the bash-specific autoconf tests to make them
+ more portable.
+
+k. Completion of words with globbing characters now correctly quotes the
+ result.
+
+l. The directory /var/spool/mail is now preferred to /usr/spool/mail when
+ configure is deciding on the default mail directory.
+
+m. The brace completion code was fixed to not quote the `{' and `}'.
+
+n. Some fixes were made to make $RANDOM more random in subshells.
+
+o. System-specific changes were made to configure for: SVR4.2
+
+p. Changes were made so that completion of words containing globbing chars
+ substitutes the result only if a single filename was matched.
+
+q. The window size is now recomputed after a job is stopped with SIGTSTP if
+ the user has set `checkwinsize' with `shopt'.
+
+r. When doing substring expansion, out-of-range substring specifiers now
+ cause nothing to be substituted rather than an expansion error.
+
+s. A fix was made so that you can no longer trap `SIGEXIT' or `SIGDEBUG' --
+ only `EXIT' and `DEBUG' are accepted.
+
+t. The display of trapped signals now uses the signal number if signals
+ for which bash does not know the name are trapped.
+
+u. A fix was made so that `bash -r' does not turn on restricted mode until
+ after the startup files are executed.
+
+v. A bug was fixed that occasionally caused a core dump when a variable
+ found in the temporary environment of export/declare/readonly had a
+ null value.
+
+w. A bug that occasionally caused unallocated memory to be passed to free()
+ when doing arithmetic substitution was fixed.
+
+x. A bug that caused a buffer overrun when expanding a prompt string
+ containing `\w' and ${#PWD} exceeded PATH_MAX was fixed.
+
+y. A problem with the completion code that occasionally caused it to
+ refer to a character before the beginning of the readline line buffer
+ was fixed.
+
+z. A bug was fixed so that the `read' builtin restarts reads when
+ interrupted by signals other than SIGINT.
+
+aa. Fixed a bug that caused a command to be freed twice when there was
+ an evaluation error in the `eval' command.
+
+2. Changes to Readline
+
+a. Added a missing `extern' to a declaration in readline.h that kept
+ readline from compiling cleanly on some systems.
+
+b. The history file is now opened with mode 0600 when it is written for
+ better security.
+
+c. Changes were made to the SIGWINCH handling code so that prompt redisplay
+ is done better.
+
+d. ^G now interrupts incremental searches correctly.
+
+e. A bug that caused a core dump when the set of characters to be quoted
+ when completing words was empty was fixed.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.01-release,
+and the previous version, bash-2.01-beta2.
+
+1. Changes to Bash
+
+a. The `distclean' target should remove the `printenv' executable if it
+ has been created.
+
+b. The test suite was changed slightly to ensure that the error messages
+ are printed in English.
+
+c. A bug that caused the shell to dump core when a filename containing a
+ `/' was passed to `hash' was fixed.
+
+d. Pathname canonicalization now leaves a leading `//' intact, as POSIX.1
+ requires.
+
+e. A memory leak when completing commands was fixed.
+
+f. A memory leak that occurred when checking the hash table for commands
+ with relative paths was fixed.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.01-beta2,
+and the previous version, bash-2.01-beta1.
+
+1. Changes to Bash
+
+a. The `ulimit' builtin translates RLIM_INFINITY to the hard limit only if
+ the current (soft) limit is less than or equal to the hard limit.
+
+b. Fixed a bug that caused the bash emulation of strcasecmp to produce
+ incorrect results.
+
+c. A bug that caused memory to be freed twice when a trap handler resets
+ the trap more than once was fixed.
+
+d. A bug that caused machines where sizeof (pointer) > sizeof (int) to
+ fail (and possibly dump core) when trying to unwind-protect a null
+ pointer was fixed.
+
+e. The startup files should not be run with job control enabled. This fix
+ allows SIGINT to once again interrupt startup file execution.
+
+f. Bash should not change the SIGPROF handler if it is set to something
+ other than SIG_DFL.
+
+g. The completion code that provides bash-specific completions for readline
+ now quotes characters that the readline code would treat as word break
+ characters if they appear in a file name.
+
+h. The completion code now correctly quotes filenames containing a `!',
+ even if the user attempted to use double quotes when attempting
+ completion.
+
+i. A bug that caused the shell to dump core when `disown' was called without
+ arguments and there was no current job was fixed.
+
+j. A construct like $((foo);bar) is now processed as a command substitution
+ rather than as a bad arithmetic substitution.
+
+k. A couple of bugs that caused `fc' to not obey the `cmdhist' and `lithist'
+ shell options when editing and re-executing a series of commands were
+ fixed.
+
+l. A fix was made to the grammar -- the list of commands between `do' and
+ `done' in the body of a `for' command should be treated the same as a
+ while loop.
+
+2. Changes to Readline
+
+a. A couple of bugs that caused the history search functions to attempt to
+ free a NULL pointer were fixed.
+
+b. If the C library provides setlocale(3), readline does not need to look
+ at various environment variables to decide whether or not to go into
+ eight-bit mode automatically -- just check whether the current locale
+ is not `C' or `POSIX'.
+
+c. If the filename completion function finds that a directory was not closed
+ by a previous (interrupted) completion, it closes the directory with
+ closedir().
+
+3. New Features in Bash
+
+a. New bindable readline commands: history-and-alias-expand-line and
+ alias-expand-line. The code was always in there, there was just no
+ way to execute it.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.01-beta1,
+and the previous version, bash-2.01-alpha1.
+
+1. Changes to Bash
+
+a. Fixed a problem that could cause file descriptors used for process
+ substitution to conflict with those used explicitly in redirections.
+
+b. Made it easier to regenerate configure if the user changes configure.in.
+
+c. ${GROUPS[0]} should always be the primary group, even on systems without
+ multiple groups.
+
+d. Spelling correction is no longer enabled by default.
+
+e. Fixes to quoting problems in `bashbug'.
+
+f. OS-specific configuration changes were made for: Irix 6.
+
+g. OS-specific code changes were made for: QNX.
+
+h. A more meaningful message is now printed when the file in /tmp for a
+ here document cannot be created.
+
+i. Many changes to the shell's variable initialization code to speed
+ non-interactive startup.
+
+j. Changes to the non-job-control code so that it does not try to open
+ /dev/tty.
+
+k. The output of `set' and `export' is once again sorted, as POSIX wants.
+
+l. Fixed a problem caused by a recursive call reparsing the value of
+ $SHELLOPTS.
+
+m. The tilde code no longer calls getenv() when it's compiled as part of
+ the shell, which should eliminate problems on systems that cannot
+ redefine getenv(), like the NeXT OS.
+
+n. Fixed a problem that caused `bash -o' or `bash +o' to not list all
+ the shell options.
+
+o. Fixed `ulimit' to convert RLIM_INFINITY to the appropriate hard limit
+ only if the hard limit is greater than the current (soft) limit.
+
+p. Fixed a problem that arose when building bash in a different directory
+ than the source and y.tab.[ch] were remade with something other than
+ bison. This came up most often on NetBSD.
+
+q. Fixed a problem with completion -- it thought that `pwd`/[TAB] indicated
+ an unfinished command completion (`/), which generated errors.
+
+r. The bash special tilde expansions (~-, ~+) are now attempted before
+ calling the standard tilde expansion code, which should eliminate the
+ problems people have been seeing with this on Solaris 2.5.1.
+
+s. Added support for <stdarg.h> to places where it was missing.
+
+t. Changed the code that reads the output of a command substitution to not
+ go through stdio. This reduces the memory requirements and is faster.
+
+u. A number of changes to speed up export environment creation were made.
+
+v. A number of memory leaks were fixed as the result of running the test
+ scripts through Purify.
+
+w. Fixed a bug that caused subshells forked to interpret executable
+ scripts without a leading `#!' to not reinitialize the values of
+ the shell options.
+
+2. Changes to Readline
+
+a. History library has less `#ifdef SHELL' code -- abstracted stuff out
+ into application-specific function hooks.
+
+b. Readline no longer calls getenv() if it's compiled as part of the shell,
+ which should eliminate problems on systems that cannot redefine getenv(),
+ like the NeXT OS.
+
+c. Fixed translation of ESC when `untranslating' macro values.
+
+d. The region kill operation now fixes the mark if it ends up beyond the
+ boundaries of the line after the region is deleted.
+
+3. New Features in Bash
+
+a. New argument for `configure': `--with-curses'. This can be used to
+ override the selection of the termcap library on systems where it is
+ deficient.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.01-alpha1,
+and the previous version, bash-2.0-release.
+
+1. Changes to Bash
+
+a. System-specific configuration changes for: FreeBSD, SunOS4, Irix,
+ MachTen, QNX 4.2, Harris Night Hawk, SunOS5.
+
+b. System-specific code changes were made for: Linux, 4.4 BSD, QNX 4.2,
+ HP-UX, AIX 4.2.
+
+c. A bug that caused the exec builtin to fail because the full pathname of
+ the command could not be found was fixed.
+
+d. The code that performs output redirections is now more resistant to
+ race conditions and possible security exploits.
+
+e. A bug that caused the shell to dump core when performing pattern
+ substitutions on variable values was fixed.
+
+f. More hosts are now recognized by the auto-configuration mechanism
+ (OpenBSD, QNX, others).
+
+g. Assignments to read-only variables that attempt to convert them to
+ arrays are now errors.
+
+h. A bug that caused shell scripts using array assignments in POSIX mode
+ to exit after the assignment was performed was fixed.
+
+i. The substring expansion code is now more careful about running off the
+ ends of the expanded variable value.
+
+j. A bug that caused completion to fail if a backquoted command substitution
+ appeared anywhere on the line was fixed.
+
+k. The `source' builtin no longer turns off history if it has been enabled
+ in a non-interactive shell.
+
+l. A bug that caused the shell to crash when `disown' was given a pid
+ instead of a job number was fixed.
+
+m. The `cd' spelling correction code will not try to change to `.' if no
+ directory entries match a single-character argument.
+
+n. A bad variable name supplied to `declare', `export', or `readonly' no
+ longer causes a non-interactive shell in POSIX mode to exit.
+
+o. Some fixes were made to the test suite to handle peculiarities of
+ various Unix versions.
+
+p. The bash completion code now quotes characters that readline would
+ treat as word breaks for completion but are not shell metacharacters.
+
+q. Bad options supplied at invocation now cause a usage message to be
+ displayed.
+
+r. Fixes were made to the code that handles DEBUG traps so that the trap
+ string is not freed inappropriately.
+
+s. Some changes were made to the bash debugger in examples/bashdb -- it
+ should be closer to working now.
+
+t. A problem that caused the default filename used for mail checking to be
+ wrong was fixed.
+
+u. A fix was made to the `echo' builtin so that NUL characters printed with
+ `echo -e' do not cause the output to be truncated.
+
+v. A fix was made to the job control code so that the shell behaves better
+ when monitor mode is enabled in a non-interactive shell.
+
+w. Bash no longer catches all of the terminating signals in a non-
+ interactive shell until a trap is set on EXIT, which should result in
+ quicker startup.
+
+x. A fix was made to the command timing code so that `time' can be used in
+ a loop.
+
+y. A fix was made to the parser so that `((cmd); cmd2)' is now parsed as
+ a nested subshell rather than strictly as an (erroneous) arithmetic
+ command.
+
+z. A fix was made to the globbing code so that it correctly matches quoted
+ filenames beginning with a `.'.
+
+aa. A bug in `fc' that caused some multi-line commands to not be stored as
+ one command in the history when they were re-executed after editing
+ (with `fc -e') was fixed.
+
+bb. The `ulimit' builtin now attempts to catch some classes of integer
+ overflows.
+
+cc. The command-oriented-history code no longer attempts to add `;'
+ inappropriately when a newline appears while reading a $(...) command
+ substitution.
+
+dd. A bug that caused the shell to dump core when `help --' was executed
+ was fixed.
+
+ee. A bug that caused the shell to crash when an unset variable appeared
+ in the body of a here document after `set -u' had been executed was
+ fixed.
+
+ff. Implicit input redirections from /dev/null for asynchronous commands
+ are now handled better.
+
+gg. A bug that caused the shell to fail to compile when configured with
+ `--disable-readline' was fixed.
+
+hh. The globbing code should now be interruptible.
+
+ii. Bash now notices when the `kill' builtin is used to send SIGCONT to a
+ stopped job and adjusts the data structures accordingly, as if `bg' had
+ been executed instead.
+
+jj. A bug that caused the shell to crash when mixing calls to `getopts'
+ and `shift' on the same set of positional parameters was fixed.
+
+kk. The command printing code now preserves the `-p' flag to `time'.
+
+ll. The command printing code now handles here documents better when there
+ are other redirections associated with the command.
+
+mm. The special glibc environment variable (NNN_GNU_nonoption_argv_flags_)
+ is no longer placed into the environment of executed commands -- users
+ of glibc had too many problems with it.
+
+nn. Reorganized the code that generates signames.h. The signal_names list
+ is now more complete but may be slightly different (SIGABRT is favored
+ over SIGIOT, for example). The preferred signal names are those
+ listed in the POSIX.2 standard.
+
+oo. `bashbug' now uses a filename shorter than 14 characters for its
+ temporary file, and asks for confirmation before sending the bug
+ report.
+
+pp. A bug that caused TAB completion in vi editing mode to not be turned
+ off when `set -o posix' was executed or back on when `set +o posix'
+ was executed was fixed.
+
+qq. A bug in the brace expansion code that caused brace expansions appearing
+ in new-style $(...) command substitutions to be inappropriately expanded
+ was fixed.
+
+rr. A bug in the readline hook shell-expand-line that could cause memory to
+ be inappropriately freed was fixed.
+
+ss. A bug that caused some arithmetic expressions containing `&&' and `||'
+ to be parsed with the wrong precedence has been fixed.
+
+tt. References to unbound variables after `set -u' has been executed now
+ cause the shell to exit immediately, as they should.
+
+uu. A bug that caused the shell to exit inappropriately when `set -e' had
+ been executed and a command's return status was being inverted with the
+ `!' reserved word was fixed.
+
+vv. A bug that could occasionally cause the shell to crash with a
+ divide-by-zero error when timing a command was fixed.
+
+ww. A bug that caused parameter pattern substitution to leave stray
+ backslashes in the replacement string when the expression is in
+ double quotes was fixed.
+
+xx. The `break' and `continue' builtins now break out of all loops when an
+ invalid count argument is supplied.
+
+yy. Fixed a bug that caused PATH to be set to the empty string if
+ `command -p' is executed with PATH unset.
+
+zz. Fixed `kill -l signum' to print the signal name without the `SIG' prefix,
+ as POSIX specifies.
+
+aaa. Fixed a bug that caused the shell to crash while setting $SHELLOPTS
+ if there were no shell options set.
+
+bbb. Fixed `export -p' and `readonly -p' so that when the shell is in POSIX
+ mode, their output is as POSIX.2 specifies.
+
+ccc. Fixed a bug in `readonly' so that `readonly -a avar=(...)' actually
+ creates an array variable.
+
+ddd. Fixed a bug that prevented `time' from correctly timing background
+ pipelines.
+
+2. Changes to Readline
+
+a. A bug that caused an extra newline to be printed when the cursor was on
+ an otherwise empty line was fixed.
+
+b. An instance of memory being used after it was freed was corrected.
+
+c. The redisplay code now works when the prompt is longer than the screen
+ width.
+
+d. `dump-macros' is now a bindable name, as it should have been all along.
+
+e. Non-printable characters are now expanded when displaying macros and
+ their values.
+
+f. The `dump-variables' and `dump-macros' commands now output a leading
+ newline if they're called as the result of a key sequence, rather
+ than directly by an application.
+
+3. New Features in Bash
+
+a. There is a new builtin array variable: GROUPS, the set of groups to which
+ the user belongs. This is used by the test suite.
+
+4. New Features in Readline
+
+a. If a key sequence bound to `universal-argument' is read while reading a
+ numeric argument started with `universal-argument', it terminates the
+ argument but is otherwise ignored. This provides a way to insert multiple
+ instances of a digit string, and is how GNU emacs does it.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.0-release,
+and the previous version, bash-2.0-beta3.
+
+1. Changes to Bash
+
+a. Fix to the `getopts' builtin so that it does the right thing when a
+ required option argument is not present.
+
+b. The completion code now updates the common prefix of matched names
+ after FIGNORE processing is done, since any names that were removed
+ may have changed the common prefix.
+
+c. Fixed a bug that made messages in MAILPATH entries not work correctly.
+
+d. Fixed a serious documentation error in the description of the new
+ ${parameter:offset[:length]} expansion.
+
+e. Fixes to make parameter substring expansion ({$param:offset[:length]})
+ work when within double quotes.
+
+f. Fixes to make ^A (CTLESC) survive an unquoted expansion of positional
+ parameters.
+
+g. Corrected a misspelling of `unlimited' in the output of `ulimit'.
+
+h. Fixed a bug that caused executable scripts without a leading `#!' to
+ occasionally pick up the wrong set of positional parameters.
+
+i. Linux systems now have a working `ulimit -v', using RLIMIT_AS.
+
+j. Updated config.guess so that many more machine types are recognized.
+
+k. Fixed a bug with backslash-quoted slashes in the ${param/pat[/sub]}
+ expansion.
+
+l. If the shell is named `-su', and `-c command' is supplied, read and
+ execute the login shell startup files even though the shell is not
+ interactive. This is to support the `-' option to `su'.
+
+m. Fixed a bug that caused core dumps when the DEBUG trap was ignored
+ with `trap "" DEBUG' and a shell function was subsequently executed.
+
+n. Fixed a bug that caused core dumps in the read builtin when IFS was
+ set to the null string and the input had leading whitespace.
+
+2. Changes to Readline
+
+a. Fixed a bug that caused a numeric argument of 1024 to be ignored when
+ inserting text.
+
+b. Fixed the display code so that the numeric argument is displayed as it's
+ being entered.
+
+c. Fixed the numeric argument reading code so that `M-- command' is
+ equivalent to `M--1 command', as the prompt implies.
+
+3. New Features in Bash
+
+a. `ulimit' now sets both hard and soft limits and reports the soft limit
+ by default (when neither -H nor -S is specified). This is compatible
+ with versions of sh and ksh that implement `ulimit'.
+
+b. Integer constants have been extended to base 64.
+
+4. New Features in Readline
+
+a. The `home' and `end' keys are now bound to beginning-of-line and
+ end-of-line, respectively, if the corresponding termcap capabilities
+ are present.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.0-beta3,
+and the previous version, bash-2.0-beta2.
+
+1. Changes to Bash
+
+a. System-specific changes for: AIX 4.2, SCO 3.2v[45], HP-UX.
+
+b. When in POSIX mode, variable assignments preceding a special builtin
+ persist in the shell environment after the builtin completes.
+
+c. Changed all calls to getwd() to getcwd(). Improved check for systems
+ where the libc getcwd() calls popen(), since that breaks on some
+ systems when job control is being used.
+
+d. Fixed a bug that caused seg faults when executing scripts with the
+ execute bit set but without a leading `#!'.
+
+e. The environment passed to executed commands is never sorted.
+
+f. A bug was fixed in the code that expands ${name[@]} to the number of
+ elements in an array variable.
+
+g. A bug was fixed in the array compound assignment code ( A=( ... ) ).
+
+h. Window size changes now correctly propagate down to readline if
+ the shopt `checkwinsize' option is enabled.
+
+i. A fix was made in the code that expands to the length of a variable
+ value (${#var}).
+
+j. A fix was made to the command builtin so that it did not turn on the
+ `no fork' flag inappropriately.
+
+k. A fix was made to make `set -n' work more reliably.
+
+l. A fix was made to the job control initialization code so that the
+ terminal process group is set to the shell's process group if the
+ shell changes its own process group.
+
+2. Changes to Readline
+
+a. System-specific changes for: SCO 3.2v[45].
+
+b. The behavior of the vi-mode `.' when redoing an `i' command was changed
+ to insert the text previously inserted by the `i' command rather than
+ simply entering insert mode.
+
+3. New features in Bash
+
+a. There is a new version of the autoload function package, in
+ examples/functions/autoload.v2, that uses arrays and provides more
+ functionality.
+
+b. Support for LC_COLLATE and locale-specific sorting of the results of
+ pathname expansion if strcoll() is available.
+
+4. New Features in Readline
+
+a. Support for locale-specific sorting of completion possibilities if
+ strcoll() is available.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.0-beta2,
+and the previous version, bash-2.0-beta1.
+
+1. Changes to Bash
+
+a. `pushd -' is once again equivalent to `pushd $OLDPWD'.
+
+b. OS-specific changes for: SCO 3.2v[45].
+
+c. A change was made to the fix for the recently-reported security hole
+ when reading characters with octal value 255 to make it work better on
+ systems with restartable system calls when not using readline.
+
+d. Some changes were made to the test suite so that it works if you
+ configure bash with --enable-usg-echo-default.
+
+e. A fix was made to the parsing of conditional arithmetic expressions.
+
+f. Illegal arithmetic bases now cause an arithmetic evaluation error rather
+ than being silently reset.
+
+g. Multiple arithmetic bases now cause an arithmetic evaluation error
+ instead of being ignored.
+
+h. A fix was made to the evaluation of ${param?word} to conform to POSIX.2.
+
+i. A bug that sometimes caused array indices to be evaluated twice (which
+ would cause errors when they contained assignment statements) was fixed.
+
+j. `ulimit' was rewritten to avoid problems with getrlimit(2) returning
+ unsigned values and to simplify the code.
+
+k. A bug in the command-oriented-history code that caused it to sometimes
+ put semicolons after right parens inappropriately was fixed.
+
+l. The values inserted into the prompt by the \w and \W escape sequences
+ are now quoted to prevent further expansion.
+
+m. An interactive shell invoked as `sh' now reads and executes commands
+ from the file named by $ENV when it starts up. If it's a login shell,
+ it does this after reading /etc/profile and ~/.profile.
+
+n. The file named by $ENV is never read by non-interactive shells.
+
+2. Changes to Readline
+
+a. A few changes were made to hide some macros and functions that should not
+ be public.
+
+b. An off-by-one error that caused seg faults in the history expansion code
+ was fixed.
+
+3. New Features in Bash
+
+a. The ksh-style ((...)) arithmetic command was implemented. It is exactly
+ identical to let "...". This is controlled by a new option to configure,
+ `--enable-dparen-arithmetic', which is on by default.
+
+b. There is a new #define available in config.h.top: SYS_BASH_LOGOUT. If
+ defined to a filename, bash reads and executes commands from that file
+ when a login shell exits. It's commented out by default.
+
+c. `ulimit' has a `-l' option that reports the maximum amount of data that
+ may be locked into memory on 4.4BSD-based systems.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.0-beta1,
+and the previous version, bash-2.0-alpha4.
+
+1. Changes to Bash
+
+a. A bug that sometimes caused traps to be ignored on signals the
+ shell treats specially was fixed.
+
+b. The internationalization code was changed to track the values of
+ LC_* variables and call setlocale() as appropriate. The TEXTDOMAIN
+ and TEXTDOMAINDIR variables are also tracked; changes cause calls
+ to textdomain() and bindtextdomain(), if available.
+
+c. A bug was fixed that sometimes caused double-quoted strings to be
+ parsed incorrectly.
+
+d. Changes were made so that the siglist code compiles correctly on
+ Solaris 2.5.
+
+e. Added `:' to the set of characters that cause word breaks for the
+ completion code so that pathnames in assignments to $PATH can be
+ completed.
+
+f. The `select' command was fixed to print $PS3 to stderr.
+
+g. Fixed an error in the manual page section describing the effect that
+ setting and unsetting GLOBIGNORE has on the setting of the `dotglob'
+ option.
+
+h. The time conversion code now uses CLK_TCK rather than CLOCKS_PER_SEC
+ on systems without gettimeofday() and resources.
+
+i. The getopt static variables are now initialized each time a subshell
+ is started, so subshells using `getopts' work right.
+
+j. A sign-extension bug that caused a possible security hole was fixed.
+
+k. The parser now reads characters between backquotes within a double-
+ quoted string as a single word, so double quotes in the backquoted
+ string don't terminate the enclosing double-quoted string.
+
+l. A bug that caused `^O' to work incorrectly when typed as the first
+ thing to an interactive shell was fixed.
+
+m. A rarely-exercised off-by-one error in the code that quotes variable
+ values was fixed.
+
+n. Some memory and file descriptor leaks encountered when running a
+ shell script that is executable but does not have a leading `#!'
+ were plugged.
+
+2. Changes to Readline
+
+a. A bug that sometimes caused incorrect results when trying to read
+ typeahead on systems without FIONREAD was fixed.
+
+3. New Features in Bash
+
+a. The command timing code now uses the value of the TIMEFORMAT variable
+ to format and display timing statistics.
+
+b. The `time' reserved word now accepts a `-p' option to force the
+ POSIX.2 output format.
+
+c. There are a couple of new and updated scripts to convert csh startup
+ files to bash format.
+
+d. There is a new builtin array variable: BASH_VERSINFO. The various
+ members hold the parts of the version information in BASH_VERSION,
+ plus the value of MACHTYPE.
+
+4. New Features in Readline
+
+a. Setting LANG to `en_US.ISO8859-1' now causes readline to enter
+ eight-bit mode.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.0-alpha4,
+and the previous version, bash-2.0-alpha3.
+
+1. Changes to Bash
+
+a. There is better detection of rsh connections on Solaris 2.
+
+b. Assignments to read-only variables preceding a command name are now
+ variable assignment errors. Variable assignment errors cause
+ non-interactive shells running in posix mode to exit.
+
+c. The word tokenizer was rewritten to handle nested quotes and pairs
+ ('', "", ``, ${...}, $(...), $[...], $'...', $"...", <(...), >(...))
+ correctly. Some of the parameter expansion code was updated as a
+ consequence.
+
+d. A fix was made to `test' when given three arguments so that a binary
+ operator is checked for first, before checking that the first argument
+ is `!'.
+
+e. 2''>/dev/null is no longer equivalent to 2>/dev/null.
+
+f. Parser error messages were regularized, and in most cases the name of
+ the shell script being read by a non-interactive shell is not printed
+ twice.
+
+g. A fix was made to the completion code so that it no longer removes the
+ text the user typed in some cases.
+
+h. The special glibc `getopt' environment variable is no longer put into
+ the environment on machines with small values of ARG_MAX.
+
+i. The expansion of ${...} now follows the POSIX.2 rules for finding the
+ closing `}'.
+
+j. The shell no longer displays spurious status messages for background
+ jobs in shell scripts that complete successfully when the script is
+ run from a terminal.
+
+k. `shopt -o' now correctly updates $SHELLOPTS.
+
+l. A bug that caused the $PATH searching code to return a non-executable
+ file even when an executable file with the same name appeared later in
+ $PATH was fixed.
+
+m. The shell now does tilde expansions on unquoted `:~' in assignment
+ statements when not in posix mode.
+
+n. Variable assignment errors when a command consists only of assignments
+ now cause non-interactive shells to exit when in posix mode.
+
+o. If the variable in a `for' or `select' command is read-only, or not a
+ legal shell identifier, a variable assignment error occurs.
+
+p. `test' now handles `-a' and `-o' as binary operators when three arguments
+ are supplied, and correctly parses `( word )' as equivalent to `word'.
+
+q. `test' was fixed so that file names of the form /dev/fd/NN mean the same
+ thing on all systems, even Linux.
+
+r. Fixed a bug in the globbing code that caused patterns with multiple
+ consecutive `*'s to not be matched correctly.
+
+s. Fixed a bug that caused $PS2 to not be printed when an interactive shell
+ not using readline is reading a here document.
+
+t. Fixed a bug that caused history expansion to be performed inappropriately
+ when a single-quoted string spanned more than one line.
+
+u. `getopts' now checks that the variable name passed by the user as the
+ second argument is a legal shell identifier and that the variable is
+ not read-only.
+
+v. Fixed `getopts' to obey POSIX.2 rules for setting $OPTIND when it
+ encounters an error.
+
+w. Fixed `set' to display variable values in a form that can be re-read.
+
+x. Fixed a bug in the code that keeps track of whether or not local variables
+ have been declared at the current level of function nesting.
+
+y. Non-interactive shells in posix mode now exit if the name in a function
+ declaration is not a legal identifier.
+
+z. The job control code now ignores stopped children when the shell is not
+ interactive.
+
+aa. The `cd' builtin no longer attempts spelling correction on the directory
+ name if the shell is not interactive, regardless of the setting of the
+ `cdspell' option.
+
+bb. Some OS-specific changes were made for SCO 3.2v[45] and AIX 4.2.
+
+cc. `time' now prints its output to stderr, as POSIX.2 specifies.
+
+2. Fixes to Readline
+
+a. After printing possible completions, all lines of a multi-line prompt
+ are redisplayed.
+
+b. Some changes were made to the terminal handling code in rltty.c to
+ work around AIX 4.2 bugs.
+
+3. New Features in Bash
+
+a. There is a new loadable builtin: sprintf, with calling syntax
+ sprintf var format [args]
+ This provides an easy way to simulate ksh left- and right-justified
+ variable values.
+
+b. The expansions of \h and \H in prompt strings were swapped. \h now
+ expands to the hostname up to the first `.', as in bash-1.14.
+
+4. New Features in Readline
+
+a. The bash-1.14 behavior when ^M is typed while doing an incremental
+ search was restored. ^J may now be used to terminate the search without
+ accepting the line.
+
+b. There is a new bindable variable: disable-completion. This inhibits
+ word completion and causes the completion character to be inserted as
+ if it had been bound to self-insert.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-2.0-alpha3,
+and the previous version, bash-2.0-alpha2.
+
+There is now a file `COMPAT' included in the distribution that lists the
+user-visible incompatibilities between 1.14 and 2.0.
+
+1. Changes to Bash
+
+a. Some work was done so that word splitting of the rhs of assignment
+ statements conforms more closely to historical practice.
+
+b. A couple of errant memory frees were fixed.
+
+c. A fix was made to the test builtin so it recognizes `<' and `>' as
+ binary operators.
+
+d. The GNU malloc in lib/malloc/malloc.c now scrambles memory as it's
+ allocated and freed. This is to catch callers that refer to freed
+ memory or assume something about newly-allocated memory.
+
+e. Fixed a problem with conversion to 12-hour time in the prompt
+ expansion code.
+
+f. Fixed a problem with configure's argument parsing order. Now you can
+ correctly turn on specific options after using --enable-minimal-config.
+
+g. The configure script now automatically disables the use of GNU malloc
+ on systems where it's appropriate (better than having people read the
+ NOTES file and do it manually).
+
+h. There are new prompt expansions (\v and \V) to insert version information
+ into the prompt strings.
+
+i. The default prompt string now includes the version number.
+
+j. Most of the builtins that take no options were changed to use the
+ internal getopt so they can produce proper error messages for -?
+ and incorrect options.
+
+k. Some system-specific changes were made for SVR4.2 and Solaris 2.5.
+
+l. Bash now uses PATH_MAX instead of MAXPATHLEN and NAME_MAX instead of
+ MAXNAMLEN.
+
+m. A couple of problems caused by uninitialized variables were fixed.
+
+n. There are a number of new loadable builtin examples: logname, basename,
+ dirname, tty, pathchk, tee, head, and rmdir. All of these conform to
+ POSIX.2.
+
+o. Bash now notices changes in TZ and calls tzset() if present, so
+ changing TZ will alter the time printed by prompt expansions.
+
+p. The source was reorganized a bit so I don't have to wait so long for
+ some files to compile, and to facilitate the creation of a `shell
+ library' at some future point.
+
+q. Bash no longer turns off job control if called as `sh', since the
+ POSIX.2 spec includes job control as a standard feature.
+
+r. `bash -o posix' now works as intended.
+
+s. Fixed a problem with the completion code: when completing a filename
+ that contained globbing characters, if show-all-if-ambiguous was set,
+ the completion code would remove the user's text.
+
+t. Fixed ulimit so that (hopefully) the full range of limits is available
+ on HPUX systems.
+
+u. A new `shopt' option (`hostcomplete') enables and disables hostname
+ completion.
+
+v. The shell no longer attempts to save the history on an abort(),
+ which is usually called by programming_error().
+
+w. The `-s' option to `fc' was changed to echo the command to be executed
+ to stderr instead of stdout.
+
+x. If the editor invoked by `fc -e' exits with a non-zero status, no
+ commands are executed.
+
+y. Fixed a bug that made the shopt `histverify' option work incorrectly.
+
+z. There is a new variable `MACHTYPE' whose value is the GNU-style
+ `cpu-company-system' system description as set by configure. (The
+ values of MACHTYPE and HOSTTYPE should really be swapped.)
+
+aa. The `ulimit' builtin now allows the maximum virtual memory size to be
+ set via setrlimit(2) if RLIMIT_VMEM is defined.
+
+bb. `bash -nc 'command'' no longer runs `command'.
+
+2. Changes to Readline
+
+a. Fixed a typo in the code that checked for FIONREAD in input.c.
+
+b. Fixed a bug in the code that outputs keybindings, so things like C-\
+ are quoted properly.
+
+c. Fixed a bug in the inputrc file parsing code to handle the problems
+ caused by inputrc files created from the output of `bind -p' in
+ previous versions of bash. The problem was due to the bug fixed
+ in item b above.
+
+d. Readline no longer turns off the terminal's meta key, and turns it on
+ once the first time it's called.
+
+------------------------------------------------------------------------------
+This file documents the changes between this version, bash-2.0-alpha2,
+and the previous version, bash-2.0-alpha.
+
+1. Changes to Bash
+
+a. The shell no longer thinks directories are executable.
+
+b. `disown' has a new option, `h', which inhibits the resending of SIGHUP
+ but does not remove the job from the jobs table.
+
+c. The varargs functions in error.c now use ANSI-C `stdarg' if available.
+
+d. The build process now treats the `build version' in .build as local to
+ the build directory, so different versions built from the same source
+ tree have different `build versions'.
+
+e. Some problems with the grammar have been fixed. (It used `list' in a few
+ productions where `compound_list' was needed. A `list' must be terminated
+ with a newline or semicolon; a `compound_list' need not be.)
+
+f. A fix was made to keep `wait' from hanging when waiting for all background
+ jobs.
+
+g. `bash --help' now writes its output to stdout, like the GNU Coding Standards
+ specify, and includes the machine type (the value of MACHTYPE).
+
+h. `bash --version' now prints more information and exits successfully, like
+ the GNU Coding Standards specify.
+
+i. The output of `time' and `times' now prints fractional seconds with three
+ places after the decimal point.
+
+j. A bug that caused process substitutions to screw up the pipeline printed
+ by `jobs' was fixed.
+
+k. Fixes were made to the code that implements $'...' and $"..." so they
+ work as documented.
+
+l. The process substitution code now opens named pipes for reading with
+ O_NONBLOCK to avoid hanging.
+
+m. Fixes were made to the trap code so the shell cleans up correctly if the
+ trap command contains a `return' and we're executing a function or
+ sourcing a script with `.'.
+
+n. Fixes to doc/Makefile.in so that it doesn't try to remake all of the
+ documentation (ps, dvi, etc.) on a `make install'.
+
+o. Fixed an auto-increment error that caused bash -c args to sometimes dump
+ core.
+
+p. Fixed a bug that caused $HISTIGNORE to fail when the history line
+ contained globbing characters.
+
+2. Changes to Readline
+
+a. There is a new string variable, rl_library_version, available for use by
+ applications. The current value is "2.1".
+
+b. A bug encountered when expand-tilde was enabled and file completion was
+ attempted on a word beginning with `~/' was fixed.
+
+c. A slight change was made to the incremental search termination behavior.
+ ESC still terminates the search, but if input is pending or arrives
+ within 0.1 seconds (on systems with select(2)), it is used as a prefix
+ character. This is intented to allow users to terminate searches with
+ the arrow keys and get the behavior they expect.
diff --git a/COMPAT b/COMPAT
index 63940e6d..c635c8a1 100644
--- a/COMPAT
+++ b/COMPAT
@@ -323,6 +323,3 @@ bash-2.0 were significant.)
search the current directory for its filename argument, even if "." is
not in $PATH. Posix says that the shell shouldn't look in $PWD in this
case.
-
-44. Bash-4.1 uses the current locale when comparing strings using the < and
- > operators to the `[[' command.
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog
index 832e301e..4e80baf4 100644
--- a/CWRU/CWRU.chlog
+++ b/CWRU/CWRU.chlog
@@ -9014,3 +9014,60 @@ trap.c
SIG_TRAPPED flag without changing signal disposition
[bash-4.1-alpha frozen]
+
+ 10/16
+ -----
+builtins/mapfile.def
+ - return an error if the variable passed is not an indexed array.
+ Fixes bug reported by Nick Hobson <nick.hobson@yahoo.com>
+ - change help text to make it clear that an indexed array is required
+
+doc/{bash.1,bashref.texi}
+ - changed description of mapfile to note that the array variable
+ argument must be an indexed array, and mapfile will return an
+ error if it is not
+
+subst.c
+ - change expand_string_unsplit and expand_string_leave_quoted to
+ add the (previously unused) W_NOSPLIT2 flag to the created word
+ - change expand_word_internal to understand W_NOSPLIT2 to mean that
+ we're not going to split on $IFS, so we should not quote any
+ characters in IFS that we add to the result string. Fixes bug
+ reported by Enrique Perez-Terron <enrio@online.no>
+ - change cond_expand_word similarly. Fixes rest of bug reported by
+ Enrique Perez-Terron <enrio@online.no>
+
+parse.y
+ - save and restore value of last_command_subst_pid around call to
+ expand_prompt_string in decode_prompt_string. Fixes bug that causes
+ $? to be set wrong when using a construct like false || A=3 when
+ set -x is enabled and $PS4 contains a command substitution. Reported
+ by Jeff Haemer <jeffrey.haemer@gmail.com>
+
+ 10/17
+ -----
+execute_cmd.c
+ - in execute_in_subshell, make sure we set setjmp(return_catch) before
+ running the command, in case the command or its word expansion
+ calls jump_to_top_level. Fixes bug reported by Nils Bernhard
+ <nils.bernhard@yahoo.de>
+
+subst.c
+ - new PF_NOSPLIT2 flag for param_expand
+ - parameter_brace_expand takes a new `pflags' argument, before the
+ `output' parameters; passes to param_expand as necessary
+ - change parameter_brace_expand to call parameter_brace_expand_word
+ with the PF_NOSPLIT2 flag if the pflags argument to
+ parameter_brace_expand has it set
+
+parse.y
+ - change report_syntax_error to set last_command_exit_value to
+ EX_BADSYNTAX if parse_and_execute_level is > 0, indicating a
+ syntax error while we're executing a dot script, eval string,
+ trap command, etc.
+
+builtins/evalstring.c
+ - in parse_and_execute, if parse_command() returns non-zero,
+ indicating a parse error, print a warning message if the conditions
+ would require a posix-mode shell to abort (parse error in a `.'
+ script or eval string)
diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~
index dd539fc2..7cb64108 100644
--- a/CWRU/CWRU.chlog~
+++ b/CWRU/CWRU.chlog~
@@ -9012,3 +9012,62 @@ lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
trap.c
- new function, free_trap_string(), does what it says and turns off
SIG_TRAPPED flag without changing signal disposition
+
+[bash-4.1-alpha frozen]
+
+ 10/16
+ -----
+builtins/mapfile.def
+ - return an error if the variable passed is not an indexed array.
+ Fixes bug reported by Nick Hobson <nick.hobson@yahoo.com>
+ - change help text to make it clear that an indexed array is required
+
+doc/{bash.1,bashref.texi}
+ - changed description of mapfile to note that the array variable
+ argument must be an indexed array, and mapfile will return an
+ error if it is not
+
+subst.c
+ - change expand_string_unsplit and expand_string_leave_quoted to
+ add the (previously unused) W_NOSPLIT2 flag to the created word
+ - change expand_word_internal to understand W_NOSPLIT2 to mean that
+ we're not going to split on $IFS, so we should not quote any
+ characters in IFS that we add to the result string. Fixes bug
+ reported by Enrique Perez-Terron <enrio@online.no>
+ - change cond_expand_word similarly. Fixes rest of bug reported by
+ Enrique Perez-Terron <enrio@online.no>
+
+parse.y
+ - save and restore value of last_command_subst_pid around call to
+ expand_prompt_string in decode_prompt_string. Fixes bug that causes
+ $? to be set wrong when using a construct like false || A=3 when
+ set -x is enabled and $PS4 contains a command substitution. Reported
+ by Jeff Haemer <jeffrey.haemer@gmail.com>
+
+ 10/17
+ -----
+execute_cmd.c
+ - in execute_in_subshell, make sure we set setjmp(return_catch) before
+ running the command, in case the command or its word expansion
+ calls jump_to_top_level. Fixes bug reported by Enrique Perez-Terron
+ <enrio@online.no>
+
+subst.c
+ - new PF_NOSPLIT2 flag for param_expand
+ - parameter_brace_expand takes a new `pflags' argument, before the
+ `output' parameters; passes to param_expand as necessary
+ - change parameter_brace_expand to call parameter_brace_expand_word
+ with the PF_NOSPLIT2 flag if the pflags argument to
+ parameter_brace_expand has it set
+
+parse.y
+ - change report_syntax_error to set last_command_exit_value to
+ EX_BADSYNTAX if parse_and_execute_level is > 0, indicating a
+ syntax error while we're executing a dot script, eval string,
+ trap command, etc.
+
+builtins/evalstring.c
+ - in parse_and_execute, if parse_command() returns non-zero,
+ indicating a parse error, print a warning message if the conditions
+ would require a posix-mode shell to abort (parse error in a `.'
+ script or eval string)
diff --git a/CWRU/changelog b/CWRU/changelog
index 832e301e..d2d81b30 100644..120000
--- a/CWRU/changelog
+++ b/CWRU/changelog
@@ -1,9016 +1 @@
- 7/27/2004
- ---------
-
-[bash-3.0 released]
-
- 7/28
- ----
-array.c
- - in array_insert(), make sure the value to be added is non-NULL before
- calling savestring() on it
-
-builtins/reserved.def
- - fix description of `CDPATH'
-
-lib/readline/display.c
- - when expanding a prompt that spans multiple lines with embedded
- newlines, set prompt_physical_chars from the portion after the
- final newline, not the preceding portion. Bug reported by
- "Ralf S. Engelschall" <rse@engelschall.com>
-
-make_cmd.c
- - explicitly declare `lineno' in function prologue for make_case_command
-
-builtins/evalfile.c
- - include `trap.h' for declaration for run_return_trap
-
-bashline.c
- - fix a `return' without a value in enable_hostname_completion
-
-general.c
- - include test.h for extern declaration for test_eaccess
-
-externs.h
- - add declaration for zcatfd
-
-tests/{history,histexp}.tests
- - unset HISTFILESIZE to avoid problems if a value of 0 is inherited
- from the environment
-
- 7/30
- ----
-bashline.c
- - small changes to glob_expand_word to perform tilde expansion before
- attempting globbing
-
-builtins/Makefile.in
- - fix the install-help target to not cd into the `helpfiles'
- subdirectory, so a value of $INSTALL_DATA containing a relative
- pathname (e.g., .././support/install.sh) remains valid
-
- 7/31
- ----
-subst.c
- - new function, mbstrlen(s), returns length of a multibyte character
- string
-
-include/shmbutil.h
- - new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate
-
-builtins/trap.def
- - small change so that a first argument that's a valid signal number
- (digits only -- no symbolic names) will be treated as a signal and
- reverted back to the original handling disposition. Fixes debian
- complaints
-
-subst.c
- - call MB_STRLEN instead of STRLEN where appropriate in
- parameter_brace_expand_length to handle multibyte characters properly
- - call MB_STRLEN instead of strlen in verify_substring_values so that
- negative substrings of strings with multibyte chars work properly
-
- 8/1
- ---
-jobs.c
- - describe_pid needs to write to stderr, not stdout (POSIX)
- - start_job, since it's only used by builtins (fg/bg), needs to write
- its output to stdout, not stderr (POSIX)
-
-sig.c
- - add an `orig_flags' member to struct terminating_signal so the
- original signal handling flags (SA_RESTART, etc.) can be preserved
- on POSIX systems
- - make sure to preserve the signal flags state in
- initialize_terminating_signals and reset them for child processes
- in reset_terminating_signals
-
-builtins/fc.def
- - fixed an off-by-one error that caused `fc -l' to list one too many
- history entries
- - in posix mode, `fc' should not list any indication as to whether or
- not history lines have been modified (POSIX)
- - when in posix mode, the default editor for `fc' should be `ed' (POSIX)
-
-doc/bashref.texi
- - updated the description of `trap' behavior when given a first
- argument that is a valid signal number
- - noted that `fc -l' won't indicate whether a history entry has been
- modified if the shell is in posix mode
-
-builtins/command.def
- - fixed bug: `command -v' is supposed to be silent if a command is not
- found
-
-builtins/hash.def
- - `hash' should print its `hash table empty' message to stderr
-
-lib/readline/misc.c
- - back out 7/7 change to _rl_maybe_save_line; it breaks emacs-mode ^P
-
-general.c
- - changed base_pathname so that it will return reasonable results for
- non-absolute pathnames -- this is what is intended by all of its
- callers
-
-arrayfunc.c
- - fix array_variable_part to return NULL if it finds an invisible
- variable in the hash table. Fixes seg fault caused by referring to
- unset local variable using array notation
-
-{locale,variables}.c
- - support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks
- the current locale
-
- 8/2
- ---
-variables.c
- - fixed small memory leak in makunbound() when a local array variable
- is unset. Fix from William Park
-
-lib/readline/display.c
- - fixed a problem when computing the number of invisible characters on
- the first line of a prompt whose length exceeds the screen width
- (should only happen when invisible characters occur after the
- line wrap). Bug reported by agriffis@gentoo.org
-
-builtins/command.def
- - `command -V' passes a new flag, CDESC_ABSPATH, which means to convert
- to an absolute path
-
-builtins/type.def
- - in posix mode, `type' and `command -v/-V' should not report
- non-executable files, even if the execution code will attempt to
- run them. Other posix shells do this
-
-doc/bashref.texi
- - add note to POSIX Mode section describing behavior of type and command
- when finding a non-executable file
-
-execute_cmd.c
- - force extended_glob to 1 before calling binary_test in
- execute_cond_node so that the right extended pattern matching gets
- performed
-
- 8/3
- ---
-braces.c
- - make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars
- with values > 128 are handled correctly
-
-builtins/printf.def
- - change bexpand() and printstr() to handle strings with a leading
- '\0' whose length is non-zero, since that's valid input for the
- `%b' format specifier
-
-subst.c
- - fix a couple of instances of find_variable that didn't check the
- result for an invisible variable
-
-variables.c
- - BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as
- invisible vars
-
-pcomplete.c
- - make sure COMP_WORDS is not invisible when bind_comp_words returns
- - ditto for COMPREPLY in gen_shell_function_matches
-
- 8/4
- ---
-braces.c
- - fix problem where ${ was ignored but did not increment the open
- brace count. Bug reported by Tim Waugh <twaugh@redhat.com>
-
-variables.c
- - if make_local_variable finds a variable in the correct context in
- the right variable scope, make sure it's not invisible before
- returning it
-
- 8/5
- ---
-builtins/trap.def
- - fixed usage message to show `action' as not optional, though it
- actually is when not in posix mode (for a single argument)
-
- 8/7
- ---
-configure.in
- - kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs
- to be configured --without-gnu-malloc
-
-lib/readline/vi_mode.c
- - in rl_vi_search, free any saved history line before starting the
- search, so failure leaves you at that line, not the last line in
- the history (assuming the current line is not the last history line).
- Fix from llattanzi@apple.com to replace fix of 7/7
-
- 8/9
- ---
-support/Makefile.in
- - renamed `mostly-clean' target to `mostlyclean'
-
- 8/11
- ----
-lib/readline/vi_mode.c
- - make same change for EOL in multibyte character case of
- rl_vi_change_char
-
- 8/12
- ----
-subst.c
- - in verify_substring_values, fix off-by-one error checking bounds of
- `offset', esp. in array values (e.g., getting the highest element
- of an array)
-
- 8/16
- ----
-aclocal.m4
- - change BASH_CHECK_DEV_FD to make sure that file descriptors > 2 are
- accessible via /dev/fd, unlike FreeBSD 5.x
-
-lib/sh/strftime.c
- - make sure `zone' is initialized with gettimeofday before it is used
- - work around HPUX lack of `altzone' and differing definitions of
- `timezone'
-
-lib/malloc/malloc.c
- - internal_memalign and memalign now take a `size_t' as their first
- argument, which seems to be the prevailing standard
-
-lib/malloc/{malloc.c,shmalloc.h}
- - change sh_memalign to take a `size_t' as its first argument
-
-builtins/echo.def
- - if posixly_correct and xpg_echo are both set, don't try to interpret
- any arguments at all, as POSIX/XOPEN requires (fix inspired by Paul
- Eggert)
-
-doc/bashref.texi
- - amend description of bash posix mode to include new echo behavior
-
-builtins/fg_bg.def
- - allow bg to take multiple job arguments, as posix seems to specify,
- placing them all in the background, returning the status of the last
- one as the status of `bg'
-
-lib/readline/vi_mode
- - fix _rl_vi_change_mbchar_case (multibyte-char version of `~'
- command) to have the right behavior at EOL -- handle case where vi
- mode backs up at the end of the line
-
- 8/18
- ----
-array.c
- - check for an empty array in array_rshift before shifting elements
- and adjusting max_index
- - check for null array in array_subrange
-
-jobs.c
- - fix raw_job_exit_status to not ignore exit status of the last
- process in the pipeline when `set -o pipefail' is enabled
-
- 8/19
- ----
-lib/readline/mbutil.c
- - make sure _rl_find_next_mbchar_internal has a valid multibyte
- character before it checks whether or not it's a zero-width
- wide character and adjusts point accordingly
-
- 8/24
- ----
-bashline.c
- - new function, bash_directory_expansion, duplicates the expansions
- performed on the directory name by rl_filename_completion_function
- - call bash_directory_expansion in command_word_completion_function
- if we decide we're doing tilde expansion (and any other
- canonicalization) on the directory name being completed
-
- 8/25
- ----
-configure.in
- - use new-style AC_CHECK_HEADER to check for sys/ptem.h (which requires
- sys/stream.h). The correct checks are in the code, but autoconf
- complains if sys/stream.h is not included, rather than simply
- checking for the header's presence
-
- 8/26
- ----
-builtins/hash.def
- - fix a bug that prevented `hash -d' from working right (as soon as
- hash removed a command from the table, the bug caused it to be added
- right back)
-
- 8/27
- ----
-doc/{bash.1,bashref.texi}
- - explicitly note that conditional primaries that operate on files
- operate on the targets of symbolic links rather than the links
- themselves
-
- 8/30
- ----
-lib/readline/display.c
- - fix multibyte calculation of `physchars' in prompt expansion, to
- handle double-width multibyte characters correctly
- - changes to rl_redisplay to handle prompts longer than the screenwidth
- that might contain double-width multibyte characters. Fixes from
- Tomohiro Kubota
-
- 9/6
- ---
-subst.c
- - change word_list_split to avoid really bad behavior caused by calling
- list_append for each split word -- as the list gets long, you have
- to traverse it every time. Keep a pointer to the end of the list and
- and just tack onto it
-
- 9/8
- ---
-lib/readline/complete.c
- - change fnprint to calculate the displayed width of a filename in
- the same way as fnwidth
-
-subst.c
- - in verify_substring_values, when expanding ${array[@]:offset}, make
- sure negative offsets count from one greater than the array's
- maximum index so things like ${x[@}: -1} work to give the last element
- (requires fixing array tests)
-
-builtins/common.c
- - new error function, sh_wrerror(), for builtins to call when a write
- error occurs
-
-builtins/common.h
- - extern declaration for sh_wrerror()
-
-builtins/cd.def
- - change builtin_error call to use sh_wrerror()
-
-builtins/echo.def
- - report write errors with sh_wrerror() instead of just returning
- failure
-
-builtins/printf.def
- - change printstr to return failure (-1) or success (0) indication
- rather than void
- - report write errors when printstr() fails, return failure
- - if any of the PF/printf calls fail, report write error and return
- failure
-
-execute_cmd.c
- - change execute_in_subshell so the subshell command inherits the
- command timing flags from the enclosing COMMAND *
-
- 9/11
- ----
-[prayers for the victims of 9/11/2001]
-
-lib/sh/strnlen.c
- - new file, implementation of GNU libc extension function strnlen
-
-lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST
- - changes for strnlen
-
-configure.in
- - version changed to 3.1-devel
-
-doc/bash.1, lib/readline/doc/rluser.texi
- - added description of `-o plusdirs' to complete/compgen (thanks,
- Arnold)
-
-parse.y
- - new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing
- arguments to a builtin that accepts assignment statement arguments
- - turn on PST_ASSIGNOK in read_token_word when appropriate
- - turn off PST_ASSIGNOK in read_token when appropriate
- - don't attempt to parse a compound assignment specially unless we're
- in a position where an assignment statement is acceptable, or
- PST_ASSIGNOK is set
-
- 9/13
- ----
-variables.c
- - make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE
- non-unsettable, since the shell uses those values internally
-
-expr.c
- - make exponentiation right-associative, as is apparently correct
-
- 9/16
- ----
-arrayfunc.c
- - make sure convert_var_to_array marks the environment as needing
- recreation if the converted variable was exported
-
- 9/17
- ----
-braces.c
- - mark ${ as introducing an additional level of braces only if it's
- not in a quoted string -- quoted strings are handled before brace
- matching is done
-
-parse.y
- - fixed an obscure problem in history_delimiting_chars where the `in'
- in a case statement could have a semicolon added after it, if the
- `case word' was on a previous line
-
-support/config.guess
- - support for newest versions of tandem non-stop kernel
-
-lib/readline/display.c
- - in compute_lcd_of_matches, explicitly cast `text' to `char *' before
- passing it to rl_filename_dequoting_function
-
-lib/readline/terminal.c
- - bind the key sequence sent by the keypad `delete' key to delete-char
- (same as ^D in emacs mode)
-
-builtins/ulimit.def
- - in print_all_limits, don't print anything if get_limit returns
- -1/EINVAL, indicating that the kernel doesn't support that particular
- limit
- - add -i (max number of pending signals), -q (max size of posix msg
- queues), -x (max number of file locks) for systems (Linux) that
- support them
-
-doc/{bash.1,bashref.texi}
- - fix description of correspondence between FUNCNAME, BASH_LINENO,
- and BASH_SOURCE indices in description of BASH_LINENO
-
- 9/18
- ----
-lib/sh/shquote.c
- - don't quote CTLESC and CTLNUL with CTLESC in sh_backslash_quote, as
- long as the resultant string never gets sent to the word expansion
- functions without going through the shell parser
-
-externs.h
- - add extern declarations for strnlen and strpbkrk from lib/sh
-
-subst.[ch]
- - changes to handle case where IFS consists of multibyte characters.
- Changed: string_extract_verbatim, split_at_delims,
- string_list_dollar_star, string_list_dollar_at, list_string,
- get_word_from_string, setifs
-
- 9/19
- ----
-mailcheck.c
- - change file_mod_date_changed to reset the cached mail file data if
- the file size drops to zero
-
-lib/readline/complete.c
- - change append_to_match so that a non-zero value for
- rl_completion_suppress_append will cause no `/' to be appended to a
- directory name
-
-bashline.c
- - experimental change to suppress appending a slash for a completed
- filename that is found in PATH as well as a directory in the current
- directory under certain circumstances: a single instance found in
- $PATH when `.' is not in $PATH, and multiple instances found in the
- $PATH, even when `.' is in the $PATH
-
- 9/24
- ----
-command.h
- - new word flag: W_ASSIGNRHS, means word is rhs of assignment statement
- - new word flag: W_NOTILDE, means word is not to be tilde expanded
- - new word flag (internal): W_ITILDE, means the next character is a
- tilde that should be expanded
-
-general.c
- - new set of tilde suffixes for use when parsing the RHS of an
- assignment statement and =~ should not be subject to tilde expansion
- - if ASSIGN_P argument to bash_tilde_expand is 2, use tilde prefixes
- for parsing RHS of assignment statement
-
-general.[ch]
- - new function bash_tilde_find_word, drop-in replacement for
- tilde_find_word
-
-subst.c
- - call bash_tilde_expand with secord argument of 2 when expanding rhs
- of an assignment statement, so tildes after second and subsequent
- `=' in an assignment are not expanded
- - new function, expand_string_assignment, to expand the rhs of an
- assignment statement
- - add `~' to EXP_CHAR, the characters that will cause the word
- expansion functions to be called
- - move tilde expansion into expand_word_internal instead of many
- different calls to bash_tilde_expand scattered across different
- functions. NOTE: This means that double quotes surrounding a
- {paramOPword} expansion will cause tilde expansion to NOT be
- performed on `word'. I think this is right, what POSIX specifies,
- and consistent with the behavior of other characters in the rhs
-
-execute_cmd.c
- - take out calls to bash_tilde_expand before calling word expansion
- functions
-
- 9/26
- ----
-execute_cmd.c
- - make sure to call UNBLOCK_CHILD before returning on a pipe creation
- failure in execute_pipeline
-
- 9/27
- ----
-variables.c
- - change get_bash_command to deal with the_printed_command_except_trap
- being NULL
-
-execute_cmd.c
- - fix execute_simple_command to deal with the_printed_command being
- NULL when assigning to the_printed_command_except_trap -- fixes
- seg fault in savestring()
-
-parse.y
- - change the parser so that the closing `)' in a compound variable
- assignment delimits a token -- ksh93 does it this way
-
-doc/{bash.1,bashref.texi}
- - change description of tilde expansion to note that expansion is
- attempted only after the first =~ in an assignment statement
-
-builtins/declare.def
- - when assigning to an array variable with declare -a x=(...), make
- sure the last character in the rhs of the variable assignment is
- `)', not just that it appears somewhere
-
- 9/28
- ----
-command.h
- - add a `W_NOEXPAND' flag to inhibit all expansion except quote removal
- - add a `W_COMPASSIGN' flag to denote a word is a compound assignment
- statement
-
-parse.y
- - set W_COMPASSIGN on words that appear to be compound assignments
-
-subst.c
- - pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal
-
-subst.[ch]
- - new function, expand_assignment_string_to_string, calls
- expand_string_assignment and then string_list on the result
-
-variables.c
- - assign_in_env now calls expand_assignment_string_to_string
-
- 9/30
- ----
-builtins/common.c
- - change get_job_spec so the null job `%' once again means the current
- job
-
- 10/1
- ----
-subst.c
- - do_assignment_internal now takes a WORD_DESC * as its first
- argument, and uses its `word' member as the assignment string
- - change expand_word_list_internal to call do_word_assignment instead
- of do_assignment, passing it `word' instead of, e.g., `word->word'
- - change extract_array_assignment_list to just return the passed
- string minus a trailing `)' if the last character is a right
- paren
- - change do_assignment_internal to call extract_array_assignment_list
-
-subst.[ch]
- - change do_assignment and do_assignment_no_expand to take a `char *'
- instead of `const char *' first argument; change extern prototypes
- - new function, do_word_assignment, takes a WORD_DESC * and calls
- do_assignment_internal on it; add extern declaration with prototype
-
-general.h
- - new typedef, sh_wassign_func_t, like sh_assign_func_t but takes a
- WORD_DESC * as its first argument
-
-variables.[ch]
- - assign_in_env now takes a WORD_DESC * as its first argument
-
- 10/2
- ----
-command.h
- - new word flag, W_ASSNBLTIN, denotes that the word is a builtin
- command (in a command position) that takes assignment statements
- as arguments, like `declare'
- - new word flags, W_ASSIGNARG, denotes that word is an assignment
- statement given as argument to assignment builtin
-
-execute_cmd.c
- - set W_ASSNBLTIN flag in fix_assignment_words if necessary (if there
- are any arguments that are assignment statements)
- - set W_ASSIGNARG flag in fix_assignment_words if necessary
-
-subst.c
- - new function, do_compound_assignment, encapsulates the necessary
- code to perform a compound array assignment (including creation of
- local variables); called from do_assignment_internal
- - to fix the double-expansion problem with compound array assignments
- that are arguments to builtins like `declare', changed
- shell_expand_word_list to treat those arguments like assignment
- statements (with proper creation of local variables inside shell
- functions) and pass the attribute-setting portion of the statement
- onto the builtin. This is what ksh93 appears to do, from inspection
- of the `ksh93 -x' output
-
-execute_cmd.c
- - fix execute_simple_command: in case of pipeline or async command,
- when forking early, set `subshell_environment' so that it can contain
- both SUBSHELL_PIPE and SUBSHELL_ASYNC -- the two should not be
- mutually exclusive. Fixes bug reported by pierre.humblet@ieee.org
- - remove references to last_pid, old_command_subst_pid; use NO_PID as
- a sentinel value to decide whether or not a child process has been
- created and needs to be waited for. Submitted by
- pierre.humblet@ieee.org to fix recycling-pid problem on cygwin
-
-doc/{bash.1,bashref.texi}
- - fixed documentation of `@(pattern)' extended globbing operator --
- it succeeds if the string matches one of the patterns, not exactly
- one. This is what ksh93 does, too
-
-lib/readline/complete.c
- - fixed rl_menu_complete so that a negative argument cycles backwards
- through the list
-
- 10/3
- ----
-subst.c
- - use W_COMPASSIGN flag in do_assignment_internal instead of deciding
- lexically which assignments are compound array assignments
-
- 10/6
- ----
-support/shobj-conf
- - additions for System V.5 from Boyd Gerber <gerberb@zenez.com>
-
-subst.c
- - in command_substitute, if subshell_environment includes
- SUBSHELL_ASYNC, call make_child with the `async_p' argument set to
- non-zero. This keeps command substitutions for async commands or
- pipelines from trying to give the terminal back to the shell's
- pgrp. make sure to save and restore last_asynchronous_pid. Fix
- suggested by <pierre.humblet@ieee.org>
-
- 10/7
- ----
-config.h.in
- - add a placeholder definition for WCONTINUED_BROKEN
-
- 10/9
- ----
-aclocal.m4
- - add BASH_CHECK_WCONTINUED, checks for glibc bug where WCONTINUED is
- defined but rejected as invalid by waitpid(2)
-
-configure.in
- - add call to BASH_CHECK_WCONTINUED, defines WCONTINUED_BROKEN
-
-redir.c
- - experimental change to add_undo_redirect to save manipulations to
- file descriptors >= SHELL_FD_BASE (10) on the list of redirections
- to be undone even if `exec' causes the list to be discarded
-
-doc/{bash.1,bashref.texi}
- - note that redirections using file descriptors > 9 should be used
- carefully, because they might conflict with file descriptors the
- shell uses internally
-
- 10/11
- -----
-parse.y
- - fix pipeline_command production to handle case where `pipeline'
- as `argument' of `!' or `time' is null (e.g., a syntax error not
- handled by the grammar)
-
- 10/13
- -----
-lib/readline/readline.c
- - new internal variable, _rl_bind_stty_chars; if non-zero, bind the
- terminal special characters to readline equivalents at startup
- - change readline_default_bindings() and reset_default_bindings() to
- understand _rl_bind_stty_chars
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_bind_stty_chars
-
-lib/readline/rltty.c
- - change rl_prep_terminal to add support for _rl_bind_stty_chars
-
- 10/15
- -----
-lib/readline/bind.c
- - new bindable variable, `bind-tty-special-chars', bound to value of
- _rl_bind_stty_chars
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - documented new readline variable `bind-tty-special-chars'
-
-builtins/pushd.def
- - make the first check for option `--' skip the rest of option
- checking
-
- 10/16
- -----
-lib/readline/shell.c
- - change sh_set_lines_and_columns to prefer setenv, which has
- predictable memory allocation behavior, to putenv, which does not
-
- 10/19
- -----
-variables.c
- - change push_exported_var so that a tempenv variable has to have the
- export attribute set (which they all do -- something to look at) and
- the `propagate' attribute set to be propagated down to the next
- scope
-
-execute_cmd.c
- - change execute_builtin so that if CMD_COMMAND_BUILTIN is set in the
- passed flags argument, call pop_scope with a value that says the
- builtin is not special, since `command' means that preceding variable
- assignments don't persist in the environment. Fixes problem with
- variable assignments preceding command preceding special builtin
- keeping those variable assignments around (when in posix mode)
-
- 10/20
- -----
-lib/sh/shquote.c
- - new function, sh_mkdoublequoted, brackets a given string with
- double quotes and returns a new string. Flags argument, if non-
- zero, means to quote embedded double quotes with backslashes
-
-externs.h
- - new extern declaration for sh_mkdoublequoted
-
-parse.y
- - use sh_mkdoublequoted after calling localeexpand()
-
-lib/sh/strtrans.c
- - change ansicstr to understand that (flags & 4) != 0 means to remove
- backslash from unrecognized escape sequences
-
-general.c
- - fix logic problem in assignment() that caused non-variable-starter
- characters to be allowed, resulting in things like `1=xxx' creating
- a variable `1' in the hash table
-
- 10/21
- -----
-bashline.c
- - don't call programmable_completions with an assignment statement
- argument
-
- 10/22
- -----
-lib/readline/rltty.c
- - in prepare_terminal_settings, turn echoing on (readline_echoing_p)
- if get_tty_settings fails because the input is not a terminal
-
- 10/24
- -----
-lib/readline/util.c
- - include rlmbutil.h for multibyte definitions
- - new function, _rl_walphabetic, wide char version of rl_alphabetic
-
-lib/readline/mbutil.c
- - new function, _rl_char_value(buf, ind), returns value of (possibly
- multibyte) character at buf[ind]
-
-lib/readline/rlmbutil.h
- - extern defines for _rl_walphabetic and _rl_char_value for when
- multibyte chars are not being used
- - new wrapper definitions for _rl_find_next_mbchar (MB_NEXTCHAR) and
- _rl_find_prev_mbchar (MB_PREVCHAR) that try to avoid unneeded
- function calls
-
-lib/readline/text.c
- - fix rl_foward_word to work with multibyte characters (or in a
- multibyte locale) using above utility functions
- - fix rl_backward_word to work with multibyte characters (or in a
- multibyte locale) using above utility functions
-
- 10/26
- -----
-parse.y
- - fix parse_matched_pair so that it doesn't swallow \<newline> when
- parsing a $'...' construct (call shell_getc with different arg)
-
- 10/28
- -----
-lib/glob/glob.c
- - after some (compiled-in) threshold, glob_vector will stop using
- alloca to allocate `struct globval's and will switch to using
- malloc, with appropriate cleanup before returning
-
-subst.c
- - don't expand tildes after `=' in expand_word_internal, even if the
- W_TILDEEXP flag is set, unless it's the first tilde in a word
- marked W_ASSIGNMENT
-
- 10/31
- -----
-lib/readline/text.c
- - make sure rl_point doesn't go below 0 in rl_delete_horizontal_space
- (from SUSE, but not sent in)
-
-shell.c
- - make sure shell_is_restricted skips over a single leading `-' in
- the shell name (from SUSE, but not sent in)
-
-lib/readline/display.c
- - disable `fast redisplay' at the end of the line if in a locale that
- supports multibyte characters (from SUSE, but not sent in)
-
-lib/readline/histexpand.c
- - fix a problem with finding the delimiter of a `?' substring when
- compiled for multibyte characters (from SUSE, but not sent in)
-
- 11/1
- ----
-lib/readline/display.c
- - correct some assignments to _rl_last_c_pos: when in a multibyte
- locale, it's used as an absolute cursor position; when not using
- multibyte characters, it's a buffer offset. I should have caught
- this when the multibyte character support was donated
-
- 11/5
- ----
-general.c
- - change `assignment()' to accept `+=' assignment operator
-
-arrayfunc.[ch]
- - bind_array_variable and assign_array_element both take a new `flags'
- argument
- - assign_array_var_from_string, assign_array_from_string, and
- assign_array_var_from_word_list now all take a new `flags' argument
- - change assign_array_var_from_word_list to understand how to append
- to an array variable
- - change assign_array_var_from_string to understand how to append
- to an array variable. It does not unset the previous value if
- appending, allowing both old values to be changed and new ones to
- be added
-
-subst.h
- - new flag #defines to use for evaluating assignment statements
-
-{subst,variables}.c, builtins/{declare,read}.def
- - change callers of assign_array_element and bind_array_variable
- - change do_compound_assignment to understand assignment flags
- - change do_assignment_internal to set assignment flags and pass them
- to underlying functions
-
-pcomplete.c,builtins/{declare,read}.def
- - fix callers of assign_array_var_from_string, assign_array_var_from_word_list
-
-variables.[ch]
- - make_variable_value now takes a new `flags' argument
- - make_variable_value now understands how to append to a particular
- variable, using the old value
- - bind_variable_value now takes a new `flags' argument
- - change make_variable_value to understand ASS_APPEND flag
- - bind_variable now takes a new `flags' argument
- - bind_variable_internal now takes a new `flags' argument
-
-arrayfunc.c
- - change callers of make_variable_value to add flags arg
-
-builtins/declare.def
- - change callers of bind_variable_value to add flags arg
-
-{execute_cmd,mailcheck,pcomplete,shell,subst,variables}.c,parse.y
-builtins/{cd,command,declare,getopts,read,set,setattr}.def
- - change callers of bind_variable to add flags arg
-
-variables.c
- - change callers of bind_variable_internal
- - change bind_variable_internal to pass assignment flags on to
- make_variable_value
- - change assign_in_env to treat `var+=value' like `var=value'
-
-arrayfunc.c
- - break code that actually constructs the new value and assigns it
- to a particular array index out into a new functions:
- bind_array_var_internal. This fakes out make_variable_value by
- passing a dummy SHELL_VAR * so it can do proper appending and other
- += processing
- - changes to assign_array_var_from_string to accept and process as if
- they were `standalone' assignment statements array assignment words
- of the form [ind]+=val
-
- 11/7
- ----
-builtins/declare.def
- - added support for `declare [flags] var+=value'. `Flags' are applied
- before the assignment is performed, which has implications for things
- like `-i' -- if -i is supplied, arithmetic evaluation and increment
- will be performed
-
-builtins/setattr.def
- - add support for `+=' assignment for rest of `assignment builtins':
- export, readonly
-
- 11/12
- -----
-lib/readline/display.c
- - make sure prompt_physical_chars and prompt_invis_chars_first_line
- are reset to 0 if the prompt string passed to rl_expand_prompt is
- NULL or empty
-
- 11/14
- -----
-{configure,config.h}.in
- - check for `raise', define HAVE_RAISE if available
-
-lib/intl/dcigettext.c
- - make sure `raise' is defined if HAVE_RAISE is not before
- eval-plurah.h is included
-
-lib/malloc/trace.c
- - put extern declaration for imalloc_fopen inside the MALLOC_TRACE
- #ifdef
-
- 11/16
- -----
-lib/intl/Makefile.in
- - make sure SHELL is defined to cpp
-
-lib/intl/dcigettext.c
- - make sure we use getcwd() even if HAVE_GETCWD is not defined after
- including config.h; if SHELL is defined, #define HAVE_GETCWD
-
- 11/18
- -----
-trap.[ch]
- - new function, int signal_in_progress(int sig), returns TRUE if the
- trap handler for signal SIG is currently executing
-
- 11/19
- -----
-redir.c
- - slightly change do_redirection_internal to set the close-on-exec
- flag for file descriptors > 2 used to save file descriptors < 2
- using explicit redirections (e.g., `exec 3>&1'). This keeps file
- descriptors pointing to pipes from being left open but doesn't
- change the shell's file descriptor semantics
-
- 11/20
- -----
-doc/{bash.1,bashref.texi}
- - correct some minor typos, forwarded from doko@debian.org
-
- 11/22
- -----
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - documented detail that yank-last-arg and yank-nth-arg use the history
- arg expansion code (and, as a result, are subject to restrictions
- of the history-comment character)
-
- 11/23
- -----
-execute_cmd.c
- - changes so that BASH_COMMAND preserves its value into a DEBUG trap:
- for commands, arithmetic for command expressions, select commands,
- case commands, (( commands, [[ commands, simple commands
-
- 11/24
- -----
-doc/{bash.1,bashref.texi}
- - changed description of `set' builtin slightly so that it is clear
- that only variables are displayed in posix mode and that read-only
- variables can't be reset by simply sourcing the output of `set'
-
-lib/sh/strftime.c
- - don't try to redefine `inline' if it's already defined
-
- 11/26
- -----
-execute_cmd.c
- - fix execute_function to check funcname_a after function execution,
- since FUNCNAME can be changed or unset within a function
-
- 11/27
- -----
-builtins/evalfile.c
- - make same changes as 11/26, this time to _evalfile
-
-execute_cmd.c
- - change execute_function to run the return trap after a function
- completes execution even if the shell is compiled without DEBUGGER
- defined
-
-trap.c
- - change reset_or_restore_signal_handlers so that the RETURN trap is
- not inherited by command substitution when DEBUGGER is not defined
-
- 11/30
- -----
-lib/readline/misc.c
- - fix memory leaks in _rl_free_history_entry and rl_maybe_replace_line
- caused by not freeing `timestamp' member of history entry
- - make sure timestamp is initialized to NULL in rl_maybe_save_line
-
- 12/1
- ----
-execute_cmd.c
- - fix execute_function so a function calling `return' will run the
- RETURN trap, if one's defined
-
-doc/{bash.1,bashref.texi}
- - fix description of RETURN trap in various places to indicate that it's
- only inherited by shell functions if function tracing is on globally
- or has been enabled for that function
- - fix documentation to indicate that the DEBUG and RETURN traps are
- inherited under the same conditions
-
-execute_cmd.c
- - a function does not inherit the RETURN trap if a DEBUG trap is
- currently running
-
- 12/2
- ----
-lib/glob/xmbsrtowcs.c
- - change xmbsrtowcs to handle the one case where malloc can fail
- (though it should not matter) -- don't try to free a null pointer
-
- 12/9
- ----
-subst.c
- - fix get_var_and_type to handle var[@], where `var' is a scalar
- variable, identically to var -- all calling expansions can now
- handle var[@] like var. Bug reported by agriffis@gentoo.org
-
- 12/10
- -----
-lib/readline/bind.c
- - make new-style "\M-x" keybindings obey `convert-meta' settings
- (bug reported by twaugh@redhat.com)
-
- 12/14
- -----
-builtins/set.def
- - added description of `-' option to help text
-
-builtins/shopt.def
- - fix bug that caused `gnu_errfmt' to not be compiled in unless
- READLINE is defined
-
- 12/16
- -----
-subst.c
- - fixed a typo in string_extract_verbatim in first call to MBLEN
- (used `slen - 1' instead of `slen - i')
-
- 12/17
- -----
-subst.c
- - avoid some calls to strlen if the value is only being used for
- ADVANCE_CHAR and MB_CUR_MAX == 1 (since ADVANCE_CHAR doesn't need
- it unless multibyte characters are possible)
- - change string_extract_verbatim so it takes the length of the string
- as a parameter, so we don't have to recompute the length of the same
- string over and over again when doing word splitting (that kills if
- it's a long string)
-
- 12/18
- -----
-subst.c
- - in string_list_dollar_star, make sure to null-terminate the
- separator if the character is longer than one byte
-
- 12/22
- -----
-doc/{bash.1,bashref.texi}
- - changed text in quoting section explaining that double quotes do
- not prevent history expansion from taking place, and that backslashes
- escaping ! are not removed
-
- 12/28
- -----
-shell.c
- - set gnu_error_format to 1 if running under emacs. This should allow
- the emacs `next-error' stuff to work, at least for interactive shells
-
-parse.y
- - change yy_stream_get to set interrupt_immediately before calling
- getc_with_restart when the shell is interactive. This avoids the
- synchronization problem caused by the call to QUIT in read_a_line,
- which results in the first character after a SIGINT/^C to be
- dropped
-
- 12/30
- -----
-builtins/mkbuiltins.c
- - changes to write long documentation to arrays as a single string by
- default, rather than an array of strings -- enabled by default
- - new option, -S, to restore old behavior of writing multiple strings
- for long documentation
- - changes to avoid filenames written when the separate-filenames option
- (-H) has been supplied being run through gettext
-
-configure.in
- - new cofiguration option, --enable-single-help-strings (on by default),
- causes help text to be stored as a single string (or smaller set than
- one string per line)
-
-builtins/Makefile.in
- - pass `-S' to mkbuiltins if single-help-strings is turned off
-
-doc/bashref.texi
- - documented new `single-help-strings' configure option
-
- 1/3/2005
- --------
-jobs.c
- - make wait_for return a non-zero status if the job or processed
- waited for is suspended. Returns 128 + stop signal. This fixes
- the problem with `echo one && sleep 5 && echo two' displaying
- `two' after the sleep is suspended
-
- 1/5
- ---
-print_cmd.c
- - change indirection_level_string so the code duplicates the first
- character of $PS4 to indicate the indirection level, rather than
- the first byte
-
- 1/8
- ---
-variables.c
- - new special variable hook function for COMP_WORDBREAKS; sets
- rl_completer_word_break_characters back to NULL when the variable
- is unset
- - change bind_variable_value to understand dynamic variables with
- assign_function set, and handle them correctly. If the variable is
- being appended to, use make_variable_value to create the new
- value
- - change bind_variable_internal to understand dynamic variables with
- assign_function set, and handle them the same way
- - RANDOM and LINENO now get the integer attribute, so appending works
- as expected
- - ditto for HISTCMD, MAILCHECK, OPTIND
-
-lib/readline/display.c
- - change _rl_make_prompt_for_search to set prompt_physical_chars
- appropriately
- - rl_save_prompt and rl_restore_prompt save and restore
- prompt_prefix_length
- - change redraw_prompt to use rl_save_prompt and rl_restore_prompt
- - change rl_restore_prompt to set the `save' variables back to
- NULL/0 so code can check whether or not the prompt has been saved
- - change rl_message and rl_clear_message to save and restore the
- prompt if the caller has not already done it (using a simple
- semaphore-like variable)
- - change rl_message to call expand_prompt, so that local_prompt and
- local_prompt prefix are set before calling the redisplay functions,
- in case the prompt is longer than a screenwidth (fixes bug
- reported to debian by epl@unimelb.edu.au)
-
-lib/readline/doc/rltech.texi
- - make sure to note that rl_save_prompt should be called before
- rl_message, and rl_restore_prompt before rl_clear_message
-
-pcomplete.c
- - make sure to save and restore the parser state around the call to
- execute_shell_function in gen_shell_function_matches. Fixes bug
- reported by a050106.1.keeLae3x@captaincrumb.com (cute)
-
-lib/readline/readline.c
- - fix _rl_dispatch_subseq in the case where we're recursing back up
- the chain (r == -2) and we encounter a key shadowed by a keymap,
- but originally bound to self-insert. Calling rl_dispatch with
- ANYOTHERKEY as the first argument will call rl_insert, but with
- ANYOTHERKEY (256) as the char to insert. Use the shadow keymap
- and set things up to dispatch to rl_insert with the shadowed key
- as the argument. Fixes the bug reported by Thomas Glanzmann
- (sithglan@stud.uni-erlangen.de)
-
- 1/13
- ----
-command.h
- - new word flag: W_HASQUOTEDNULL
-
-make_cmd.c
- - new function to allocate a WORD_DESC * without doing anything with a
- containing string: alloc_word_desc
-
-make_cmd.h
- - extern declaration for alloc_word_desc
-
-dispose_cmd.c
- - new function to just free a WORD_DESC * without freeing the contained
- string: dispose_word_desc
-
-dispose_cmd.h
- - extern declaration for dispose_word_desc
-
-subst.c
- - change some places to use alloc_word_desc
- - make same changes to word_list_quote_removal as were made to
- word_list_split
- - set W_HASQUOTEDNULL when a word is created with w->word[0] ==
- CTLNUL and w->word[1] == '\0'
-
-subst.c
- - parameter_brace_expand_word now returns a WORD_DESC * -- changed
- callers to understand
- - parameter_brace_expand_indir now returns a WORD_DESC * -- changed
- callers to understand
- - parameter_brace_expand_rhs now returns a WORD_DESC * -- changed
- callers to understand
- - remove W_HASQUOTEDNULL from a word's flags when remove_quoted_nulls
- is called on the word's enclosed string
-
- 1/15
- ----
-subst.c
- - param_expand now returns a WORD_DESC * -- changed callers to
- understand
- - parameter_brace_expand now returns a WORD_DESC * -- changed
- callers to understand
- - in expand_word_internal, only call remove_quoted_nulls after a word
- is returned with W_HASQUOTEDNULL
- - changes to pass W_HASQUOTEDNULL flag out of expand_word_internal;
- changed callers to call remove_quoted_nulls only if return value has
- W_HASQUOTEDNULL set. This is a mostly-complete fix for the
- long-standing CTLNUL confusion between a quoted null expansion and
- the expansion of a variable with a literal '\177' in its value
- - change string_list_dollar_at to compute the separator character the
- same way as string_list_dollar_star: using the already-computed
- values generated in setifs()
- - when expanding unquoted $*, if $IFS is empty, check whether or not
- we're eventually going to split the results (e.g., on the rhs of an
- assignment statement) and concatenate the positional parameters as
- if the expansion were within double quotes if we're not going to
- split
-
-tests/iquote.tests
- - test cases based on old bug reports about the quoted-null vs. 0177
- problem the recent code fixes
-
- 1/16
- ----
-dispose_cmd.c
- - set w->word to 0 before putting a WORD_DESC * back in the cache in
- dispose_word_desc; changed callers to delete those assignments
-
-variables.c
- - change assign_random and get_random_value so that the random number
- generator only gets re-seeded once in a subshell environment, and
- assigning a value to RANDOM counts as seeding the generator. This
- makes the sequences a little more predictable
-
- 1/20
- ----
-lib/readline/history.c
- - fix replace_history_entry, remove_history to return NULL if
- passed index is < 0
-
- 1/22
- ----
-lib/sh/netconn.c
- - fix isnetconn() to understand that getpeername can return ENOTCONN
- to indicate that an fd is not a socket
-
-configure.in
- - set BUILD_DIR to contain backslashes to escape any spaces in the
- directory name -- this is what make will accept in targets and
- prerequisites, so it's better than trying to use double quotes
- - set SIZE to the appropriate value if some cross-compiling tool
- chain is being used; `size' by default (can be overridden by
- SIZE environment variable)
-
-Makefile.in
- - use $(SIZE) instead of size; set SIZE from configure
-
- 1/31
- ----
-arrayfunc.c
- - in array_value_internal, return NULL right away if the variable's
- value is NULL, instead of passing a null string to add_string_to_list
-
- 2/1
- ---
-jobs.h
- - new struct to hold stats and counters for child processes and jobs
- - change some uses of global and static variables to use members of
- new struct (struct jobstats)
-
- 2/2
- ---
-
-jobs.[ch]
- - change PRUNNING to PALIVE
- - new define INVALID_JOB
- - new macro get_job_by_jid(ind), currently expands to jobs[ind]
- - new define J_JOBSTATE, operates on a JOB * like JOBSTATE operates on
- a job index
- - new function, reset_job_indices, called from delete_job if
- js.j_lastj or js.j_firstj are removed
- - change various functions to keep counters and stats in struct jobstats
-
-pcomplete.c, builtins/common.c, builtins/{exit,fg_bg,jobs,kill,wait}.def
- - change global variables (e.g., job_slots) to struct members
- (e.g., js.j_jobslots)
- - use INVALID_JOB define where appropriate
- - use get_job_by_jid and J_JOBSTATE where appropriate
-
-trap.c
- - change reset_or_restore_signal_handler to not free the exit trap
- string if the function pointer is reset_signal, which is used when
- the trap strings shouldn't be freed, like in command substitution
-
- 2/4
- ---
-jobs.c
- - new function, realloc_jobs_list, copies jobs array to newly-allocated
- memory shrinking (or growing) size to have next multiple of JOB_SLOTS
- greater than js.j_njobs
- - change compact_jobs_list to just call reap_dead_jobs and then
- realloc_jobs_list, simplifying it considerably
- - discard_pipeline now returns `int': the number of processes freed
- - slightly changed the logic deciding whether or not to call
- compact_jobs_list: now non-interactive shells will compact the
- list if it reaches MAX_JOBS_IN_ARRAY in size
-
-parse.y
- - move test for backslash-newline after pop_string in shell_getc so
- that things like
-
- ((echo 5) \
- (echo 6))
-
- work right
-
- 2/8
- ---
-jobs.h
- - new structs for holding status of exited background processes, as
- POSIX specifies
- - new job flag: J_ASYNC
-
-jobs.c
- - new functions to manipulate struct holding status of exited
- background processes
- - new members in struct jobstats to hold pointer to last created job
- and last created asynchronous job
- - initialize js.c_childmax in initialize_job_control
- - if the `async' arg to stop_pipeline is non-null, set the J_ASYNC
- flag in the job struct
- - set js.j_last_made_job and js.j_last_asynchronous_job in
- stop_pipeline
- - new function: find_last_proc, returns the PROCESS * to the last proc
- in a job's pipeline
- - changed find_last_pid to call find_last_proc
- - change delete_job to call bgp_add on the last proc of the job being
- deleted
- - change delete_all_jobs and wait_for_background_pids to call bgp_clear
-
- 2/9
- ---
-jobs.c
- - change wait_for_single_pid to look for pid in bgpids.list (using
- bgp_search()) if find_pipeline returns NULL
-
- 2/10
- ----
-support/shobj-conf
- - change the solaris-gcc stanza so that it auto-selects the appropriate
- options for ld depending on which `ld' gcc says it's going to run
-
- 2/11
- ----
-jobs.h
- - add support for PS_RECYCLED as a process state, add PRECYCLED macro
- to test it. Change PALIVE and PRUNNING macros to not count processes
- in PS_RECYCLED state
-
-execute_cmd.c
- - restore use of last_pid as sentinel value; use NO_PID as sentinel
- only if RECYCLES_PIDS is defined
-
-jobs.c
- - change find_job to return a pointer to the PROCESS the desired pid
- belongs to, analogous to find_pipeline returning pointer to JOB
- - change find_job callers to add extra argument
- - change running_only arguments to find_pipeline and find_job to
- alive_only, since we don't want recycled pids returned here and it
- better describes the result
- - new function find_process, calls find_pipeline and searches the
- returned pipeline for the PROCESS * describing the desired pid
- - in make_child, if fork() returns the same pid as the value of
- last_asynchronous_pid when RECYCLES_PIDS is defined, avoid pid
- aliasing by resetting last_asynchronous_pid to 1
- - use PRUNNING instead of child->running, since we, for the most
- part, don't want to consider recycled pids (e.g., in make_child())
- - call find_process instead of find_pipeline in waitchld()
- - use PEXITED(p) instead of testing p->running == PS_DONE
- - in make_child, call bgp_delete to remove a just-created pid from the
- last of saved pid statuses
- - in add_process, check whether or not pid being added is already in
- the_pipeline or the jobs list (using find_process) and mark it as
- recycled if so
- - This set of fixes mostly came from Pierre Humblet
- <pierre.humblet@ieee.org> to fix pid aliasing and reuse problems on
- cygwin
-
-variables.c
- - set $_ from the environment if we get it there, set to $0 by
- default if not in env
-
-doc/{bashref.texi,bash.1}
- - a couple of clarifying changes to the description of $_ based on
- comments from Glenn Morris <gmorris+mail@ast.cam.ac.uk>
-
- 2/15
- ----
-shell.c
- - use strstr instead of strmatch when checking whether $EMACS contains
- `term' -- simpler and faster
-
- 2/18
- ----
-builtins/cd.def
- - implement posix requirement that `pwd -P' set $PWD to a directory
- name containing no symlinks
- - add new function, setpwd(), just sets (and changes exported value)
- of PWD
-
-doc/bashref.texi
- - add note to posix mode section about pwd -P setting $PWD
-
-doc{bash.1,bashref.texi}
- - added note that BASH_ARGC and BASH_ARGV are only set in extended
- debug mode
- - expand description of extdebug option to include everything changed
- by extended debug mode
-
- 2/19
- ----
-pathexp.h
- - new flag macro, FNMATCH_IGNCASE, evaluates to FNM_CASEFOLD if the
- match_ignore_case variable is non-zero
-
-execute_cmd.c
- - new variable, match_ignore_case
- - change call to strmatch() in execute_case_command so it includes
- FNMATCH_IGNCASE
-
-test.c
- - change call to strmatch() in patcomp() so that pattern matching
- calls for [[ ... ]] obey the match_ignore_case variable
-
-lib/sh/shmatch.c
- - if match_ignore_case is set, enable REG_ICASE in the regexp match
- flags
-
-builtins/shopt.def
- - new settable option, `nocasematch', controls the match_ignore_case
- variable. Currently alters pattern matching for case and [[ ... ]]
- commands (==, !=, and =~ operators)
-
-doc/{bashref.texi,bash.1}
- - updated descriptions of [[ and case to include reference to
- nocasematch option
-
- 2/22
- ----
-builtins/mkbuiltins.c
- - add `times' to the list of posix special builtins
-
- 2/23
- ----
-builtins/cd.def
- - posix mode no longer turns on effect of -P option on $PWD if a
- directory is chosen from CDPATH
-
-doc/bashref.texi
- - clarified that in posix mode, reserved words are not alias expanded
- only in a reserved word context
- - removed item about cd, $CDPATH, and -P from posix mode section
-
- 2/24
- ----
-builtins/reserved.def
- - minor cleanups to the description of `if'
-
- 3/2
- ---
-subst.c
- - change list_string and get_word_from_string to explicitly treat an
- IFS character that is not space, tab, or newline *and any adjacent
- IFS white space* as a single delimiter, as SUSv3/XPG6 says
-
-builtins/read.def
- - check whether or not the number of fields is exactly the same as
- the number of variables instead of just assigning the rest of the
- line (minus any trailing IFS white space) to the last variable.
- This parses a field and checks whether or not it consumes all of
- the input (including any trailing field delimiters), falling back
- to the previous behavior if it does not. This is what POSIX.2
- specifies, I believe (and the consensus of the austin-group list).
- This requires a few tests in read.tests to be changed: backslashes
- escaping IFS whitespace characters at the end of input cause the
- whitespace characters to be preserved in the value assigned to the
- variable, and the trailing non-whitespace field delimiter issue
-
- 3/7
- ---
-configure.in
- - add -D_POSIX_SOURCE to the LOCAL_CFLAGS for Interix
-
- 3/8
- ---
-bashline.c
- - make bash_directory_expansion a void function, since it doesn't have
- any return value
-
- 3/9
- ---
-builtins/read.def
- - when testing for a pipe, use `fd' instead of hard-coding 0, since we
- can read from other file descriptors now
-
-lib/sh/zread.c
- - in zsyncfd, only set lind and lused to 0 if the lseek succeeds.
- If the lseek fails, we might steal input from other programs, but
- a failed lseek won't cause us to erroneously discard input
-
- 3/11
- ----
-builtins/evalstring.c
- - don't allow parse_and_execute to short-circuit and call exec() if
- the command's return value is being inverted
-
- 3/15
- ----
-builtins/printf.def
- - new macro PC to call putchar and increment number of chars printed -
- fixes bug in computation of value for %n format char
- - `tw' is now a global var so printstr can modify it using PC()
- - convert PF macro to use asprintf into a local buffer
- Preparation for printf -v var
- - add code to add the text printed to a `variable buffer' if -v option
- supplied. The buffer grows as needed
- - printf now takes a `-v var' option to put the output into the variable
- VAR rather than sending it to stdout. It does not:
- print partial output on error (e.g., format string error)
- handle NULs in the variable value, as usual
-
- 3/16
- ----
-parse.y
- - fix bug in prompt string decoding that caused a core dump when PS1
- contained \W and PWD was unset (null pointer deref)
-
-builtins/printf.def
- - changed -v var behavior so it stores partial output into the named
- variable upon an error
-
- 3/24
- ----
-lib/readline/bind.c
- - bool_to_int now takes a `const char *' argument
-
-support/{printenv,recho,zecho}.c
- - include config.h
- - include "bashansi.h" for appropriate extern function declarations
-
-configure.in
- - on MacOS X 10.4, compensate for loader not allowing static library
- to override existing system dynamic library when compiling -dynamic
- (affects readline and history libraries); so use absolute pathname
- instead of -lreadline as library name
-
-lib/glob/{glob,sm_loop,smatch}.c
- - make sure to cast arguments to (char *) or (unsigned char *) as
- appropriate to avoid gcc4 warnings
-
-lib/glob/smatch.c
- - collsym (single-byte version) now takes a (CHAR *) first argument to
- match callers; cast argument to strncmp appropriately
-
-lib/sh/snprintf.c
- - fix ldfallback and dfallback to handle width and precision specs in
- the format passed to sprintf()
- - fix STAR_ARGS macro to deal with negative field widths and precisions
-
- 3/25
- ----
-builtins/printf.def
- - since a negative precision in a "x.x[fFgGeE]" format specifier should
- be allowed but treated as if the precision were missing, let it
- through
-
-lib/sh/snprintf.c
- - fix * code to deal with a negative precision by treating it as if
- the `.' and any digit string in the precision had not been specified
- - fix format parsing code to deal with a negative inline precision,
- e.g., "%4.-4f" by treating it as if the `'. and any digit string in
- the precision had not been specified
- - a `+' in a format specifier should only act as a flag if it comes
- before a `.' (otherwise it is ignored)
-
-lib/readline/vi_mode.c
- - new function, rl_vi_rubout, to rl_rubout as rl_vi_delete is to
- rl_delete; saves deleted text for possible reinsertion as with any
- vi-mode `text modification' command (fixes problem with `X' reported
- by beat.wieland@gmx.ch)
-
-lib/readline/vi_keymap.c
- - bind `X' in vi command mode to rl_vi_rubout
-
-lib/readline/funmap.c
- - add a bindable `vi-rubout' command, runs rl_vi_rubout
-
-lib/readline/text.c
- - rewrote internals of _rl_rubout_char to make structure cleaner
-
-lib/readline/{complete,text}.c
- - changed code to remove #ifdef HANDLE_MULTIBYTE where possible
-
- 3/28
- ----
-lib/readline/examples/rl.c
- - include <sys/stat.h> instead of posixstat.h if READLINE_LIBRARY not
- defined
-
-subst.c
- - fix mbstrlen to treat invalid multibyte sequences as sequences of
- single-byte characters
-
- 4/8
- ---
-configure.in
- - default SIZE to `:' if cross-compiling and an appropriate size for
- the target is not found
-
- 4/11
- ----
-subst.c
- - change match_upattern and match_wpattern to check whether or not the
- supplied pattern matches anywhere in the supplied string, prefixing
- and appending the pattern with `*' if necessary. If it doesn't we
- can short-circuit immediately rather than waste time doing up to
- N-1 unsuccessful calls to strmatch/wcsmatch (which kills for long
- strings, even if the pattern is short)
-
- 4/12
- ----
-configure.in
- - make sure the special case for MacOS X 10.4 only kicks in if the
- `--with-installed-readline' option isn't supplied
-
-lib/readline/{callback,readline,signals}.c
- - make sure rl_prep_term_function and rl_deprep_term_function aren't
- dereferenced if NULL (as the documentation says)
-
-builtins/mkbuiltins.c
- - don't bother with the special HAVE_BCOPY code; just use straight
- assignments
-
-builtins/ulimit.def
- - use _POSIX_PIPE_BUF in pipesize() if it's defined and PIPE_BUF is
- not
-
- 4/13
- ----
-execute_cmd.c
- - add cm_function_def to the list of control structures for which
- child processes are forked when pipes come in or out
-
- 4/14
- ----
-builtins/read.def
- - make sure the ^As added for internal quoting are not counted as
- characters read when -n is supplied
-
- 4/20
- ----
-redir.c
- - fix redir_open so that the repeat open on failure that AFS support
- adds restores the correct value of errno for any error message
-
- 4/26
- ----
-
-Makefile.in
- - make sure mksignames and mksyntax are invoked with the $(EXEEXT)
- extension
-
- 4/28
- ----
-lib/readline/readline.h
- - new state variable: RL_STATE_CALLBACK, means readline is using the
- callback interface
-
-lib/readline/callback.c
- - set RL_STATE_CALLBACK in rl_callback_handler_install, unset in
- rl_callback_handler_remove
-
- 4/29
- ----
-config-top.h
- - DONT_REPORT_SIGPIPE is now on by default, since it apparently
- interferes with scripts
-
-configure.in
- - arrange things so PGRP_PIPE is defined on Linux-2.4+ and version 3
- kernels (ones that apparently schedule children to run before their
- parent)
-
- 4/30
- ----
-builtins/caller.def
- - add call to no_options, so it can handle `--' option
-
-doc/{bash.1,bashref.texi}
- - note explicitly that test, :, true, and false don't understand --
- as meaning the end of options
-
- 5/7
- ---
-support/shobj-conf
- - darwin 8 needs the same LDFLAGS setting as darwin 7
-
-parse.y
- - in save_parser_state, make sure we cast the return value from
- xmalloc() to the right type
- - remove casts to (char *) in calls to yyerror()
-
-lib/readline/signals.c
- - make SIGQUIT and SIGALRM code conditional on their definition
- - use raise() to send a signal if we don't have kill()
-
-lib/readline/display.c
- - some MS-DOS and MINGW changes from the cygwin and mingw folks
-
-config.h.in
- - add HAVE_PWD_H for <pwd.h>
- - add HAVE_FCNTL, HAVE_KILL for respective system calls
- - add HAVE_GETPW{ENT,NAM,UID} for passwd functions
-
-configure.in
- - add check for <pwd.h>
- - add checks for fcntl, kill system calls
- - add checks for getpw{ent,nam,uid} C library functions
- - pass a flag indicating we're cross compiling through to
- CFLAGS_FOR_BUILD in Makefile.in
-
-lib/readline/complete.c
- - guard inclusion of <pwd.h> with HAVE_PWD_H
- - don't provide a missing declaration for getpwent if we don't have it
- - guard calls to {get,end}pwent with HAVE_GETPWENT
-
-lib/readline/shell.c
- - guard inclusion of <pwd.h> with HAVE_PWD_H
- - guard inclusion of <fcntl.h> with HAVE_FCNTL_H
- - don't provide a missing declaration for getpwuid if we don't have it
- - guard calls to getpwuid with HAVE_GETPWUID
- - don't bother with body of sh_unset_nodelay_mode if we don't have
- fcntl
-
-lib/tilde/tilde.c
- - guard inclusion of <pwd.h> with HAVE_PWD_H
- - guard calls to getpw{nam,uid} with HAVE_GETPW{NAM,UID}
- - guard calls to {get,end}pwent with HAVE_GETPWENT
-
-Makefile.in,builtins/Makefile.in
- - @CROSS_COMPILE@ is substituted into CFLAGS_FOR_BUILD (equal to
- -DCROSS_COMPILING if bash is being cross-compiled)
-
- 5/9
- ---
-aclocal.m4
- - print version as `0.0' in RL_LIB_READLINE_VERSION if the
- `rl_gnu_readline_p' variable isn't 1 (accept no imitations)
-
- 5/11
- ----
-lib/readline/rlprivate.h
- - definition of a readline `search context', to be use for incremental
- search initially and other types of search later. Original from
- Bob Rossi as part of work on incremental searching problems when
- using callback interface
-
-lib/readline/isearch.c
- - functions to allocate and free search contexts
- - function to take a search context and a character just read and
- `dispatch' on it: change search parameters, add to search string,
- search further, etc.
- - isearch is now completely context-driven: a search context is
- allocated and passed to the rest of the functions
-
- 5/12
- ----
-lib/readline/isearch.c
- - an additional `isearch cleanup' function that can be called from
- the callback interface functions when the search is to be terminated
- - an additional `isearch callback' function that can be called from
- rl_callback_read_char when input is available
- - short-circuit from rl_search_history after initialization if
- the callback interface is being used
-
-lib/readline/callback.c
- - in rl_callback_read_char(), if RL_STATE_ISEARCH is set, call
- _rl_isearch_callback to read the character and dispatch on it.
- If RL_STATE_ISEARCH is unset when that call returns, and there is
- input pending, call rl_callback_read_char() again so we don't
- have to wait for new input to pick it up
-
-support/shobj-conf,configure.in
- - add support for dragonfly bsd, the same as freebsd
-
- 5/13-5/15
- ---------
-lib/readline/callback.c
- - support for readline functions to `register' a function that will
- be called when more input is available, with a generic data
- structure to encapsulate the arguments and parameters. Primarily
- intended for functions that read a single additional character,
- like quoted-insert
- - support for callback code reading numeric arguments in a loop,
- using readline state and an auxiliary variable
- - support for callback code performing non-incremental searches using
- the same search context struct as the isearch code
-
-lib/readline/{callback,display}.c
- - if a callback function sets `_rl_redisplay_wanted', the redisplay
- function will be called as soon as it returns
-
-lib/readline/input.c
- - changes to _rl_read_mbchar to handle reading the null multibyte
- character and translating it into '\0'
-
-lib/readline/misc.c
- - break rl_digit_loop() into component functions that can be called
- individually from the callback code more easily
- - share some of the functions with rl_digit_loop1() in vi_mode.c
-
-lib/readline/readline.h
- - change the version #defines to reflect readline 5.1
-
-lib/readline/search.c
- - break code into smaller functions that can be composed to work with
- the callback code more easily
-
-lib/readline/text.c
- - in rl_quoted_insert(), don't mess around with the tty signals if
- running in `callback mode'
-
-lib/readline/vi_mode.c
- - changed set-mark, goto-mark, change-char, and char-search to work
- when called by callback functions
-
- 5/17
- ----
-
-lib/readline/rlprivate.h
- - new struct declaration for a `reading key sequence' context
-
-lib/readline/readline.c
- - new variable, _rl_dispatching_keymap, keeps track of which keymap
- we are currently searching
- - functions to allocate and deallocate contexts for reading multi-char
- key sequences
-
- 5/18
- ----
-lib/readline/rlprivate.h
- - new struct defining a context for multiple-key key sequences (the
- base case is escape-prefixed commands)
-
-lib/readline/readline.c
- - change structure of _rl_dispatch_subseq to allow for callback code
- to use it - rudimentary support for supporting the existing
- recursion using a stack of contexts, each with a reference to the
- previous
- - fix so that ^G works when in callback mode
-
-lib/readline/callback.c
- - call the appropriate multiple-key sequence callback if the state is
- set
-
- 5/19
- ----
-lib/readline/readline.c
- - broke code from _readline_internal_char after call to rl_dispatch
- out into separate function: _rl_internal_char_cleanup, callable by
- other parts of the code
- - change _rl_internal_char_cleanup to unset _rl_want_redisplay after
- it calls (*rl_redisplay_func)
-
-lib/readline/callback.c
- - call _rl_internal_char_cleanup from rl_callback_read_char when
- appropriate
-
- 5/24
- ----
-lib/readline/callback.c
- - use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to
- simulate the recursion used to decode multicharacter key sequences
- (even things like ESC- as meta-prefix)
- - call setjmp in rl_callback_read_char to give things like rl_abort
- a place to jump, since the saved location in readline() will not
- be valid
- - keep calling _rl_dispatch_callback from rl_callback_read_char while
- we are still decoding a multi-key key sequence
- - keep calling readline_internal_char from rl_callback_read_char while
- we are reading characters from a macro
-
-lib/readline/macro.c
- - use a slightly different strategy upon encountering the end of a macro
- when using the callback interface: when the last character of a
- macro is read, and we are reading a command, pop the macro off the
- stack immediately so the loop in rl_callback_read_char terminates
- when it should
-
-lib/readline/readline.c
- - if longjmp() is called and we end up at the saved location while
- using the callback interface, just return -- don't go back into a
- blocking read
- - new function to dispose a chain of rl_keyseq_cxts
- - only read new input in _rl_dispatch_callback if the KSEQ_DISPATCHED
- flag is not set in the current keyseq context -- if it is, we are
- traversing the chain back up and should use what we already saved
- - use -3 as a magic value from _rl_dispatch_subseq to indicate that
- we're allocating a new context and moving downward in the chain
- (a special return value for the benefit of _rl_dispatch_callback)
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_keyseq_chain_dispose
-
- 6/1
- ---
-builtins/read.def
- - fixed a bug that occurred when reading a set number of chars and
- the nth char is a backslash (read one too many). Bug reported by
- Chris Morgan <chmorgan@gmail.com>
-
-execute_cmd.c
- - fix execute_builtin so the `unset' builtin also operates on the
- temporary environment in POSIX mode (as well as source and eval),
- so that unsetting variables in the temporary environment doesn't
- leave them set when unset completes. Report by Eric Blake
- <ebb9@byu.net>
-
-array.c
- - fix from William Park for array_rshift when shifting right on an
- empty array -- corrects calculation of array->max_index
-
-builtins/exec.def
- - if an exec fails and the execfail option is set, don't call
- restart_job_control unless the shell is interactive or job_control
- is set
-
-jobs.c
- - add a run-time check for WCONTINUED being defined in header files
- but rejected with EINVAL by waitpid(). Fix from Maciej Rozycki
- <macro@linux-mips.org>
-
- 6/20
- ----
-bashhist.c
- - make sure calls to sv_histchars are protected by #ifdef BANG_HISTORY
- - ditto for calls to history_expand_line_internal
-
- 6/23
- ----
-doc/bashref.texi
- - remove extra blank lines in @menu constructs
-
-variables.c
- - assign export_env to environ (extern char **) every time it changes
- (mostly in add_to_export_env define), so maybe getenv will work on
- systems that don't allow it to be replaced
-
- 6/29
- ----
-bashline.c
- - in bash_directory_completion_hook, be careful about not turning `/'
- into `//' and `//' into `///' for benefit of those systems that treat
- `//' as some sort of `network root'. Fix from Eric Blake
- <ebb9@byu.net>
-
-lib/readline/complete.c
- - in to_print, do the right thing after stripping the trailing slash
- from full_pathname: // doesn't turn into /, and /// doesn't become
- //. Fix from Eric Blake <ebb9@byu.net>
-
- 6/30
- ----
-lib/malloc/trace.c
- - include <unistd.h> if it's available for a definition of size_t
-
-jobs.c
- - in wait_for, if a child process is marked as running but waitpid()
- returns -1/ECHILD (e.g., when the bash process is being traced by
- strace), make sure to increment c_reaped when marking the child as
- dead
- - in without_job_control, make sure to close the pgrp pipe after
- calling start_pipeline
-
- 7/1
- ---
-Makefile.in
- - only remove pathnames.h when the other files created by running
- configure are removed (e.g., Makefile). Fix from William Park
-
-lib/sh/shquote.c
- - since backslash-newline disappears when within double quotes, don't
- add a backslash in front of a newline in sh_double_quote. Problem
- reported by William Park
-
-jobs.c
- - in notify_of_job_status, don't print status messages about
- terminated background processes unless job control is active
-
-bashhist.c
- - new variable, hist_last_line_pushed, set to 0 in really_add_history
- (used by `history -s' code)
-
-bashhist.h
- - new extern declaration for history -s
-
-builtins/history.def
- - don't remove last history entry in push_history if it was added by
- a call to push_history -- use hist_last_line_pushed as a sentinel
- and set it after adding history entry. This allows multiple
- calls to history -s to work right: adding all lines to the history
- rather than deleting all but the last. Bug reported by Matthias
- Schniedermeyer <ms@citd.de>
- - pay attention to hist_last_line_pushed in expand_and_print_history()
- so we don't delete an entry pushed by history -s
-
- 7/4
- ---
-print_cmd.c
- - fix print_arith_for_command to not print so many blanks between
- expressions in ((...))
-
-command.h
- - new word flag: W_DQUOTE. Means word should be treated as if double
- quoted
-
-make_cmd.c
- - add W_DQUOTE to word flags in make_arith_for_expr
-
-parse.y
- - add W_DQUOTE to word flags for (( ... )) arithmetic commands
-
-subst.c
- - don't perform tilde expansion on a word with W_DQUOTE flag set
- - don't perform process substitution on a word with W_DQUOTE flag set
-
-arrayfunc.c
- - expand an array index within [...] the same way as an arithmetic
- expansion between (( ... ))
-
-lib/readline/input.c
- - use getch() instead of read() on mingw
-
-lib/readline/readline.c
- - add a few key bindings for the arrow keys on mingw
-
-lib/readline/rldefs.h
- - if on mingw, define NO_TTY_DRIVER
-
-lib/readline/rltty.c
- - compile in the stub functions for _rl_{disable,restore}_tty_signals
- if on mingw
- - compile in stub function for rl_restart_output on mingw
- - make sure enough functions and macros are defined to compile if
- NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at
- least)
-
- 7/7
- ---
-command.h
- - add a `flags' member to the PATTERN_LIST structure
-
-make_cmd.c
- - intialize the `flags' member of a PATTERN_LIST when it's created
-
-builtins/psize.c
- - protect extern declaration of errno with usual #ifdef errno
-
-configure.in, variables.c
- - changes for QNX 6.x
-
- 7/9
- ---
-parse.y
- - fix parse_matched_pair to handle single and double quoted strings
- inside old-style command substitution (``) since they can each
- quote the ` and embedded $-expansions. Report by Eric Blake
- <ebb9@byu.net>
-
-{configure,Makefile}.in
- - TILDE_LIB is now substituted into Makefile by configure
-
-configure.in
- - if configuring --with-installed-readline on cygwin, set TILDE_LIB
- to the empty string to avoid multiply-defined symbols. Cygwin
- doesn't allow undefined symbols in dynamic libraries. Report by
- Eric Blake <ebb9@byu.net>
-
- 7/11
- ----
-input.c
- - in duplicate_buffered_stream, don't call free_buffered_stream if the
- two buffered streams share the same b_buffer object (e.g., if they
- had already been duplicated with a previous call). Fixes Debian bug
- reported by eero17@bigfoot.com
-
- 7/12
- ----
-shell.c
- - make set_shell_name more resistant to a NULL argument
- - in bind_args, use < instead of != when counting the arguments and
- making the arg list
- - in main(), make sure arg_index is not initialized to a value greater
- than argc
-
- 7/14
- ----
-lib/readline/display.c
- - in expand_prompt, don't set the location of the last invisible
- char if the sequence is zero length (\[\])
-
- 7/15
- ----
-doc/{bash.1,bashref.texi}
- - document that the shell uses $TMPDIR when creating temporary files
-
- 7/20
- ----
-[bash-3.1-alpha1 frozen]
-
- 7/29
- ----
-builtins/evalstring.c
- - make sure that parse_and_execute saves and restores the value of
- loop_level, so loops in sourced scripts and eval'd strings don't
- mess up the shell's parser state
-
-bashline.c
- - change command_subst_completion_function to suppress appending
- any character to a unique completion, instead of a space, unless
- the last word in the quoted command substitution completes to a
- directory name. In that case we append the expected slash
-
- 8/1
- ---
-builtins/printf.def
- - make sure variables are initialized if their values are tested later
-
-[bash-3.1-alpha1 updated and re-frozen]
-
- 8/2
- ---
-variables.c
- - make sure to call stifle_history with an `int' instead of an intmax_t.
- Sometimes it makes a difference
-
- 8/3
- ---
-[bash-3.1-alpha1 released]
-
-support/mksignames.c
- - add `SIGSTKFLT' (RHE3)
- - add `SIGXRES' (Solaris 9)
-
- 8/4
- ---
-builtins/ulimit.def
- - fix typo to make `x' the right option for locks
- - add new options to short help synopsis
-
-variables.c
- - use get_variable_value instead of direct reference to value_cell
- in make_variable_value when appending to the current value, so
- references to array variables without subscripts will be equivalent
- to element 0
-
-lib/readline/text.c
- - rewrote rl_change_case to correctly change the case of multibyte
- characters where appropriate
-
- 8/5
- ---
-configure.in
- - remove call to obsolete macro AC_ACVERSION
- - remove special calls to AC_CYGWIN and AC_MINGW32; AC_CANONICAL_HOST
- takes care of those cases
-
-general.h
- - include `chartypes.h' for definition of ISALPHA
- - fix definitions of ABSPATH and RELPATH for cygwin
- - fix definition of ISDIRSEP for cygwin to allow backslash as a
- directory name separator
-
- 8/9
- ---
-builtins/setattr.def
- - when setting a variable from the temporary environment in
- set_var_attribute (e.g., `LC_ALL=C export LC_ALL'), make sure to
- call stupidly_hack_special_variables after binding the variable in
- the current context
-
-builtins/printf.def
- - make sure to call stupidly_hack_special_variables if using `printf -v'
- to put formatted output in a shell variable
-
- 8/11
- ----
-support/shobj-conf
- - new variable: SHLIB_LIBPREF, prefix for shared library name (defaults
- to `lib'
- - new variable: SHLIB_DLLVERSION, used on Cygwin to set the library
- version number
- - new variable: SHLIB_DOT, separator character between library name and
- suffix and version information (defaults to `.')
- - new stanza for cygwin to generate windows-compatible dll
-
- 8/14
- ----
-variables.c
- - new special variable function for Cygwin, so the export environment
- is remade when HOME is changed. The environment is the only way to
- get information from the shell to cygwin dlls, for instanace, when
- bash is compiled to use an already-installed libreadline
-
-variables.h
- - new extern declaration for sv_home
-
- 8/15
- ----
-lib/readline/display.c
- - call init_line_structures from rl_redisplay if vis_lbreaks == 0
- to avoid consequences of a poorly-timed SIGWINCH
-
- 8/16
- ----
-subst.c
- - fix logic for performing tilde expansion when in posix mode (don't
- rely on W_TILDEEXP flag always being set, because it won't be when
- expanding the RHS of assignment statement). Use W_TILDEEXP only
- when deciding to expand a word marked as W_ASSIGNMENT that doesn't
- precede a command name
-
- 8/17
- ----
-execute_cmd.c
- - in execute_function, when subshell == 1, don't short-cut by using
- the command contained in the group command -- if you do, any
- redirections attached to the group command (function) don't get
- executed
-
-general.h
- - new #define, FS_READABLE, indicates file is readable by current
- user
-
-findcmd.c
- - rewrote file_status to use S_xxx POSIX file mode bits and to add
- support for FS_READABLE (affects ./source and searching $PATH for
- scripts whose names are supplied as arguments on the command line)
- - change find_path_file to look for readable files -- source requires
- it
- - change find_in_path_element to do the right thing when FS_READABLE
- is supplied as a flag
-
-doc/bashref.texi
- - remove note about posix non-compliance in `.': we now require and
- look for readable files when searching $PATH
-
- 8/20
- ----
-subst.c
- - fix setifs to handle case where passed variable is non-zero but
- v->value == 0 (as in an unset local variable); treat IFS as unset
- in this case
-
-jobs.c
- - in kill_pid, if asked to killpg a process or pgrp whose pgrp is
- recorded as the same as the shell's, just call killpg and let the
- chips fall where they may -- there may be other processes in that
- pgrp that are not children of the shell, so killing each process
- in the pipeline will not do a complete job, and killpg'ing each
- such process will send too many signals in the majority of cases
-
-builtins/cd.def
- - in posix mode, pwd needs to check that the value it prints and `.'
- are the same file
-
-builtins/read.def
- - if reading input from stdin in a non-interactive shell and calling
- `read', call sync_buffered_stream to seek backward in the input
- stream if necessary (XXX - should we do this for all shell builtins?)
-
- 8/23
- ----
-builtins/cd.def
- - in posix mode, if canonicalization of the absolute pathname fails
- because the path length exceeds PATH_MAX, but the length of the passed
- (non-absolute) pathname does not, attempt the chdir, just as when
- not in posix mode
-
-builtins/type.def
- - don't have describe_command call sh_makepath if the full path found
- is already an absolute pathname (sh_makepath will stick $PWD onto the
- front of it)
-
- 8/24
- ----
-
-jobs.c
- - in posix mode, don't have start_job print out and indication of
- whether the job started by `bg' is the current or previous job
- - change start_job to return success if a job to be resumed in the
- background is already running. This means that bg won't fail when
- asked to bg a background job, as SUSv3/XPG6 requires
- - new function, init_job_stats, to zero out the global jobstats struct
-
-{jobs,nojobs}.c
- - change kill_pid to handle pids < -1 by killing process groups
-
-jobs.h
- - extern declaration for init_job_stats
-
-lib/readline/history.c
- - check whether or not the history list is null in remove_history
-
-builtins/history.def
- - delete_last_history is no longer static so fc builtin can use it
-
-builtins/fc.def
- - use free_history_entry in fc_replhist instead of freeing struct
- members individually
- - call delete_last_history from fc_replhist instead of using inline
- code
- - if editing (-l not specified), make sure the fc command that caused
- the editing is removed from the history list, as POSIX specifies
-
-builtins/kill.def
- - just call kill_pid with any pid argument and let it handle pids < -1
- This is the only way to let kill_pid know whether a negative pid or
- a job spec was supplied as an argument to kill
-
-builtins/fg_bg.def
- - force fg_bg to return EXECUTION_SUCCESS explicitly if called by bg
- and start_job returns successfully
- - bg now returns success only if all the specified jobs were resumed
- successfully
-
-execute_cmd.c
- - call init_job_stats from initialize_subshell to zero out the global
- job stats structure
-
- 8/25
- ----
-bashline.c
- - change vi_edit_and_execute_command to just call vi when in posix
- mode, instead of checking $FCEDIT and $EDITOR
-
-lib/readline/search.c
- - if in vi_mode, call rl_free_undo_list in make_history_line_current
- to dispose of undo list accumulated while reading the search string
- (if this isn't done, since vi mode leaves the current history
- position at the entry which matched the search, the call to
- rl_revert_line in rl_internal_teardown will mangle the matched
- history entry using a bogus rl_undo_list)
- - call rl_free_undo_list after reading a non-incremental search string
- into rl_line_buffer -- that undo list should be discarded
-
-lib/readline/rlprivate.h
- - add UNDO_LIST * member to search context struct
-
-lib/readline/isearch.c
- - initialize UNDO_LIST *save_undo_list member of search context struct
-
- 8/27
- ----
-lib/readline/bind.c
- - change rl_parse_and_bind to strip whitespace from the end of a
- variable value assignment before calling rl_variable_bind
-
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
- - clarified the language concerning parsing values for boolean
- variables in assignment statements
-
- 8/28
- ----
-lib/sh/pathphys.c
- - fix small memory leak in sh_realpath reported by Eric Blake
-
- 8/31
- ----
-doc/bashref.texi
- - add additional notes to posix mode section
-
- 9/3
- ---
-parse.y
- - if $'...' occurs within a ${...} parameter expansion within
- double quotes, don't single-quote the expanded result -- the double
- quotes will cause it to be expanded incorrectly
-
- 9/4
- ---
-builtins/fc.def
- - if STRICT_POSIX is defined, the posix mode default for the editor to
- use is $FCEDIT, then ed
-
-shell.c
- - if STRICT_POSIX is defined, initialize `posixly_correct' to 1
-
-config.h.in
- - add #undef STRICT_POSIX
-
- 9/5
- ---
-configure.in
- - add new option argument, --enable-strict-posix-default, configures
- bash to be posix-conformant (including defaulting echo to posix
- conformance) by default
-
-builtins/echo.def
- - if STRICT_POSIX is defined, default echo to xpg-style
-
-doc/bashref.texi
- - describe the --enable-strict-posix-default option to configure
-
- 9/10
- ----
-builtins/mkbuiltins.c
- - change to not generate N_(""), because the translated empty string is
- special to GNU gettext
-
- 9/13
- ----
-lib/readline/complete.c
- - a negative value for rl_completion_query_items means to not ask
-
-lib/readline/doc/{{rltech,rluser}.texi,readline.3}
- - documented new semantics for rl_completion_query_items/
- completion-query-items
-
- 9/14
- ----
-bashline.c
- - bind M-TAB in emacs mode to dynamic-complete-history even if the
- current binding is `tab-insert' (which is what it is by default),
- not just if it's unbound
-
- 9/15
- ----
-eval.c
- - call QUIT before calling dispose_command on current_command after
- the `exec_done' label. If we dispose current_command first, the
- longjmp might restore the value of current_command after we've
- disposed it, and the subsequent call to dispose_command from the
- DISCARD case will free memory twice
-
- 9/16
- ----
-lib/sh/strto[iu]max.c
- - make sure the function being declared is not a cpp define before
- defining it -- should fix problems on HP-UX
-
- 9/19
- ----
-Makefile.in
- - make sure the binaries for the tests are at the front of $PATH
-
- 9/22
- ----
-parse.y
- - new flag for parse_matched_pair: P_COMMAND, indicating that the
- text being parsed is a command (`...`, $(...))
- - change calls to parse_matched_pair to include P_COMMAND where
- appropriate
- - if P_COMMAND flag is set and the text is unquoted, check for comments
- and don't try to parse embedded quoted strings if in a comment (still
- not exactly right yet)
-
- 9/24
- ----
-builtins/history.def
- - if running history -n, don't count these new lines as history lines
- for the current session if the `histappend' shell option is set.
- If we're just appending to the history file, the issue that caused
- history_lines_this_session to be recalculated doesn't apply -- the
- history file won't be missing any entries
-
-lib/readline/isearch.c
- - fix C-w handler for isearch string reader to handle multibyte chars
-
-lib/readline/rlmbutil.h
- - new defines for _rl_to_wupper and _rl_to_wlower
-
-lib/readline/text.c
- - use _rl_to_wupper and _rl_to_wlower as appropriate
-
- 9/26
- ----
-execute_cmd.c
- - in shell_execve, if the exec fails due to E2BIG or ENOMEM, just print
- the appropriate error message instead of checking out any interpreter
- specified with #!
-
- 9/30
- ----
-bashhist.c
- - make $HISTCMD available anytime remember_on_history is non-zero,
- which indicates that we're saving commands to the history, and
- let it evaluate to 1 if we're not
-
- 10/4
- ----
-lib/sh/snprintf.c
- - in floating(), make sure d != 0 before calling chkinfnan -- gcc on the
- version of Solaris 9 I have translates 0 to -inf on the call
-
-[bash-3.1-beta1 frozen]
-
- 10/6
- ----
-jobs.c
- - set the_pipeline to NULL right away in cleanup_the_pipeline, and
- dispose a copy of the pointer so we don't mess with the_pipeline
- while we're in the process of destroying it
- - block and unblock SIGCHLD around manipulating the_pipeline in
- cleanup_the_pipeline
-
- 10/7
- ----
-[bash-3.1-beta1 released]
-
-lib/readline/isearch.c
- - when switching directions, make sure we turn off the SF_REVERSE
- flag in the search context's flags word if we're going from reverse
- to forward i-search
-
-lib/readline/bind.c
- - new function, rl_variable_value, returns a string representing a
- bindable readline variable's value
- - new auxiliary function, _rl_get_string_variable_value, encapsulates
- everything needed to get a bindable string variable's value
- - rewrote rl_variable_dumper to use _rl_get_string_variable_value
-
-lib/readline/readline.h
- - new extern declaration for rl_variable_value
-
-lib/readline/doc/rltech.texi
- - documented rl_variable_value
-
-bashline.c
- - in command_word_completion_function, if readline sets
- rl_completion_found_quote, but doesn't set rl_completion_quote_character,
- we have an embedded quoted string or backslash-escaped character in
- the passed text. We need to dequote that before calling
- filename_completion_function. So far, this is in place only for
- absolute program names (those containing a `/')
- - in command_word_completion_function, use rl_variable_value to decide
- whether or not we should ignore case, and use strncasecmp instead of
- strncmp where appropriate
-
- 10/11
- -----
-builtins/fc.def
- - fixed a typo when using POSIX_FC_EDIT_COMMAND
-
-redir.h
- - new flag values for redirections: RX_INTERNAL and RX_USER (currently
- unused)
-
-redir.c
- - add_undo_redirect and add_undo_close_redirect now set RX_INTERNAL
- flag when making new redirects
- - in do_redirection_internal, only set file descriptors > 2 to CLEXEC
- if they're marked as RX_INTERNAL
-
- 10/12
- -----
-jobs.c
- - in wait_for_single_pid, if in posix mode, remove the waited-for pid
- from the list of background pids, forgetting it entirely. POSIX
- conformance tests test for this.
-
-lib/readline/{readline.h,vi_mode.c}
- - new state flag, RL_STATE_VICMDONCE, set after entering vi command
- mode the first time; reset on each call to readline()
-
- 10/13
- -----
-lib/readline/undo.c
- - in rl_revert_line, make sure that revert-line in vi mode leaves
- rl_point set to 0 no matter the state of the line buffer
-
-lib/readline/vi_mode.c
- - when entering vi_command mode for the first time, free any existing
- undo list so the previous insertions won't be undone by the `U'
- command. This is how POSIX.2 says `U' should work (and the test
- suite tests for it)
-
-lib/readline/bind.c
- - change rl_parse_and_bind so only `set' commands involving boolean
- readline variables have trailing whitespace stripped from the value
- string
-
- 10/16
- -----
-lib/glob/sm_loop.c
- - fix patscan() to correctly scan backslash-escaped characters
-
- 10/18
- -----
-lib/sh/{winsize.c,Makefile.in},{jobs,nojobs}.c,Makefile.in,externs.h
- - moved get_new_window_size from jobs.c/nojobs.c to new file,
- lib/sh/winsize.c, made function global
-
-{jobs,nojobs,sig}.c,{jobs,sig}.h
- - moved SIGWINCH handling code to sig.c rather than duplicate it in
- jobs.c and nojobs.c
- - call set_sigwinch_handler from sig.c code rather than job control
- signal initialization
-
-sig.[ch]
- - new variable, sigwinch_received, acts like interrupt_state for
- SIGWINCH, set by sigwinch_sighandler. sigwinch_sighandler no longer
- calls get_new_window_size
-
-parse.y
- - add call to get_new_window_size if sigwinch_received at top of
- shell_getc
-
- 10/19
- -----
-lib/malloc/malloc.c
- - to avoid orphaning memory on free if the right bucket is busy, use a
- new function xplit(mem, bucket) to split the block into two or more
- smaller ones and add those to the right bucket (appropriately marking
- it as busy)
- - audit bsplit(), bcoalesce(), and xsplit() for proper use of busy[],
- since they're dealing with two separate buckets
-
- 10/22
- -----
-subst.c
- - new flag for string_extract: EX_REQMATCH, means to return an error
- if a matching/closing character is not found before EOS
- - new static flag variables: extract_string_error and extract_string_fatal
- - change expand_word_internal to check for new error returns from
- string_extract and return errors if appropriate
-
- 10/23
- -----
-builtins/cd.def
- - make sure we free TDIR in change_to_directory after calling
- set_working_directory (which allocates new memory) and other places
- we short-circuit and return
-
- 10/24
- -----
-subst.c
- - modified fix from 10/22 to allow bare ` to pass through (for
- some backwards compatibility and more correctness)
-
- 10/27
- -----
-conftypes.h
- - make MacOS X use the RHAPSODY code that gets HOSTTYPE, et al.
- at build rather than configure time, to support universal binaries
- (fix from llattanzi@apple.com)
-
- 10/30
- -----
-builtins/evalstring.c
- - make sure we don't turn on CMD_NO_FORK in parse_and_execute if
- we're running a trap command on signal receipt or exit
-
-execute_cmd.c
- - in shell_execve, improve the error message a little bit if the
- interpreter name in a #! exec header ends with a ^M (as in a DOS-
- format file)
-
- 11/1
- ----
-lib/readline/vi_mode.c
- - fix vi-mode `r' command to leave the cursor in the right place
-
-[bash-3.1-rc1 frozen]
-
- 11/5
- ----
-execute_cmd.c
- - make sure a DEBUG trap doesn't overwrite a command string passed to
- make_child in execute_simple_command
-
-bashline.c
- - rearrange some code in bash_quote_filename so filenames with leading
- tildes containing spaces aren't tilde-expanded before being
- returned to the caller
-
- 11/6
- ----
-lib/readline/display.c
- - when deciding where to move the cursor in rl_redisplay and needing
- to move the cursor back after moving it vertically and compensate
- for invisible characters in the prompt string, make sure that
- _rl_last_c_pos is treated as an absolute cursor position in a
- multibyte locale and the wrap offset (number of invisible characters)
- is added explicitly when deciding how many characters to backspace
-
- 11/10
- -----
-lib/readline/terminal.c
- - _rl_set_screen_size now interprets a lines or columns argument < 0
- as an indication not to change the current value
-
- 11/11
- -----
-
-lib/readline/terminal.c
- - new function, rl_reset_screen_size, calls _rl_get_screen_size to
- reset readline's idea of the terminal size
- - don't call _rl_get_screen_size in _rl_init_terminal_io if both
- _rl_screenheight and _rl_screenwidth are > 0
- - don't initialize _rl_screenheight and _rl_screenwidth to 0 in
- _rl_init_terminal_io; let caller take care of it
- - set _rl_screenheight and _rl_screenwidth to 0 before calling
- _rl_init_terminal_io
-
-lib/readline/readline.h
- - new extern declaration for rl_reset_screen_size
-
-lib/readline/doc/rltech.texi
- - documented rl_reset_screen_size
-
-variables.c
- - if readline is being used, compile in a special var function for
- assignments to LINES and COLUMNS that calls rl_set_screen_size or
- rl_reset_screen_size as appropriate. Only do this in posix mode
- and only when STRICT_POSIX is defined at compile time
- - new semaphore variable, winsize_assignment, set while doing an
- assignment to LINES or COLUMNS
- - new variable, winsize_assigned, says LINES or COLUMNS was assigned
- to or found in the environment
- - if in the middle of an assignment to LINES or COLUMNS, make
- sh_set_lines_and_columns a no-op
-
-lib/sh/winsize.c
- - get_new_window_size now takes two int * arguments, to return the
- screen dimensions
-
-externs.h
- - change extern declaration for get_new_window_size
-
-{jobs,nojobs}.c, parse.y
- - change callers of get_new_window_size
-
- 11/12
- -----
-lib/readline/terminal.c
- - new variable, rl_prefer_env_winsize, gives LINES and COLUMNS
- precedence over values from the kernel when computing window size
-
-lib/readline/readline.h
- - extern declaration for rl_prefer_env_winsize
-
-lib/readline/doc/rltech.texi
- - document rl_prefer_env_winsize
-
- 11/13
- -----
-lib/readline/rltty.c
- - change rl_prep_terminal to make sure we set and reset the tty
- special characters in the vi insertion keymap if in vi mode. This
- matters if we get accept-line for the previous line while in vi
- command mode
-
- 11/14
- -----
-builtins/pushd.def
- - make sure any call to cd_builtin includes a leading `--' from the
- argument list (or constructs one)
-
- 11/16
- -----
-pcomplete.c
- - fix small memory leak in gen_wordlist_matches
-
-[bash-3.1-rc2 frozen]
-
- 11/21
- -----
-[bash-3.1-rc2 released]
-
- 11/23
- -----
-lib/readline/display.c
- - changes to rl_redisplay to compensate for update_line updating
- _rl_last_c_pos without taking invisible characters in the line into
- account. Important in multibyte locales where _rl_last_c_pos is an
- absolute cursor position
- - changes to _rl_move_cursor_relative to account for _rl_last_c_pos
- being an absolute cursor position in a multibyte character locale
- - rewrote _rl_move_cursor_relative to make it a little simpler
-
- 11/29
- -----
-lib/readline/display.c
- - changes to rl_redisplay and update_line for update_line to communicate
- upward that it took the number of invisible characters on the current
- line into account when modifying _rl_last_c_pos
- - in update_line, adjust _rl_last_c_pos by wrap_offset before calling
- _rl_move_cursor_relative, so we pass correct information about the
- true cursor position
-
- 12/1
- ----
-configure.in
- - changed release status to `release'
-
-[bash-3.1 frozen]
-
- 12/8
- ----
-[bash-3.1 released]
-
- 12/9
- ----
-doc/{bash.1,version.texi},lib/readline/doc/version.texi
- - remove `beta1' from man page footer and texinfo documents
-
-variables.c
- - make sure winsize_assignment is protected by #ifdef READLINE, so
- minimal shell will compile
-
-builtins/read.def
- - make sure error cases free memory and run any unwind-protects to
- avoid memory leaks
-
- 12/10
- -----
-execute_cmd.c
- - change execute_command_internal to set $PIPESTATUS for ((...)) and
- [[ ... ]] commands
-
-doc/{bash.1,bashref.texi,version.texi}
- - add documentation for ulimit -[iqx] and bump revision date
-
- 12/12
- -----
-parse.y
- - make sure parse_compound_assignment saves and restores the
- PST_ASSIGNOK parser state flag around its calls to read_token.
- Fixes bug reported by Mike Frysinger
-
- 12/13
- -----
-parse.y
- - change parse_compound_assignment to save and restore the value of
- last_read_token. Not sure why it was set unconditionally in the
- first place after parsing the complete compound assignment
-
- 12/14
- -----
-lib/readline/text.c
- - don't use return value of rl_kill_text (which always succeeds and
- returns the number of characters killed) in rl_delete as an indication
- of success or failure
- - ditto for return value of rl_delete_text
-
-lib/readline/readline.c
- - don't return the value of the called readline function as the return
- value from _rl_dispatch_subseq; -1 means something different to the
- callers (return 0 all the time to indicate that a readline function
- was found and dispatched). Fix from Andreas Schwab for <DEL><DEL>
- bug in callback interface first reported by Mike Frysinger
-
-execute_cmd.c
- - fixed a typo in execute_case_command
-
- 12/15
- -----
-aclocal.m4
- - add check for wctype() to BASH_CHECK_MULTIBYTE, define HAVE_WCTYPE
-
-config.h.in
- - add HAVE_WCTYPE #define
-
-config-bot.h
- - add HAVE_WCTYPE to the set of checks for HANDLE_MULTIBYTE. This
- should catch the deficient NetBSD multibyte support
-
- 12/16
- -----
-parse.y
- - use CTLESC instead of literal '\001' when decode_prompt_string
- prefixes RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE
-
- 12/20
- -----
-lib/readline/display.c
- - don't treat RL_PROMPT_START_IGNORE specially inside a sequence of
- ignored characters
- - keep track of the start of the current sequence of ignored
- characters; make sure that an empty sequence of such characters
- really is an empty sequence, not one that happens to end with '\001'
- (RL_PROMPT_START_IGNORE)
-
- 12/21
- -----
-subst.c
- - change expand_word_internal to process rest of `tilde-word' as a
- regular part of the word if tilde expansion leaves the tilde-word
- unchanged. This means that ~$USER expands to ~chet, which seems
- more intuitive, and is effectively what bash-3.0 did
-
- 12/23
- -----
-subst.c
- - when making a local array variable in do_compound_assignment, make
- sure that we don't use a variable of the same name from a previous
- context
-
-doc/bash.1
- - documented expansions for word and patterns in case statement
-
-builtins/ulimit.def,doc/{bashref.texi,bash.1}
- - added new -e and -r (nice and rtprio) options to ulimit; documented
- them
-
- 12/26
- -----
-variables.c
- - use `hmax' instead of `num' in sv_histsize to avoid integer overflow
- problems with intmax_t
-
-builtins/read.def
- - add unwind-protect to restore rl_attempted_completion_function in
- case of a timeout
-
-{bashline,variables}.c
- - move initialization of HISTSIZE from initialization path to
- load_history, so it can be overridden by a value assigned in a
- startup file
-
-lib/readline/misc.c
- - add a missing `return r' so that rl_digit_loop returns a meaningful
- value
-
-lib/readline/{bind,callback,display,isearch,rltty,search,text,vi_mode}.c
- - minor cleanups to satisfy compiler warnings, mostly removing unused
- variables
-
- 12/27
- -----
-support/Makefile.in
- - add LIBS_FOR_BUILD support; defaults to ${LIBS}
-
-Makefile.in
- - add LIBS_FOR_BUILD with no default value; use when linking programs
- using CC_FOR_BUILD (e.g., bashversion)
-
- 12/28
- -----
-lib/readline/bind.c
- - fix rl_translate_keyseq bad translation of \M-\C-x sequences
-
-execute_cmd.c
- - in execute_arith_command, if the expression expands to more than one
- word, make sure we join the words into a single string and pass the
- entire thing to evalexp()
-
-expr.c
- - new functions: _is_arithop(c), returns true if C is a valid single-
- character arithmetic operator; _is_multiop(c), returns true if C is
- a token corresponding to a valid multi-character arithmetic operator
- - if we encounter a character that isn't a valid arithmetic
- operator, throw an error. Try to be intelligent about what type of
- error message to print
-
-subst.c
- - new function, expand_arith_string, calls expand_string_if_necessary;
- used where an arithmetic expression needs to be expanded
-
-subst.h
- - new extern declaration for expand_arith_string
-
-arrayfunc.c
- - in array_expand_index, call expand_arith_string to expand the
- subscript in a fashion consistent with other arithmetic expressions
-
-subst.c
- - fix parameter_brace_patsub so that we don't try to anchor the pattern
- at the beginning or end of the string if we're doing global
- replacement -- that combination doesn't doesn't make sense, and
- the changed behavior is compatible with ksh93
-
-doc/{bash.1,bashref.texi}
- - changed description of pattern substitution to match the new
- semantics
-
-tests/new-exp.tests
- - change tests to remove all ${pat//#rep} and ${pat//%rep}
- expansions, since they don't mean the same thing anymore
-
- 12/29
- -----
-support/signames.c
- - new file, initialize_signames() function from old mksignames.c. This
- file builds the signal_names array
-
-support/mksignames.c
- - strip out initialize_signames(), move to signames.c. This file only
- writes signames.h
- - set up to only write a stub signames.h if CROSS_COMPILING is defined,
- with extern declaration for initialize_signames
- - if not cross compiling, #define initialize_signames to nothing
-
-Makefile.in
- - mksignames is now linked from mksignames.o and buildsignames.o
- - add rules to build signames.o, assuming we're building it as part
- of the shell (cross-compiling)
-
-trap.c
- - call initialize_signames from initialize_traps
-
-configure.in
- - set SIGNAMES_O to nothing (normal) or signames.o (cross-compiling),
- substitute into Makefile
- - don't set SIGNAMES_H if cross-compiling any more
-
- 12/30
- -----
-command.h
- - new word flag: W_NOPROCSUB, inhibits process substitution on a word
-
-subst.c
- - change expand_word_internal to suppress process substitution if the
- word has the W_NOPROCSUB flag
-
-shell.c
- - --wordexp turns on W_NOPROCSUB in addition to W_NOCOMSUB
-
-subst.c
- - change string_list_dollar_at and string_list_dollar_star so that
- MB_CUR_MAX is used to size an array only when using gcc, since gcc
- can handle non-constant array sizes using a mechanism like alloca.
- Other compilers, e.g. Sun's compiler, do not implement that
- extension
-
- 12/31
- -----
-builtins/mkbuiltins.c
- - when cross-compiling, don't include <config.h>, since it's for the
- target rather than the host system. Instead, choose a reasonable
- set of default #defines based on a minimal POSIX system
-
-jobs.c
- - change find_process to handle a NULL return value from find_pipeline
- - return immediately from delete_job if jobs[index] is already NULL or
- if it has a null pipeline associated with it
- - in delete_job, if find_last_proc returns NULL, don't try to call
- bgp_delete
-
- 1/7/2006
- --------
-doc/bash.1
- - patch from Tim Waugh to replace some literal single quotes with
- \(aq, the groff special character for it
-
-jobs.c
- - in realloc_jobs_list, make sure to zero out slots after j_lastj
- in the new list
-
- 1/9
- ---
-support/mksignames.c
- - make sure to include <signal.h> to get right value of NSIG from
- (usually) <sys/signal.h>
-
- 1/10
- ----
-parse.y
- - when calling parse_matched_pair on a $(...) command substitution,
- don't pass the P_DQUOTE flag so that single quotes don't get
- stripped from $'...' inside the command substitution. Bug report
- and fix from Mike Stroyan <mike.stroyan@hp.com>
-
-jobs.c
- - start maintaining true count of living children in js.c_living
- - call reset_current in realloc_jobs_list, since old values for current
- and previous job are most likely incorrect
- - don't allocate a new list in realloc_jobs_list if the old size and
- new size are the same; just compact the existing list
- - make sure realloc_jobs_list updates value of js.j_njobs
- - add some more itrace messages about non-null jobs after j_lastj in
- jobs array
-
- 1/11
- ----
-bashjmp.h
- - new value for second argument to longjmp: SIGEXIT. Reserved for
- future use
-
- 1/12
- ----
-jobs.c
- - add logic to make_child to figure out when pids wrap around
- - turn second argument to delete_job into flags word, added flag to
- prevent adding proc to bgpids list
-
- 1/13
- ----
-lib/readline/vi_mode.c
- - move code that moves forward a character out of rl_vi_append_mode
- into a separate function, _rl_vi_append_forward
- - change _rl_vi_append_mode to save `a' as the last command, so it
- can be redone properly
- - new function _rl_vi_backup, moves point back a character taking
- multibyte locales into account
- - change rl_vi_redo to handle redoing an `a' command specially --
- it should be redone like `i' but after moving forward a character
- - change rl_vi_redo to use _rl_vi_backup to move point backward
- after redoing `i' or `a'
-
-jobs.c
- - new function, delete_old_job (pid), checks whether or not PID is in
- a job in the jobs list. If so, and the job is dead, it just removes
- the job from the list. If so, and the job is not dead, it zeros
- the pid in the appropriate PROCESS so pid aliasing doesn't occur
- - make_child calls delete_old_job to potentially remove an already-used
- instance of the pid just forked from the jobs list if pids have
- wrapped around. Finally fixes the bug reported by Tim Waugh
- <twaugh@redhat.com>
-
-trap.c
- - new define, GETORIGSIG(sig), gets the original handling for SIG and
- sets SIG_HARD_IGNORE if that handler is SIG_IGN
- - call GETORIGSIG from initialize_traps, get_original_signal, and
- set_signal
-
-jobs.c
- - in wait_for, if the original SIGINT handler is SIG_IGN, don't set
- the handler to wait_sigint_handler. This keeps scripts started in
- the background (and ignoring SIGINT) from dying due to SIGINT while
- they're waiting for a child to exit. Bug reported by Ingemar
- Nilsson <init@kth.se>
-
-lib/readline/vi_mode.c
- - don't save text to buffer unless undo pointer points to a record of
- type UNDO_INSERT; zero it out instead. This fixes bug reported by
- Craig Turner <craig@synect.com> with redoing `ctd[ESC]' (empty
- insert after change to)
-
-shell.c
- - change set_shell_name so invocations like "-/bin/bash" are marked as
- login shells
-
-doc/bash.1
- - add note about destroying functions with `unset -f' to the section
- on shell functions
-
-lib/readline/terminal.c
- - if readline hasn't been initialized (_rl_term_autowrap == -1, the
- value it's now initialized with), call _rl_init_terminal_io from
- _rl_set_screen_size before deciding whether or not to decrement
- _rl_screenwidth. Fixes bug from Mike Frysinger <vapier@gentoo.org>
-
- 1/14
- ----
-lib/readline/input.c
- - allow rl_set_keyboard_input_timeout to set the timeout to 0, for
- applications that want to use select() like a poll without any
- waiting
-
-lib/readline/doc/rltech.texi
- - documented valid values for timeout in rl_set_keyboard_input_timeout
-
-jobs.c
- - in stop_pipeline, don't have the parent shell call give_terminal_to
- if subshell_environment contains SUBSHELL_ASYNC (no background
- process should ever give the terminal to anything other than
- shell_pgrp)
- - in make_child, don't give the terminal away if subshell_environment
- contains SUBSHELL_ASYNC
-
- 1/15
- ----
-subst.c
- - in parameter_brace_expand, if extracting ${#varname}, only allow
- `}' to end the expansion, since none of the other expansions are
- valid. Fixes Debian bug reported by Jan Nordhorlz <jckn@gmx.net>
-
- 1/17
- ----
-parse.y
- - in parse_matched_pair, protect all character tests with the MBTEST
- macro
- - in parse_dparen, take out extra make_word after call to alloc_word_desc
- (mem leak)
-
- 1/18
- ----
-parse.y
- - in parse_matched_pair, add P_ALLOWESC to flags passed to recursive
- parse_matched_pair call when encountering a single or double quote
- inside a ``-style command substitution
-
-execute_cmd.c
- - add call to QUIT at beginning of execute_command_internal; better
- responsiveness to SIGINT
-
- 1/21
- ----
-lib/readline/bind.c
- - change rl_invoking_keyseqs_in_map to honor the setting of
- convert-meta when listing key bindings, since if convert-meta is off,
- using '\M-' as the prefix for bindings in, for instance,
- emacs-escape-keymap, is wrong. This affects `bind -p' output
- - change rl_untranslate_keyseq to add '\e' instead of '\C-[' for
- ESC
-
-execute_cmd.c
- - add call to QUIT at end of execute_command
-
- 1/23
- ----
-lib/readline/display.c
- - changed two places in update_line where a check of whether the cursor
- is before the last invisible character in the prompt string to
- differentiate between the multibyte character case (where
- _rl_last_c_pos is a physical cursor position) and the single-byte
- case (where it is a buffer index). This prevents many unnecessary
- \r-redraw the line sequences. Reported by Dan Jacobson.
-
- 1/24
- ----
-quit.h
- - wrap QUIT macro in do...while(0) like other compound statement
- macros
- - CHECK_TERMSIG define (placeholder for now); future use will be to
- handle any received signals that should cause the shell to
- terminate (e.g., SIGHUP)
-
-{input,jobs,nojobs}.c
- - add calls to CHECK_TERMSIG where appropriate (reading input and
- waiting for children)
- - include quit.h if necessary
-
- 1/25
- ----
-parse.y
- - undo change that makes `)' in a compound assignment delimit a token.
- It messes up arithmetic expressions in assignments to `let', among
- other things
-
-sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def
- - rename termination_unwind_protect to termsig_sighandler
-
-sig.c
- - split termsig_sighandler into two functions: termsig_sighandler, which
- runs as a signal handler and sets a flag noting that a terminating
- signal was received, and termsig_handler, which runs when it is `safe'
- to handle the signal and exit
- - new terminate_immediately variable, similar to interrupt_immediately
- - termsig_sighandler calls termsig_handler immediately if
- terminate_immediately is non-zero
-
-quit.h
- - change CHECK_TERMSIG macro to check terminating_signal and call
- termsig_handler if it's non-zero
- - add same check of terminating_signal and call to termsig_handler to
- QUIT macro
-
-{jobs,nojobs}.c
- - change call to termsig_sighandler to call termsig_handler directly,
- as was intended
-
-parse.y,builtins/read.def
- - set terminate_immediately to non-zero value when reading interactive
- input, as is done with interrupt_immediately
-
- 1/26
- ----
-doc/{bash.1,bashref.texi}
- - reworded the POSIX standard references to remove mention of POSIX.2
- or 1003.2 -- it's all the 1003.1 standard now. Recommended by
- Arnold Robbins
-
- 1/27
- ----
-lib/readline/complete.c
- - move call to filename dequoting function into
- rl_filename_completion_function; call only if directory completion
- hook isn't set. This means that directory-completion-hook now needs
- to dequote the directory name. We don't want to dequote the directory
- name before calling the directory-completion-hook. Bug reported by
- Andrew Parker <andrewparker@bigfoot.com>
-
-bashline.c
- - add necessary directory name dequoting to bash_directory_expansion
- and bash_directory_completion_hook
-
-lib/readline/doc/rltech.texi
- - add note to description of rl_directory_completion_hook that it
- needs to dequote the directory name even if no other expansions are
- performed
-
- 1/28
- ----
-braces.c
- - make sure that we skip over braces that don't start a valid matched
- brace expansion construct in brace_expand -- there might be a valid
- brace expansion after the unmatched `{' later in the string
- - brace_gobbler now checks that when looking for a `}' to end a brace
- expansion word, there is an unquoted `,' or `..' that's not inside
- another pair of braces. Fixes the a{b{c,d}e}f problem reported by
- Tim Waugh
-
-builtins/declare.def
- - when not in posix mode, and operating on shell functions, typeset
- and declare do not require their variable operands to be valid
- shell identifiers. The other `attribute' builtins work this way.
- Fixes inconsistency reported by Mike Frysinger <vapier@gentoo.org>
-
-{configure,config.h}.in
- - add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID
- as appropriate
- - add test for eaccess, define HAVE_EACCESS if found
-
-lib/sh/eaccess.c
- - new file, with sh_stat and sh_eaccess functions, moved from test.c
- - renamed old sh_eaccess as sh_stataccess, since it uses the stat(2)
- information to determine file accessibility
- - new function, sh_euidaccess, to call when uid != euid or gid != egid;
- temporarily swaps uid/euid and gid/egid around call to access
- - rewrote sh_eaccess to call eaccess, access, sh_euidaccess or
- sh_stataccess as appropriate. access(2) will take into account
- things like ACLs, read-only file systems, file flags, and so on.
-
-lib/sh/Makefile.in,Makefile.in
- - add necessary entries for eaccess.[co]
-
-test.c
- - change calls to test_stat to call sh_stat
-
-{test,general}.c
- - change calls to test_eaccess to call sh_eaccess
-
-externs.h
- - new extern declaration for sh_eaccess
-
-test.[ch]
- - remove test_stat and test_eaccess
-
- 1/29
- ----
-braces.c
- - make change from 1/28 dependant on CSH_BRACE_COMPAT not being
- defined (since old bash behavior is what csh does, defining
- CSH_BRACE_COMPAT will produce old bash behavior)
-
- 1/30
- ----
-bashline.c
- - last argument of bash_default_completion is now a flags word:
- DEFCOMP_CMDPOS (in command position) is only current value
- - attempt_shell_completion now computes flags before calling
- bash_default_completion
- - if no_empty_command_completion is set, bash does not attempt command
- word completion even if not at the beginning of the line, as long
- as the word to be completed is empty and start == end (catches
- beginning of line and all whitespace preceding point)
-
- 2/4
- ---
-lib/readline/display.c
- - change _rl_make_prompt_for_search to use rl_prompt and append the
- search character to it, so the call to expand_prompt in rl_message
- will process the non-printing characters correctly. Bug reported
- by Mike Stroyan <mike.stroyan@hp.com>
-
- 2/5
- ---
-lib/readline/display.c
- - fix off-by-one error when comparing against PROMPT_ENDING_INDEX,
- which caused a prompt with invisible characters to be redrawn one
- extra time in a multibyte locale. Change from <= to < fixes
- multibyte locale, but I added 1 to single-byte definition of
- PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported
- by Egmont Koblinger <egmont@uhulinux.hu>
-
- 2/8
- ---
-lib/readline/terminal.c
- - call _emx_get_screensize with wr, wc like ioctl code for consistency
- - new function, _win_get_screensize, gets screen dimensions using
- standard Windows API for mingw32 (code from Denis Pilat)
- - call _win_get_screensize from _rl_get_screen_size on mingw32
-
-lib/readline/rlconf.h
- - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc
- filename
-
-support/shobj-conf
- - changes to make loadable builtins work on MacOS X 10.[34]
-
-builtins/pushd.def
- - changes to make it work as a loadable builtin compiled with gcc4
-
- 2/9
- ---
-lib/readline/bind.c
- - add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not
- exist or can't be read) in rl_read_init_file
-
-lib/readline/doc/rluser.texi
- - add description of /etc/inputrc as ultimate default startup file
-
- 2/10
- ----
-lib/readline/bind.c
- - fix problem with rl_function_of_keyseq that returns a non-keymap
- bound to a portion of the passed key sequence without processing
- the entire thing. We can bind maps with existing non-map
- functions using the ANYOTHERKEY binding code.
-
-variables.c
- - shells running in posix mode do not set $HOME, as POSIX apparently
- requires
-
- 2/15
- ----
-braces.c
- - mkseq() now takes the increment as an argument; changed callers
-
- 2/16
- ----
-builtins/hash.def
- - print `hash table empty' message to stdout instead of stderr
-
- 2/17
- ----
-lib/readline/readline.c
- - when resetting rl_prompt in rl_set_prompt, make sure rl_display_prompt
- is set when the function returns
-
- 2/18
- ----
-lib/readline/display.c
- - further fixes to _rl_make_prompt_for_search from Eric Blake to deal
- with multiple calls to expand_prompt
-
- 2/21
- ----
-builtins/hash.def
- - don't print `hash table empty' message in posix mode
-
- 2/27
- ----
-lib/glob/sm_loop.c
- - change extmatch() to turn off FNM_PERIOD in flags passed to recursive
- calls to gmatch() when calling it with a substring after the start
- of the string it receives. Changed `+', `*', `?, `@', and `!' cases
- to do the right thing. Fixes bug reported by Benoit Vila
- <bvila@free.fr>
-
-braces.c
- - add QUIT; statements to mkseq to make large sequence generation
- interruptible
-
- 2/28
- ----
-lib/glob/glob.c
- - initialize nalloca in glob_vector
-
- 3/1
- ---
-lib/glob/glob.c
- - in glob_vector, when freeing up the linked list after some error,
- make sure to set `tmplink' to 0 if `firstlink' is set to 0, else we
- get multiple-free errors
-
- 3/5
- ---
-trap.c
- - inheritance of the DEBUG, RETURN, and ERR traps is now dependent
- only on the `functrace' and `errtrace' shell options, as the
- documentation says, rather than on whether or not the shell is in
- debugging mode. Reported by Philip Susi <psusi@cfl.rr.com>
-
-parse.y
- - in parse_matched_pair, don't recursively parse ${...} or other
- ${...} constructs inside ``
- - in parse_matched_pair, remove special code that recursively parses
- quoted strings inside `` constructs. For Bourne shell compatibility
-
- 3/6
- ---
-builtins/pushd.def
- - let get_directory_stack take take an `int flags' argument and convert
- $HOME to ~ if flags&1 is non-zero
-
-builtins/common.h
- - change extern declaration for get_directory_stack
-
-variables.c
- - call get_directory_stack with an arg of 0 to inhibit converting
- $HOME to ~ in the result. Fixes cd ${DIRSTACK[1]} problem
- reported by Len Lattanzi <llattanzi@apple.com> (cd fails because
- the tildes won't be expanded after variable expansion)
-
-jobs.c
- - changed hangup_all_jobs slightly so stopped jobs marked J_NOHUP
- won't get a SIGCONT
-
-general.c
- - changed check_binary_file() to check for a NUL byte instead of a
- non-printable character. Might at some point want to check
- entire (possibly multibyte) characters instead of just bytes. Hint
- from ksh via David Korn
-
- 3/7
- ---
-builtins/reserved.def
- - changed runs of spaces to tabs in variables help text to make
- indentation better when displayed
-
-builtins/mkbuiltins.c
- - changes to avoid the annoying extra space that keeps gettext from
- being passed an empty string
-
- 3/9
- ---
-lib/glob/glob.c
- - make sure globbing is interrupted if the shell receives a terminating
- signal
-
- 3/14
- ----
-lib/readline/search.c
- - call rl_message with format argument of "%" in _rl_nsearch_init
- to avoid `%' characters in the prompt string from being interpreted
- as format specifiers to vsnprintf/vsprintf
-
- 3/19
- ----
-parse.y, eval.c, input.h
- - change execute_prompt_command to execute_variable_command; takes the
- variable name as a new second argument
-
- 3/25
- ----
-bashline.c
- - command_word_completion_function keeps track of when it's searching
- $PATH and doesn't return directory names as matches in that case.
- Problem reported by Pascal Terjan <pterjan@mandriva.com>
- - command_word_completion_function returns what it's passed as a
- possible match if it's the name of a directory in the current
- directory (only non-absolute pathnames are so tested).
-
- 3/27
- ----
-subst.c
- - expand_arith_string takes a new argument: quoted. Either 0 (outside
- subst.c) or Q_DOUBLE_QUOTES (substitution functions); changed callers
-
-subst.h
- - changed extern declaration for expand_arith_string
-
-arrayfunc.c
- - changed call to expand_arith_string in array_expand_index
-
- 3/31
- ----
-lib/readline/histfile.c
- - change read_history_range to allow windows-like \r\n line endings
-
-execute_cmd.c
- - add new variable, line_number_for_err_trap, currently set but not
- used
-
- 4/2
- ---
-lib/sh/strtrans.c
- - add code to echo -e and echo with xpg_echo enabled to require
- a leading 0 to specify octal constants
-
- 4/3
- ---
-subst.c
- - slight change to wcsdup() replacement: use memcpy instead of wcscpy
-
-parse.y
- - before turning on W_COMPASSIGN, make sure the final character in the
- token is a `(' (avoids problems with things like a=(4*3)/2)
-
- 4/4
- ---
-lib/sh/snprintf.c
- - in number() and lnumber(), turn off PF_ZEROPAD if explicit precision
- supplied in format
- - change number() and lnumber() to correctly implement zero-padding
- specified by a non-zero `.precision' part of the format
-
-subst.c
- - new flag for extract_delimited_string: EX_COMMAND. For $(...), so
- we can do things like skip over delimiters in comments. Added to
- appropriate callers
- - changes to extract_delimited_string to skip over shell comments when
- extracting a command for $(...) (EX_COMMAND is contained in the
- flags argument)
-
- 4/5
- ---
-subst.c
- - first argument to skip_single_quoted is now a const char *
- - new function, chk_arithsub, checks for valid arithmetic expressions
- by balancing parentheses. Fix based on a patch from Len Lattanzi
-
- 4/6
- ---
-{configure,config.h}.in
- - add separate test for isnan in libc, instead of piggybacking on
- isinf-in-libc test
-
-lib/sh/snprintf.c
- - separate the isnan replacement function so it's guarded by its own
- HAVE_ISNAN_IN_LIBC define
-
-lib/sh/wcsdup.c
- - new file, contains replacement wcsdup library function from subst.c
- with change back to using wcscpy
-
-Makefile.in,lib/sh/Makefile.in
- - make sure wcsdup.c is compiled and linked in
-
-subst.c
- - wcsdup now found in libsh; removed static definition
-
- 4/10
- ----
-lib/readline/callback.c
- - loop over body of rl_callback_read_char as long as there is additional
- input rather than just calling readline_internal_char, which does
- not handle multi-character key sequences or escape-prefixed chars
-
-lib/readline/macro.c
- - make sure we turn off RL_STATE_MACROINPUT when the macro stack is
- empty if we are reading additional input with RL_STATE_MOREINPUT
-
-support/shobj-conf
- - Mac OS X no longer likes the `-bundle' option to gcc when creating a
- dynamic shared library
-
- 4/11
- ----
-lib/tilde/tilde.c
- - don't try to dereference user_entry if HAVE_GETPWENT isn't defined
-
-lib/readline/input.c
- - make sure chars_avail is not used without being assigned a value in
- rl_gather_tyi
- - use _kbhit() to check for available input on Windows consoles, in
- rl_gather_tyi and _rl_input_available
-
- 4/21
- ----
-lib/readline/display.c
- - calculate (in expand_prompt) and keep track of length of local_prompt
- in local_prompt_len; use where appropriate
- - when using o_pos to check whether or not we need to adjust
- _rl_last_c_pos after calling update_line, assume that it's correct
- (a buffer index in non-multibyte locales and a cursor position in
- multibyte locales) and adjust with wrap_offset as appropriate
- - in update_line, set cpos_adjusted to 1 after calling
- _rl_move_cursor_relative to move to the end of the displayed prompt
- string
- - in _rl_move_cursor_relative, check that the multibyte display
- position is after the last invisible character in the prompt string
- before offsetting it by the number of invisible characters in the
- prompt (woff)
-
- 4/26
- ----
-lib/readline/doc/{rluser.texi,readline.3}
- - make sure to note that key bindings don't allow any whitespace
- between the key name or sequence to be bound and the colon
-
- 4/28
- ----
-lib/readline/display.c
- - in update_line, make sure we compare _rl_last_c_pos as strictly less
- than PROMPT_ENDING_INDEX, since it's 0-based, to avoid multiple
- prompt redraws
-
- 5/4
- ---
-parse.y
- - in decode_prompt_string, only prefix the expansion of \[ or \]
- with CTLESC if the corresponding readline escape character is
- CTLESC (coincidentally the same as \[) or CTLNUL. Bug report sent
- by Mike Frysinger <vapier@gentoo.org> prompted the discovery
-
-aclocal.m4
- - slight change to test for /dev/fd to compensate for a linux
- failing; suggested by Mike Frysinger <vapier@gentoo.org>
-
- 5/9
- ---
-arrayfunc.c
- - broke assign_array_var_from_string into two functions:
- expand_compound_array_assignment and assign_compound_array_list;
- assign_array_var_from_string just calls those functions now
-
-arrayfunc.h
- - new extern declarations for expand_compound_array_assignment and
- assign_compound_array_list
-
-subst.c
- - in do_compound_assignment, call expand_compound_array_assignment
- before creating the local variable so a previous inherited
- value can be used when expanding the rhs of the compound assignment
- statement
-
- 5/11
- ----
-doc/{bash.1,bashref.texi}
- - clarifed `trap' description to make it clear that trapped signals
- that are not set to SIG_IGN are reset when a subshell is created
-
- 5/18
- ----
-locale.c
- - change reset_locale_vars to call setlocale (LC_ALL, "") if LANG
- is unset or NULL
- - if LANG is unset or NULL, reset the export environment before
- calling setlocale in reset_locale_vars, and trust that it will
- change the environment setlocale() inspects
-
- 5/21
- ----
-lib/readline/history.c
- - new function, HIST_ENTRY *alloc_history_entry (char *string, char *ts);
- creates a new history entry with text STRING and timestamp TS (both
- of which may be NULL)
- - new function, HIST_ENTRY *copy_history_entry (HIST_ENTRY *hist),
- which copies the line and timestamp entries to new memory but just
- copies the data member, since that's an opaque pointer
- - new function, void replace_history_data (int which, histdata_t *old, histdata_t *new)
- which replaces the `data' member of specified history entries with
- NEW, as long as it is OLD. WHICH says which history entries to
- modify
- - add calls to replace_history_data in rl_free_undo_list and
- rl_do_undo
-
-lib/readline/undo.c
- - new function, alloc_undo_entry (enum undo_code what, int start, int end, char *text)
- takes care of allocating and populating a struct for an individual
- undo list entry
- - new function: _rl_copy_undo_entry(UNDO_LIST *entry)
- - new function: _rl_copy_undo_list(UNDO_LIST *head)
-
-lib/readline/rlprivate.h
- - new extern declarations for _rl_copy_undo_{entry,list}
-
-execute_cmd.c
- - change execute_cond_node so that quoting the rhs of the =~
- operator forces string matching, like the == and != operators
-
- 5/23
- ----
-redir.c
- - add_undo_redirect now takes as an additional argument the type of
- redirection we're trying to undo
- - don't add a "preservation" redirection for fds > SHELL_FD_BASE if
- the redirection is closing the fd
-
- 5/24
- ----
-subst.c
- - make sure that parameter_brace_substring leaves this_command_name
- set to either NULL or its previous value after setting it so that
- arithmetic evaluation errors while expanding substring values
- contain meaningful information
-
- 6/9
- ---
-execute_cmd.c
- - make sure that SUBSHELL_ASYNC and SUBSHELL_PIPE are set as flag bits
- in subshell_environment, rather than setting only a single value
- - change execute_subshell_builtin_or_function to give the `return'
- builtin a place to longjmp to when executed in a subshell or pipeline
- (mostly as the last command in a pipeline). Bug reported by
- Oleg Verych <olecom@gmail.com>
- - in execute_simple_command, make sure to call execute_disk_command
- with the_printed_command_except_trap to keep DEBUG trap command
- strings from overwriting the command strings associated with jobs
- and printed in job control messages. Bug reported by Daniel Kahn
- Gillmor <dkg-debian.org@fifthhorseman.net>
-
-[bash-3.2-alpha frozen]
-
- 6/22
- ----
-syntax.h
- - add new CBLANK (for [:blank:] class) flag value for syntax table and
- shellblank(c) character test macro
-
-mksyntax.c
- - add support for setting CBLANK flag in the syntax table depending on
- whether or not isblank(x) returns true for character x
-
-locale.c
- - change locale_setblanks to set or unset CBLANK flag for each
- character when locale changes
-
-parse.y
- - change call to whitespace(c) in lexical analyzer (read_token()) to
- call shellblank(c) instead, so locale-specific blank characters are
- treated as white space. Fixes bug reported by Serge van deb Boom
- <svdb+bug-bash@stack.nl>
-
-print_cmd.c
- - when printing redirections, add a space between <, >, and <> and the
- following word, to avoid conflicts with process substitution. Bug
- reported by Ittay Dror <ittyad@qlusters.com>
-
- 6/26
- ----
-configure.in
- - set CROSS_COMPILE to the empty string by default, so we don't inherit
- a random value from the environment. Bug reported by
- Lee Revell <rlrevell@joe-job.com>
-
- 6/29
- ----
-lib/glob/xmbsrtowcs.c
- - make sure destp is non-null before assigning a 0 to *destp in
- xdupmbstowcs. Fix from Louiwa Salem <loulwas@us.ibm.com>
-
-execute_cmd.c
- - fix execute_in_subshell to make sure asynchronous isn't set to 0
- before subshell_environment is set appropriately and
- setup_async_signals is run. Based on report by Louiwa Salem
- <loulwas@us.ibm.com>
-
-lib/readline/bind.c
- - in rl_generic_bind(), make sure that the keys array is freed before
- an error return. Fix from Louiwa Salem <loulwas@us.ibm.com>
-
- 7/1
- ---
-builtins/read.def
- - make sure all editing code is protected with #ifdef READLINE, esp.
- unwind-protect that restores the default completion function
-
-lib/readline/display.c
- - make sure to set local_prompt_len in rl_message() [in bash-3.2-alpha]
-
- 7/5
- ---
-builtins/printf.def
- - add more of echo's write error handling to printf. Suggested by
- martin.wilck@fujitsu-siemens.com
-
- 7/7
- ---
-lib/readline/display.c
- - save and restore local_prompt_len in rl_{save,restore}_prompt
- [in bash-3.2-alpha]
-
- 7/8
- ---
-[bash-3.2-alpha released]
-
- 7/9
- ---
-lib/readline/display.c
- - make sure that _rl_move_cursor_relative sets cpos_adjusted when it
- offsets `dpos' by wrap_offset in a multi-byte locale. Bug reported
- by Andreas Schwab and Egmont Koblinger
-
-subst.c
- - make sure that the call to mbstowcs in string_extract_verbatim is
- passed a string with enough space for the closing NUL. Reported
- by Andreas Schwab
-
- 7/18
- ----
-lib/readline/{display,terminal}.c
- - remove #ifdefs for HACK_TERMCAP_MOTION so we can use
- _rl_term_forward_char in the redisplay code unconditionally
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_term_forward_char
-
-lib/readline/display.c
- - in _rl_move_cursor_relative, use `dpos' instead of `new' when
- deciding whether or not a CR is faster than moving the cursor from
- its current position
- - in _rl_move_cursor_relative, we can use _rl_term_forward_char to
- move the cursor forward in a multibyte locale, if it's available.
- Since that function doesn't have a handle on where the cursor is in
- the display buffer, it has to output a cr and print all the data.
- Fixes rest of problem reported by Egmont Koblinger
- - change variable denoting the position of the cursor in the line buffer
- from c_pos (variable local to rl_redisplay) to cpos_buffer_position
- (variable local to file) for future use by other functions
-
- 7/25
- ----
-lib/malloc/{stats,table}.h
- - include <string.h> for prototypes for memset, strlen
-
-lib/termcap/{termcap,tparam}.c
- - include <string.h> and provide macro replacement for bcopy if
- necessary
-
- 7/27
- ----
-lib/readline/histexpand.c
- - add support for `<<<' here-string redirection operator to
- history_tokenize_word. Bug reported by agriffis@gentoo.org
-
-externs.h
- - don't add prototype for strerror() if HAVE_STRERROR defined
-
- 7/29
- ----
-subst.c
- - in list_string, use `string' instead of `s' -- s is not initialized
-
- 8/9
- ---
-subst.c
- - fix parameter_brace_expand to set W_HASQUOTEDNULL in the WORD_DESC it
- returns if the result of parameter_brace_substring is a quoted null
- ("\177"). Fixes bug reported by Igor Peshansky <pechtcha@cs.nyu.edu>
-
- 8/16
- ----
-lib/readline/readline.h
- - new #define, READERR, intended to be used to denote read/input errors
-
-lib/readline/input.c
- - in rl_getc, if read() returns an error other than EINTR (after the
- EWOULDBLOCK/EAGAIN cases are handled), return READERR rather than
- converting return value to EOF if readline is reading a top-level
- command (RL_STATE_READCMD)
-
-lib/readline/readline.c
- - if rl_read_key returns READERR to readline_internal_char[loop],
- abort as if it had read EOF on an empty line, without any conversion
- to newline, which would cause a partial line to be executed. This
- fixes the bug reported by Mathieu Bonnet <mathieu.bonnet@nalkym.org>
-
-aclocal.m4
- - when testing for validity of /dev/fd/3, use /dev/null instead of
- standard input, since the standard input fails with linux and `su'.
- Bug reported by Greg Shafer <gschafer@zip.com.au>
-
- 8/17
- ----
-Makefile.in
- - switch the TAGS and tags targets so TAGS is the output of `etags' and
- tags is the output of `ctags'. Suggested by Masatake YAMATO
-
- 8/25
- ----
-execute_cmd.c
- - change code to match documentation: set BASH_COMMAND (which takes its
- value from the_printed_command_except_trap) only when not running a
- trap. Rocky says the debugger is ok with this, and this is what his
- original diffs did
-
- 8/29
- ----
-variables.c
- - change set_if_not to create shell_variables if it is NULL, since
- -o invocation options can cause variables to be set before the
- environment is scanned
-
-[bash-3.2-beta frozen]
-
- 9/5
- ---
-[bash-3.2-beta released]
-
- 9/8
- ---
-variables.c
- - change dispose_used_env_vars to call maybe_make_export_env
- immediately if we're disposing a temporary environment, since
- `environ' points to the export environment and getenv() will use
- that on systems that don't allow getenv() to be replaced. This
- could cause the temporary environment to affect the shell. Bug
- reported by Vasco Pedro <vp@di.uevora.pt>
-
-builtins/echo.def,doc/{bash.1,bashref.texi}
- - clarify that `echo -e' and echo when the `xpg_echo' shell option is
- enabled require the \0 to precede any octal constant to be expanded.
- Reported by Vasco Pedro <vp@di.uevora.pt>
-
- 9/12
- ----
-builtins/printf.def
- - make sure `%q' format specifier outputs '' for empty string arguments
- Bug reported by Egmont Koblinger <egmont@uhulinux.hu>
-
-make_cmd.c
- - change make_here_document to echo lines in here-doc if set -v has
- been executed. Reported by Eduardo Ochs <eduardoochs@gmail.com>
-
-aclocal.m4
- - change BASH_CHECK_MULTIBYTE:
- o replace check for wctomb with check for wcrtomb
- o add checks for wcscoll, iswctype, iswupper, iswlower,
- towupper, towlower
- o add call to AC_FUNC_MBRTOWC to check for mbrtowc and mbstate_t
- define HAVE_MBSTATE_T manually
- o add checks for wchar_t, wctype_t, wint_t
-
-config.h.in
- - add defines for wcscoll, iswctype, iswupper, iswlower, towupper,
- towlower functions
- - replace define for wctomb with one for wcrtomb
- - add defines for wchar_t, wint_t, wctype_t types
-
-config-bot.h, lib/readline/rlmbutil.h
- - add check for HAVE_LOCALE_H before defining HANDLE_MULTIBYTE
- - add checks for: ISWCTYPE, ISWLOWER, ISWUPPER, TOWLOWER, TOWUPPER
- - add checks for: WCTYPE_T, WCHAR_T, WCTYPE_T
-
- 9/13
- ----
-lib/readline/display.c
- - when displaying prompts longer than the screenwidth in rl_redisplay,
- and looking for the index of the last character whose buffer index
- is <= the screen width to set up the inv_lbreaks array, make sure to
- catch the case where the index == the screen width (an off-by-one
- error occurs otherwise with prompts one character longer than the
- screen width). Bug reported by Alexey Toptygin <alexeyt@freeshell.org>
-
-configure.in
- - change DEBUGGER_START_FILE to start with ${ac_default_prefix}/share,
- like bashdb installs itself. Reported by Nick Brown
- <nickbroon@blueyonder.co.uk>
-
- 9/14
- ----
-lib/readline/display.c
- - make multibyte code that computes the buffer indices of line breaks
- for a multi-line prompt dependent on MB_CUR_MAX, so we don't take
- the function call hit unless we're in a locale that can have
- multibyte characters
-
- 9/19
- ----
-subst.c
- - make dequote_list extern so other parts of the shell can use it
-
-subst.h
- - extern declaration for dequote_list
-
-builtins/read.def
- - call dequote_list before assigning words read to array variable if
- we saw an escape character. Old code left spurious CTLESCs in the
- string after processing backslashes. Bug reported by Daniel Dawson
- <ddawson@icehouse.net>
-
- 9/21
- ----
-[bash-3.2 frozen]
-
- 10/9
- ----
-support/shobj-coonf
- - change -fpic to -fPIC for FreeBSD systems (needed for SPARC at least)
-
- 10/11
- -----
-[bash-3.2 released]
-
- 10/12
- -----
-parse.y
- - change parse_matched_pair to make sure `` command substitution does
- not check for shell comments while parsing. Bug reported against
- bash-3.2 by Greg Schaefer <gschafer@zip.com.au>
-
- 10/14
- -----
-parse.y
- - add new parser_state flag: PST_REGEXP; means we are parsing a
- regular expression following the =~ conditional operator
- - cond_node sets PST_REGEXP after reading the `=~' operator
- - change read_token to call read_token_word immediately if the
- PST_REGEXP bit is set in parser_state
- - change read_token_word to skip over `(' and `|' if PST_REGEXP is
- set, since those characters are legitimate regexp chars (but still
- parse matched pairs of parens)
-
- 10/16
- -----
-builtins/ulimit.def
- - add -e and -r to $SHORT_DOC usage string
-
-po/ru.po
- - fix encoding; Russian text in the file is actually encoded in KOI8-R
-
- 10/23
- -----
-shell.c
- - make sure that the call to move_to_high_fd in open_shell_script
- passes 1 for the `check_new' parameter so open high file descriptors
- don't get closed and reused. Bug reported by Mike Stroyan
- <mike.stroyan@hp.com>
-
-doc/bashref.texi
- - fixes for typos and misspellings sent in by Brian Gough
-
- 10/24
- -----
-support/shobj-conf
- - make netbsd shared library creation like openbsd's until I hear
- differently (called using `gcc -shared')
-
- 10/26
- -----
-subst.c
- - fix bug in parameter_brace_patsub so if the first character of the
- expanded pattern is a `/', it is not taken as a global replacement
- specifier. Bug reported on forums.nekochan.net
-
- 10/27
- -----
-builtins/printf.def
- - if we need an extern declaration for asprintf, make sure we include
- stdarg.h or varargs.h, whichever is appropriate
- - if we do not have asprintf, add an extern declaration using
- stdarg format. This fixes the bugs with %G on IRIX reported by
- Matthew Woehlke <mwoehlke@tibco.com> and Stuart Shelton
- <srcshelton@gmail.com>
-
-
-lib/sh/snprintf.c
- - add note to not call log_10 with 0 argument -- we don't want to do
- what real log10 does (-infinity/raise divide-by-zero exception)
- - make sure numtoa (used by dtoa) takes the precision into account
- when computing the fractional part with an argument of `0.0'
- - make sure `g' and `G' formats don't print radix char if there are
- no characters to be printed after it (change to floating())
- - change callers of log_10 (exponent, 'g' and 'G' cases in
- vsnprintf_internal) to not call it with 0 for argument. This fixes
- the hang reported on IRIX by Matthew Woehlke <mwoehlke@tibco.com>
- and Stuart Shelton <mwoehlke@tibco.com>
-
- 10/28
- -----
-builtins/{caller,pushd}.def
- - changed longdoc strings in loadable builtin section to be single
- strings, as put in the build directory builtins.c file, to aid
- translators
-
- 11/1
- ----
-execute_cmd.c
- - reset subshell_environment to 0 after make_child() call in
- execute_null_command. Fix provided by Roy Marples
- <uberlord@gentoo.org>
-
- 11/7
- ----
-lib/tilde/tilde.c
-lib/readline/{util,undo,callback,input,isearch,kill}.c
- - make sure that memory allocated with xmalloc is freed with xfree
-
- 11/9
- ----
-lib/readline/display.c
- - make sure that _rl_redisplay_after_sigwinch clears the last displayed
- line instead of the current line (instead of assuming that the
- cursor is on the last line). Fixes bug reported by Egmont
- Koblinger <egmont@uhulinux.hu>
-
- 11/10
- -----
-lib/readline/display.c
- - make sure that _rl_col_width is never called with MB_CUR_MAX == 1,
- since it doesn't count invisible characters and they are not
- compensated for. Added a warning in _rl_col_width if called when
- MB_CUR_MAX == 1. Bug reported and solution suggested by Eric
- Blake <ebb9@byu.net>
-
- 11/11
- -----
-lib/readline/display.c
- - make sure _rl_wrapped_line is initialized to inv_lbsize int chars.
- inv_lbsize and vis_lbsize are the same at that point, but it makes
- the intent clearer. Fix from jan.kratochvil@redhat.com.
- - in rl_redisplay, make sure we call memset on _rl_wrapped_line with
- its full initialized size: inv_lbsize*sizeof(int). Fix from
- jan.kratochvil@redhat.com.
- - wrap the invisible and visible line variables and _rl_wrapped_line
- into line_state structures, which can be swapped more efficiently.
- Have to watch the wrapped_line field, since there's now one for
- each struct. Changes from jan.kratochvil@redhat.com.
-
-lib/readline/complete.c
- - in stat_char, check for `//server' on cygwin and return `/', since
- it will always behave as a directory. Fix from Eric Blake
-
-lib/readline/histfile.c
- - Cygwin's mmap() works in recent versions, so don't #undef HAVE_MMAP.
- Recommendation from Eric Blake
-
-lib/readline/rlwinsize.h
- - make sure tcflow() is defined on SCO Unix. Fix from William Bader
-
-aclocal.m4
- - add check for localeconv to AM_INTL_SUBDIR macro
-
-config.h.in
- - add HAVE_LOCALECONV
-
-lib/sh/snprintf.c
- - add check for HAVE_LOCALECONV for GETLOCALEDATA macro
-
-general.[ch]
- - first argument to legal_number is now `const char *'
-
- 11/14
- -----
-lib/readline/{readline,rlprivate}.h
- - move rl_display_prompt declaration from rlprivate.h to readline.h
-
-lib/readline/util.h
- - new function: rl_free(void *mem), for use by users of readline dlls
- on Windows
-
-lib/readline/readline.h
- - new extern declaration for rl_free
-
-lib/readline/doc/rltech.texi
- - document rl_free and rl_display_prompt for use by application writers
-
- 11/15
- -----
-aclocal.m4
- - change tests for /dev/fd and /dev/stdin to use constructs of the form
- (exec test ... ) instead of test ... to avoid bash's /dev/fd and
- /dev/stdin emulation
-
- 11/16
- -----
-jobs.c
- - in delete_job, reset_current was being called before the job slot
- was cleared -- moved after job_slots[job] was set to NULL. Fixes
- bug reported by Dan Jacobson <jidanni@jidanni.org>
-
- 11/19
- -----
-findcmd.c
- - when the checkhash option is set, fix the check for the hashed
- pathname being an existing executable file. Old code required a
- hash table deletion and re-addition. Bug reported by Linda
- Walsh <bash@tlinx.org>
-
- 11/21
- -----
-subst.c
- - in pos_params, handle case of `start' == 0 by making the list of
- positional parameters begin with $0
- - in parameter_brace_substring, increment `len' if start == 0, sicne
- we will be adding $0 to the beginning of the list when we process it
-
-doc/{bash.1,bashref.texi}
- - document new behavior of `0' offset when using substring expansion
- with the positional parameters
-
-support/shobj-conf
- - changes to shared object creation for loadable builtins on Mac OS X
- 10.4 to use libtool instead of ld by specifying -dynamiclib
- argument and changing options to be appropriate for libtool. This
- winds up creating a dynamic shared library instead of an executable
-
- 11/24
- -----
-{jobs,nojobs}.c
- - don't set last_asynchronous_pid to the child's pid in the child
- for asynchronous jobs (for compatibility -- all other posix shells
- seem to do it this way). This means that (echo $! )& echo $! should
- display two different pids. Fix from discussion on the
- austin-group-l list
-
-builtins/mkbuiltins.c
- - change builtins.c file generation so short doc strings are marked for
- gettext and available for subsequent translation. Suggestion by
- Benno Schulenberg <bensberg@justemail.net>
-
-builtins/{bind,cd,hash,inlib,printf,pushd,test,times,ulimit}.def
-lib/malloc/malloc.c
-{shell,subst}.c
- - fix a few strings that were not marked as translatable. Fix from
- Benno Schulenberg <bensberg@justemail.net>
-
-lib/readline/misc.c
- - new function, _rl_revert_all_lines(void). Goes through history,
- reverting all entries to their initial state by undoing any undo
- lists.
-
-lib/readline/rlprivate.h
- - extern declaration for _rl_revert_all_lines
-
-rldefs.h
- - add #undef HAVE_STRCOLL if STRCOLL_BROKEN is defined, prep to move
- from config.h.in. Problem reported by Valerly Ushakov
- <uwe@ptc.spbu.ru>
-
- 11/25
- -----
-lib/readline/readline.c
- - call _rl_revert_all_lines from readline_internal_teardown if the
- variable _rl_revert_all_at_newline is non-zero
- - declare _rl_revert_all_lines initially 0
-
- 11/27
- -----
-doc/{bash.1,bashref.texi}
- - make sure to be explicit that `typeset +r' cannot remove the readonly
- attribute from a variable
-
- 11/28
- -----
-lib/sh/zmapfd.c
- - new file, implements zmapfd(), which takes a file and returns its
- contents in a string
-
-externs.h
- - extern declaration for zmapfd
-
- 11/29
- -----
-builtins/evalfile.c
- - in _evalfile, use zmapfd to read the contents of the file into a
- string, rather than using the size reported by stat and reading that
- many characters, if the file is not a regular file (for things like
- named pipes, stat reports the size as 0)
-
- 12/3
- ----
-lib/sh/snprintf.c
- - make sure number() sets the FL_UNSIGNED flag for %x and %X, so
- fmtulong treats them as unsigned numbers. Fixes bug reported by
- James Botte <James.M.Botte@lowes.com>
-
- 12/13
- -----
-lib/readline/util.c
- - new function, _rl_ttymsg, for internal warning messages -- does
- redisplay after printing message
- - new function, _rl_errmsg, for internal warning/error messages --
- does not do redisplay after printing message
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_ttymsg, _rl_errmsg
-
-lib/readline/{bind,callback,complete,display,rltty}.c
- - use _rl_ttymsg/_rl_errmsg instead of direct writes to stderr
-
-lib/sh/tmpfile.c
- - in get_tmpdir(), make sure that $TMPDIR names a writable directory;
- otherwise skip it. This catches names longer than PATH_MAX, but in
- case it doesn't test that the length does not exceed PATH_MAX. Fixes
- heap overrun bug reported by Eric Blake <ebb9@byu.net>
-
- 12/16
- -----
-builtin/{set,declare,shopt,trap,wait,bind,complete,enable,fc,history,read,setattr}.def
-doc/{bash.1,bashref.texi}
- - improvements and clarifications to the help text associated with
- several builtins, in some cases bringing them into line with the
- man page text. From Benno Schulenberg <bensberg@justemail.net>
-
-doc/{bash.1,bashref.texi}
- - add `E' and `T' to the synopsis of the set builtin.
- From Benno Schulenberg <bensberg@justemail.net>
-
-builtins/{break,exit,fg_bg,hash,jobs,type,ulimit}.def
-builtins/{common,evalfile}.c
-{error,expr,jobs,mksyntax,nojobs,shell,subst,version,siglist}.c
- - add gettextizing marks to untranslated strings
- From Benno Schulenberg <bensberg@justemail.net>
-
- 12/19
- -----
-builtins/common.c
- - change display_signal_list (used by `trap -l' and `kill -l') to use
- five columns instead of 4 to display signal names
-
-builtins/help.def
- - use the true terminal width instead of assuming 80 when displaying
- help topics, leaving two characters of whitespace between horizontal
- descriptions instead of 1
- - change to print in columns with entries sorted down rather than across
- (that is, like `ls' rather than `ls -x'). Change inspired by Benno
- Schulenberg <bensberg@justemail.net>
-
-jobs.h
- - give values to the JOB_STATE enumerations so they can be used as
- bitmasks, too
-
- 12/22
- -----
-doc/{bash.1,bashref.texi}
- - change description of `set' to make it clearer that you can use
- `+' to turn off options
- - clarify in the description of word splitting that sequences of
- IFS whitespace at the beginning or end of the string are ignored
-
- 12/26
- -----
-doc/bashref.texi
- - move `shopt' builtin to its own section; change internal references
- from `Bash Builtins' to the new shopt builtin
- - new section for builtins that modify shell behavior in `Shell
- Builtin Commands'; move set and shopt to new section. Changes
- inspired by Benno Schulenberg <bensberg@justemail.net>
-
-{redir,subst}.c
- - add MT_USETMPDIR flag to calls to sh_mktmpfd and sh_mktmpname. Bug
- reported by Eric Blake <ebb9@byu.net>
-
-{configure,Makefile}.in
- - changes so that the pathname for DEBUGGER_START_FILE is substituted
- into pathnames.h at make time (allowing more flexibility in setting
- `prefix' or `datadir') instead of at configure time. Suggested by
- Nick Brown <nickbroon@blueyonder.co.uk>
-
-shell.c
- - declaration for have_devfd; initialized from HAVE_DEV_FD
- - declaration for check_jobs_at_exit; initialized to 0
- - declaration for autocd; initialized to 0
-
-variables.c
- - new dynamic variable, BASHPID, always set from return value from
- getpid() (changes even when $$ doesn't change). Idea from Bruce
- Korb <bruce.corb@3pardata.com>
-
-builtins/exit.def
- - if check_jobs_at_exit is non-zero, list jobs if there are any stopped
- or running background jobs; don't exit shell if any running jobs
-
-execute_cmd.c
- - in execute_simple_command, if the first word of a simple command is
- a directory name (after looking for builtins, so `.' isn't caught)
- that isn't found in $PATH, and `autocd' is non-zero, prefix a "cd"
- to the command words
-
-builtins/shopt.def
- - new `checkjobs' option, changes value of check_jobs_at_exit
- - new `autocd' option, changes value of autocd
-
-pcomplete.c
- - add COMP_TYPE, set to rl_completion_type, to list of variables set
- by bind_compfunc_variables and unset by unbind_compfunc_variables
-
-doc/{bash.1,bashref.texi}
- - document BASHPID
- - document new shopt `checkjobs' option
- - document new shopt `autocd' option
- - document COMP_TYPE completion variable
-
- 12/29
- -----
-aclocal.m4
- - in BASH_SYS_SIGLIST, check HAVE_DECL_SYS_SIGLIST instead of the
- obsolete and no-longer-supported SYS_SIGLIST_DECLARED
-
- 12/30
- -----
-lib/readline/vi_mode.c
- - add ` (backquote) to the list of vi motion characters
- - in rl_vi_delete_to, rl_vi_change_to, and rl_vi_yank_to, don't delete
- character under the cursor if the motion command moves the cursor
- backward, so add F and T to the commands that don't cause the
- mark to be adjusted
- - add ` to the characters that don't cause the mark to be adjusted
- when used as a motion command, since it's defined to behave that way
- - when a motion character that may adjust the mark moves point
- backward, don't adjust the mark so the character under the cursor
- isn't deleted
-
-lib/readline/complete.c
- - add variable rl_sort_completion_matches; allows application to
- inhibit match list sorting
- - add variable rl_completion_invoking_key; allows applications to
- discover the key that invoked rl_complete or rl_menu_complete
-
-lib/readline/readline.h
- - extern declarations for rl_completion_invoking_key and
- rl_sort_completion_matches
-
-lib/readline/doc/rltech.texi
- - documented rl_completion_invoking_key and rl_sort_completion_matches
-
-pcomplete.c
- - export variable COMP_KEY to completion functions; initialized from
- rl_completion_invoking_key; unset along with rest of completion
- variables
-
-doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi
- - document COMP_KEY
-
-[many files]
- - changes to make variables and function parameters `const' for better
- text sharing. Changes originally from Andreas Mohr
- <andi@rhlx01.fht-esslingen.de>
-
- 1/4/2007
- --------
-lib/intl/Makefile.in
- - use cmp before copying libgnuintl.h to libintl.h -- maybe save a few
- rebuilds
-
-lib/builtins/Makefile
- - fixes to build LIBINTL_H if necessary, dependency on this for
- mkbuiltins.o prevented `make -j 6' from working correctly
-
- 1/8
- ---
-subst.c
- - new function, fifos_pending(), returns the count of FIFOs in
- fifo_list (process substitution)
-
-subst.h
- - extern declaration for fifos_pending()
-
-execute_cmd.c
- - in execute_simple_command, if CMD_NO_FORK is set before we call
- execute_disk_command, make sure there are no FIFOs in the expanded
- words (from process substitution) and turn off CMD_NO_FORK if there
- are, so they can get unlinked when the command finishes
-
- 1/10
- ----
-subst.c
- - read_comsub now takes a flags parameter and returns appropriate W_*
- flags in it
- - command_substitute now returns a WORD_DESC *, with the string it used
- to return as the `word' and `flags' filled in appropriately
-
-subst.h
- - changed extern declaration for command_substitute
-
-{pcomplete,subst}.c
- - changed callers of command_substitute appropriately
-
-subst.c
- - string_extract_verbatim now takes an additional int flags argument;
- changed callers
-
- 1/11
- ----
-support/texi2html
- - fix problem that caused index links to not be generated if the first
- index node had a name different than the node name
-
-doc/bashref.texi
- - encapsulated all indexes into a single `Indexes' appendix; works
- around bug fixed in texi2html
-
- 1/12
- ----
-subst.c
- - add call to sv_histtimefmt in initialize_variables so HISTTIMEFORMAT
- from the environment is honored. Fix from Ark Submedes (heh)
- <archimerged@gmail.com>
-
-lib/readline/histfile.c
- - make sure that the first character following the history comment
- character at the beginning of a line is a digit before interpreting
- it as a timestamp for the previous line
-
-doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
- - added detail to make it clear exactly how history timestamps are
- saved to and read from the history file
-
-subst.c
- - change quote_escapes to add CTLESC before spaces if IFS is null,
- just in case we have to split on literal spaces later on (e.g., in
- case of unquoted $@). Corresponding changes to dequote_escapes.
- Fixes a couple of problems reported by Brett Stahlman
- <brettstahlman@comcast.net>
-
- 1/14
- ----
-subst.c
- - make same change to read_comsub to add CTLESC before ' ' if $IFS is
- null, since we will split on literal spaces later
-
- 1/15
- ----
-array.c
- - new function, array_quote_escapes (ARRAY *a), calls quote_escapes
- on each element of the array in the same way array_quote calls
- quote_string
- - call array_quote_escapes if match is not quoted in array_patsub
- - array_slice is now used, so remove the #ifdef INCLUDE_UNUSED define
- - change structure of array_subrange to call array_slice to create a
- new array with the desired subset of elements, then call array_quote
- or array_quote_escapes as necessary, like array_patsub. Convert to
- a string by calling array_to_string on the sliced-out array
-
-array.h
- - new extern declaration for array_quote_escapes
-
-subst.c
- - since array_patsub now calls quote_escapes as necessary, callers
- don't need to call it after array_patsub returns. Fixes first bug
- reported by Brett Stahlman <brettstahlman@comcast.net>
- - since array_subrange now calls quote_escapes as necessary, callers
- don't need to call it after array_patsub returns. Same fix as
- for array_patsub
-
- 1/31
- ----
-configure.in
- - add -DSOLARIS to LOCAL_CFLAGS for solaris x
-
-config-bot.h
- - don't #undef HAVE_GETCWD if GETCWD_BROKEN and SOLARIS are both
- defined. Solaris's loopback mount implementation breaks some of the
- file system assumptions the replacement getcwd uses.
-
-builtins/common.c
- - if GETCWD_BROKEN is defined, call getcwd with PATH_MAX for the size
- argument, so it will allocate a buffer for the current working dir
- with that size, instead of one that's `big enough'
-
-config.h.in
- - add #undef PRI_MACROS_BROKEN for AIX 4.3.3
-
-pathexp.h
- - new flag value for quote_string_for_globbing: QGLOB_REGEXP (quoting
- an ERE for matching as a string)
-
-pathexp.c
- - change quote_string_for_globbing to understand QGLOB_REGEXP
-
-execute_cmd.c
- - change execute_cond_node to pass 2 (regexp match), 1 (shell pattern
- match), or 0 (no matching) to cond_expand_word
-
-subst.c
- - change cond_expand_word to translate SPECIAL==2 into passing
- QGLOB_REGEXP to quote_string_for_globbing
-
-locale.c
- - by default, if all else fails, set shell's idea of locale to ""
- instead of its idea of `default_locale' -- the library functions
- behave better with that value
-
- 2/2
- ---
-builtins/printf.def
- - if PRI_MACROS_BROKEN is defined, #undef PRIdMAX (AIX 4.3.3 broken)
-
- 2/3
- ---
-Makefile.in,{builtins,doc}/Makefile.in,lib/*/Makefile.in
- - add assignment for datarootdir as per GNU coding standards
-
-Makefile.in,builtins/Makefile.in,lib/intl/Makefile.in,po/Makefile.in.in
- - use @localedir@ instead of $(datadir)/locale in assignment
-
- 2/13
- ----
-jobs.c
- - fix compact_jobs_list to not return js.j_lastj, since that is in use
- and should not be overwritten. Fix from Len Lattanzi
- <llattanzi@apple.com>
-
- 2/16
- ----
-lib/readline/text.c
- - change rl_forward_char to allow moving to the end of the line when
- using the arrow keys in vi insertion mode, rather than having the
- behavior identical between vi command and insertion modes. Change
- suggested by Hugh Sasse <hgs@dmu.ac.uk>
-
- 2/19
- ----
-CWRU/audit-patch
- - patch from Steve Grubb of RedHat <sgrubb@redhat.com> to make bash
- audit root's behavior by logging commands using his audit
- framework. Enabled if the shell's name is `aubash'.
-
- 3/8
- ---
-jobs.c
- - use WSTATUS (p->status) instead of bare p->status. Fix from
- Jim Brown <jim.brown@rsmas.miami.edu>
-
- 3/9
- ---
-lib/readline/{complete,input,isearch,misc,readline,text,vi_mode}.c
- - make sure cases where rl_read_key returns -1 (usually due to EIO
- because the controlling tty has gone away) are handled correctly.
- Prompted by report from Thomas Loeber <ifp@loeber1.de>
-
- 3/10
- ----
-sig.c
- - new function, top_level_cleanup, callable from contexts where some
- cleanup needs to be performed before a non-fatal call to
- jump_to_top_level
-
-sig.h
- - new extern declaration for top_level_cleanup
-
-builtins/common.c
- - add calls to top_level_cleanup before calls to jump_to_top_level
- in a builtin command context (no_args(), get_numeric_arg()). Fixes
- bug reported by Ian Watson
-
-lib/readline/display.c
- - in _rl_move_cursor_relative, use `new' when comparing against
- the last invisible character in the prompt, since they both denote
- buffer indices when in a multibyte locale, whereas `dpos' is a
- display position
-
- 3/13
- ----
-lib/readline/complete.c
- - set rl_completion_append_character to the default (' ') in
- set_completion_defaults(). Fixes bug reported by David Emerson
- <demerson3x@angelbase.com>
-
- 3/23
- ----
-builtins/evalfile.c
- - make sure read() returns a value >= 0 before using it as an index
- into string[]
- - use a variable of type `ssize_t' for return value from read()
- - only try to read the entire contents of a regular file in one shot
- if the file size is less than SSIZE_MAX. These fix problems
- reported by hooanon05@yahoo.co.jp.
-
-include/typemax.h
- - define SSIZE_MAX as 32767 if it's not defined
-
-lib/readline/display.c
- - in rl_redisplay() and update_line(), if redrawing the prompt because
- it contains invisible characters, make sure we redraw the character
- indicating a modified history line and take it into account when
- computing _rl_last_c_pos
- - in update_line, if deleting characters and redrawing the new text,
- make sure we adjust _rl_last_c_pos by wrap_offset in a multibyte
- locale if the text we're drawing starts before or at the last
- invisible character in the prompt string. Fixes bug reported on
- bug-readline by J Pelkey <pelkeyj@gmail.com>
-
-parse.y
- - when adding at CTLESC character to the current token, do not
- escape it with CTLESC if pass_next_character indicates that the
- CTLESC was escaped by a backslash. Fixes bug reported by
- Paul Bagshaw <paul.bagshaw@orange-ftgroup.com>.
-
- 3/25
- ----
-lib/readline/text.c
- - in rl_forward_char, short-circuit the loop if in emacs mode and
- rl_point == rl_end. Fixes problem with multibyte locales
- reported by Len Lattanzi <llattanzi@apple.com>
-
- 3/29
- ----
-command.h
- - new flag for subshell_environment: SUBSHELL_PROCSUB, for process
- substitution
-
-subst.c
- - add SUBSHELL_PROCSUB to subshell_environment in process_substitute
-
- 3/30
- ----
-doc/Makefile.in
- - fix installation of bash.info to understand that it is in the build
- directory, not the source directory
-
-mailcheck.c
- - new function, init_mail_dates, calls remember_mail_dates only if
- there are no mailboxes in `mailfiles'
- - new function, init_mail_file, initializes a FILEINFO, using the
- last time mail was checked as the mtime and atime (or the time the
- shell was started if last_time_mail_checked is uninitialized)
- - call init_mail_file instead of update_mail_file in add_mail_file,
- called from remember_mail_dates (which is supposed to initialize
- the list of mail files)
- - new convenience functions, alloc_mail_file and dispose_mail_file to
- allocate and free FILEINFO structs
-
-mailcheck.h
- - extern declaration for init_mail_dates
-
-shell.c
- - call init_mail_dates instead of remember_mail_dates
-
- 4/4
- ---
-builtins/read.def
- - changes to print $PS2 when a line is continued with a backslash in
- an interactive shell. This is as POSIX requires
-
- 4/5
- ---
-subst.c
- - make sure quote_escapes is only ever called when the word to be
- escaped is not marked as double-quoted -- cleaner, and allows us
- to make certain assumptions
-
- 4/6
- ---
-subst.c
- - change all EX_* defines to begin with SX_
- - new flag, SX_NOCTLESC, obeyed by string_extract_verbatim, tells it
- to not obey CTLESC quoting
- - change quote_escapes to not quote CTLESC with CTLESC if one of the
- chars in $IFS is CTLESC, since the return value from quote_string
- will be passed to word splitting and filename generation
- - change read_comsub to do the same thing for unquoted command
- substitutions
- - change list_string to pass SX_NOCTLESC if CTLESC is one of the
- chars in $IFS, so it will split on CTLESC instead of using it as a
- quote character
-
- 4/7
- ---
-subst.c
- - slight change to string_extract_verbatim to allow CTLESC to quote
- CTLNUL even if SX_NOCTLESC is set in the flags passed, to protect
- the CTLNULs from future calls to remove_quoted_nulls. Only
- matters when $IFS contains CTLESC
- - changes to cope with $IFS containing CTLNUL in the same way as the
- CTLESC changes
-
-builtins/read.def
- - changes to cope with $IFS containing CTLNUL in the same way as the
- CTLESC changes
-
- 4/16
- ----
-lib/sh/strftime.c
- - a couple of fixes to the `%z' code
-
-eval.c
- - add an fflush after printing the auto-logout message
-
- 4/24
- ----
-subst.c
- - add call to top_level_cleanup in exp_jump_to_top_level to get things
- like unwind-protects and the loop levels cleaned up
-
-{arrayfunc,expr,variables}.c
- - add calls to top_level_cleanup before jump_to_top_level()
-
- 4/27
- ----
-builtins/complete.def
- - make sure the `command' argument to the -C option is printed with
- single quotes, since multi-word commands will require them. Bug
- reported by martin@snowplow.org
-
-execute_cmd.c
- - change execute_builtin_or_function and execute_subshell_builtin_or_function
- to call fflush(stdout) after the builtin or function returns, to
- make sure that all output is flushed before the call returns. It
- matters on cygwin. Fix suggested by Eric Blake <ebb9@byu.net>
-
-redir.c
- - in do_redirection_internal, if the file descriptor being acted upon
- is the same one used by the stdout stream, call fflush(stdout) to
- make sure all output is flushed before changing the underlying fd
- out from underneath stdio. Fix suggested by Eric Blake <ebb9@byu.net>
-
-
- 4/30
- ----
-
-builtins/common.c
- - new function, sh_chkwrite(int), fflushes stdout and checks for error;
- printing an error message and returning a new exit status if there's
- an error on stdout. Takes exit status as argument; returns new exit
- status (EXECUTION_FAILURE if write error)
-
-builtins/common.h
- - new extern declaration for sh_chkwrite
-
-builtins/{alias,cd,complete,echo,fc,history,pushd,shopt,times,trap,type,ulimit,umask}.def
- - change to use sh_chkwrite to report write errors
-
-builtins/fc.def
- - if an error occurs while writing commands from the history to a file
- to be executed, report a write error and return failure without
- attempting to execute any commands
-
- 5/1
- ---
-builtins/{bind,declare,set,setattr}.def
- - change to use sh_chkwrite to report write errors
-
- 5/2
- ---
-lib/readline/input.c
- - fix off-by-one errors in _rl_get_char (pop_index) and rl_stuff_char
- (push_index) that caused the 511th character in the buffer to be
- discarded. Fixes bug reported by Tom Bjorkholm <tom.bjorkholm@ericsson.com>
-
- 5/8
- ---
-subst.c
- - fix parameter_brace_remove_pattern to pass getpattern() newly-allocated
- memory. If word expansions (particularly brace expansions) are
- required, the expansion code will free the string passed to
- expand_word_internal, and we don't want to free unallocated memory
- (patstr++) or have duplicate frees (patstr). Fixes bug reported on
- Red Hat bugzilla
-
- 5/9
- ---
-lib/readline/signals.c
- - fix bug in rl_set_signals that caught SIGINT twice and didn't catch
- SIGTERM. Bug reported by Ed Kwan <ed.kwan@onstor.com>
-
- 5/18
- ----
-jobs.c
- - change compact_jobs_list to return 1 if js.j_lastj == 0 and there is
- a job in jobs[0]; compact_jobs_list should never return an index
- already occupied
- - change reset_job_indices to avoid infinite looping when js.j_firstj
- == 0 or js.j_firstj == js.j_jobslots upon function entry. Fixes
- bug reported by osicka@post.cz
-
- 5/20
- ----
-
-execute_cmd.c
- - new variable, executing_builtin, keeps track of number of "levels"
- of builtins being executed; incremented by execute_builtin; saved
- and restored by execute_simple_command
-
-subst.c
- - new variable, assigning_in_environment, set and unset around calls
- to assign_in_env by the expansion code
-
-variables.c
- - use executing_builtin and assigning_in_environment to decide whether
- or not to look into temporary_env when calling find_variable_internal.
- Fixes problem reported by Kevin Quinn <kevquinn@gentoo.org>
-
- 5/22
- ----
-redir.c
- - change add_undo_redirect to differentiate between file descriptors
- greater than SHELL_FD_BASE (currently 10) used internally to save
- others and then being the targets of user redirection and fds that
- are just the target of user redirections. The former need to have
- an `exec undo' redirect added to undo it in case exec throws away
- redirections; the latter does not. We use the close-on-exec flag
- for this: if it's set, we assume that the file descriptor is being
- used internally to save another. Fixes problem reported by Ian
- Jackson <ian@davenant.greenend.org.uk>
-
-shell.c
- - new function, init_interactive_script(), does interactive initialization
- for a script run with `bash -i script' -- does everything the same
- as init_interactive except set `interactive == 1', which causes the
- shell to read from the standard input, after calling
- init_noninteractive
- - call init_interactive_script if a script is run as `bash -i script'.
- Fixes problem reported by Joseph Michaud <jmichaud@sgi.com>
-
- 5/24
- ----
-builtins/printf.def
- - change vbadd to only call FASTCOPY if the passed buffer length is
- > 1
- - if the `-v' option is supplied and `vbuf' is already non-null from a
- previous `printf -v var' call, set vbuf[0]=0 explicitly instead of
- relying on vbadd to do it -- vbadd may not be called.
- - fix PRETURN macro to set vbuf[0] == 0 if vbuf is not freed. These
- should fix problem reported by Elmar Stellnberger <estellnb@yahoo.de>
-
-lib/readline/display.c
- - fix update_line to deal with the case where col_lendiff > 0 (meaning
- the new string takes up more screen real estate than the old) but
- lendiff < 0 (meaning that it takes fewer bytes to do so). This can
- happen when a multibyte prompt string is replaced with a longer one
- containing only single-byte characters (e.g., when doing a reverse
- i-search). Fixes gentoo bug reported by Peter Volkov
- <torre_cremata@mail.ru>
-
-builtins/read.def
- - make sure we only print $PS2 if the standard input is a terminal
- - new function, read_mbchar, to read a multibyte character so we
- can make sure we read entire multibyte chars when `read -n' is
- used, rather than bytes. Only called when -n is supplied.
- Fixes problem reported by Stanislav Brabec <sbrabec@suse.cz>
-
- 5/25
- ----
-externs.h
- - new #defines for third argument to named_function_string:
- FUNC_MULTILINE (don't suppress newlines) and FUNC_EXTERNAL (convert
- to external display form)
-
-subst.h
- - new extern declaration for remove_quoted_escapes
-
-subst.c
- - remove_quoted_escapes is now global
-
-print_cmd.c
- - in named_function_string, if FUNC_EXTERNAL is in the flags argument,
- call remove_quoted_escapes to convert from internal to external form.
- Fixes bug reported by Bo Andresen <bo.andresen@zlin.dk>
-
-variables.c,builtins/{declare,setattr,type}.def
- - use FUNC_MULTILINE in calls to named_function_string as appropriate
- - add FUNC_EXTERNAL to calls to named_function_string as appropriate
-
- 5/27
- ----
-{make_cmd,variables}.c
- - changes to enable the shell to compile when debugger support is
- configured out (function_def hash table and access functions). Fixes
- bug reported by Horst Wente <horst.wente@acm.org>
-
-builtins/help.def
- - fix bug in `help' two-column printing to avoid referencing
- shell_builtins[num_shell_builtins]
-
-error.c
- - in get_name_for_error, use dollar_vars[0] if the name returned from
- looking in $BASH_SOURCE[0] is the empty string as well as if it's
- null
-
- 5/31
- ----
-arrayfunc.c
- - change array_value_internal to set *RTYPE to 1 if the reference is
- array[*] and 2 if the reference is array[@]
-
-subst.c
- - in parameter_brace_expand_word, set the flags returned by the word
- desc to include W_HASQUOTEDNULL if array_value returns QUOTED_NULL
- for an array reference like x[*] and the word is quoted. Fixes bug
- reported by Christophe Martin <schplurtz@free.fr>
-
- 6/1
- ---
-jobs.c
- - several changes to preserve errno if tcgetpgrp/tcgetattr/tcsetattr
- fail, for subsequent error messages
- - change initialize_job_control to turn off job control if the terminal
- pgrp == -1 or is not equal to shell_pgrp (with an error message)
- - in initialize_job_control, if the shell has been forced interactive
- with -i, make sure stderr is hooked to a tty before using it as
- the controlling terminal. If it's not, try to open /dev/tty and
- assign it to shell_tty. Fixes problems reported by Derek Fawcus
- <dfawcus@cisco.com>
-
- 6/13
- ----
-support/shobj-conf
- - changes to support shared object and shared library creation on AIX
- 5.x and later versions. From Niklas Edmundsson <nikke@acc.umu.se>
-
- 6/17
- ----
-builtins/mkbuiltins.c
- - new array of builtins, posix_builtins, containing builtins listed
- as special to the command search order by POSIX
- - add POSIX_BUILTIN to the builtin flags if the builtin name is one
- that's special to the posix command search order
-
-builtins.h
- - new define, POSIX_BUILTIN, means that a builtin is special to the
- posix command search order
-
- 6/22
- ----
-lib/readline/display.c
- - new macro, WRAP_OFFSET, intended to replace W_OFFSET. Takes prompt
- strings longer than one physical line with invisible characters on
- the second line into account when calculating the number of
- invisible characters on the current screen line
- - use WRAP_OFFSET where appropriate (update_line, _rl_move_cursor_relative)
- - change update_line to deal with adjusting _rl_last_c_pos in a
- multibyte environment when the prompt has invisible chars on the
- second line and redisplay has output the invisible characters
- - change _rl_move_cursor_relative to adjust _rl_last_c_pos in a
- multibyte environment when the prompt has invisible chars on the
- second line and the redisplay draws the invisible character. Fixes
- redisplay bug reported by Andreas Schwab <schwab@suse.de>
-
-
- 7/11
- ----
-
-lib/readline/rltty.c
- - enable flush-output code for systems other than AIX 4.1. Problem
- reported by Jan Kratochvil <jan.kratochvil@redhat.com>
-
- 7/12
- ----
-lib/readline/display.c
- - set prompt_invis_chars_first_line from the portion of the prompt
- following the final newline, instead of from the prefix. Fixes
- bug reported on the Ubuntu bug list by dAniel hAhler
- <ubuntu@thequod.de>
-
- 7/13
- ----
-variables.c
- - use native __QNX__ and __QNXNTO__ cpp defines instead of qnx and
- qnx6, respectively. Patch from Sean Boudreau <seanb@qnx.com>
-
-lib/sh/getcwd.c
- - #undef HAVE_LSTAT on qnx, so it uses stat instead. Patch from
- Sean Boudreau <seanb@qnx.com>
-
- 7/21
- ----
-builtins/common.c
- - change sh_invalidnum to be a little smarter about octal and hex
- numbers and change the message appropriately. Bug originally
- reported on coreutils list by Jürgen Niinre <Jyrgen.Niinre@emt.ee>
-
- 7/26
- ----
-test.c
- - make sure the string passed to test_unop has only a single character
- following the `-'. Fixes bug reported by Michael A. Smith
- <michael@smith-li.com>
-
-parse.y
- - better input validation: make sure a word looks like a conditional
- unary operator (-X) before calling test_unop
-
- 7/28
- ----
-trap.c
- - in trap_handler, if it's called directly from the signal handler
- (e.g., SIGINT sighandler, set by set_sigint_handler), but the
- trap disposition has been reset to the default between the
- assignment and receipt of the signal, check that the signal is
- trapped and issue a warning if the shell was compiled with
- debugging enabled. Fixes bug reported by Fergus Henderson
- <fergus@google.com>
-
- 8/1
- ---
-lib/readline/{util,histexpand}.c
- - fixes for small memory leaks from Michael Snyder <msnyder@sonic.net>
-
- 8/18
- ----
-Makefile.in
- - add dependency on builtins/builtext.h to nojobs.o list. Fixes
- `make -j 5' issue reported by Chris MacGregor <chris@bouncingdog.com>
-
-examples/loadables/Makefile.in
- - add @LDFLAGS@ to SHOBJ_LDFLAGS assignment -- experimental. Suggested
- by Mike Frysinger <vapier@gentoo.org>
-
-examples/loadables/{basename,cut,dirname,finfo,head,ln,logname,mkdir,pathchk,print,printenv,push,realpath,rmdir,sleep,tee,truefalse,tty,uname,unlink,whoami}.c
- - fix up some includes. Fix from Mike Frysinger <vapier@gentoo.org>
-
- 8/21
- ----
-histexpand.c
- - fix another memory leak in history_find_word. Bug report originally
- from Michael Snyder <msnyder@sonic.net>; test case suggested by Jim
- Blandy <jimb@codesourcery.com>
-
- 8/26
- ----
-subst.c
- - change to do_assignment_internal to make an assignment to a variable
- with the `noassign' internal attribute not a variable assignment
- error.
- - fix do_assignment_internal so assignment to a `noassign' variable
- does not cause it to suddenly become visible if it's currently
- invisible
-
- 9/3
- ---
-stringlib.c
- - change strsub to check whether or not temp is non-null before
- trying to null-terminate it. Also make sure temp is allocated
- even if the pattern and replacement strings are empty, and set
- to a copy of string (like ${foo//})
- Bug report from Timo Lindfors <timo.lindfors@iki.fi>
-
- 9/10
- ----
-{config.h,Makefile,configure}.in,aclocal.m4
- - new tests for fpurge and __fpurge
-
-lib/sh/fpurge.c, externs.h
- - new file, fpurge(3) implementation with external decl in externs.h
-
-builtins/common.c
- - add call to fpurge(stdout) to sh_chkwrite
-
-{redir,execute_cmd}.c
- - add call to fpurge(stdout) after fflush(stdout) before changing
- stdout file descriptor and after a builtin or function executes
-
- 9/12
- ----
-expr.c
- - make sure noeval is set to 0 when a longjmp occurs, since it will
- not be reset otherwise, and it can be set to 1 while processing
- a {pre,post}-increment or {pre,post}-decrement token
- - set noeval to 0 at the beginning of evalexp, since it's never
- called recursively
-
- 9/14
- ----
-config-top.h
- - new builder-modifiable define: DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS
- Turning it on will cause errors from EPIPE to not be reported by
- the normal shell write error message mechanism
-
-builtins/common.c
- - if DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS is defined, don't print an
- error message from sh_wrerror if errno == EPIPE. Suggestion from
- Petr Sumbera <petr.sumbera@sun.com>
-
- 9/19
- ----
-{jobs,nojobs}.c,jobs.h
- - add code to retry fork() after EAGAIN, with a progressively longer
- sleep between attempts, up to FORKSLEEP_MAX (16) seconds. Suggested
- by Martin Koeppe <mkoeppe@gmx.de>
-
- 9/21
- ----
-version.c
- - change copyright year to 2007
-
- 9/25
- ----
-pathexp.c
- - change quote_string_for_globbing to add a backslash in front of a
- backslash appearing in the pathname string, since the globbing
- code will interpret backslashes as quoting characters internally.
- Bug reported by <herbert@gondor.apana.org.au> on the debian list
- (443685)
-
- 10/8
- ----
-lib/readline/display.c
- - in update_line, make sure _rl_last_c_pos is > 0 before setting
- cpos_adjusted (or we actually moved the cursor to column 0 in
- _rl_move_cursor_relative). Fixes redisplay bug with prompt with
- only invisible characters reported by dAniel hAhler
- <ubuntu@thequod.de>
-
- 10/10
- -----
-lib/readline/display.c
- - in rl_redisplay, when calculating the new physical cursor position
- in a multibyte locale (`tx'), do not call rl_backspace if tx ends
- up < 0. Rest of fix for bug reported by dAniel hAhler
- <ubuntu@thequod.de>
-
- 10/12
- -----
-lib/sh/getcwd.c
- - fix memory overwrite problem that's possible if buf is NULL and
- passed size is greater than the pathname length. Reported by
- Ian Campbell <ian.campbell@xensource.com>
-
-builtins/ulimit.def
- - change the multiplier for the -c and -f options (`blocks') to 512,
- the traditional value (and the one POSIX specifies). Bug reported
- by Pete Graner <pgraner@redhat.com>
-
-braces.c
- - pass process substitution through unchanged the same as command
- substitution. Prompted by suggestion from Stephane Chazelas
- <stephane_chazelas@yahoo.fr>
-
-lib/readline/input.c
- - in rl_unget_char, fix off-by-one error when resetting pop_index if
- it's < 0. Bug reported by Uwe Doering <gemini@geminix.org>
-
-builtins/type.def
- - change exit status of `type' to not successful if any of the
- requested commands are not found. Reported by Stephane Chazleas
- <stephane_chazelas@yahoo.fr>
-
-pcomplete.c
- - change command_line_to_word_list to use rl_completer_word_break_characters
- instead of the shell metacharacters to split words, so programmable
- completion does the same thing readline does internally. Reported
- by Vasily Tarasov <vtaras@sw.ru>
-
- 10/16
- -----
-bashline.c
- - When completing a command name beginning with a tilde and containing
- escaped specical characters, dequote the filename before prefixing
- it to the matches, so the escapes are not quoted again. Reported
- by neil@s-z.org
-
- 10/17
- -----
-expr.c
- - in readtok(), don't reset lasttp if we've consumed the whitespace
- at the end of the expression string. Fixes error message problem
- reported by <anmaster@tele2.se>
-
- 11/1
- ----
-builtins/printf.def
- - change asciicode() to return intmax_t; add multibyte character
- support instead of assuming ASCII (depending on behavior of system
- multibyte support functions). Fixes bug reported by Rich
- Felker <dalias@aerifal.cx>
-
- 11/5
- ----
-execute_cmd.c
- - if redirections attached to a compound command fail, make sure to
- set last_command_exit_value when returning EXECUTION_FAILURE.
- Fixes bug reported separately by Andreas Schwab <schwab@suse.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- 11/9
- ----
-builtins/read.def
- - make sure the return value from get_word_from_string is freed if
- non-null. Fixes memory leak bug reported by Lars Ellenberg
- <lars.ellenberg@linbit.com>
-
- 11/10
- -----
-variables.c
- - use getpid() as value of seeded_subshell to avoid problems with
- random number generator not getting re-seeded correctly when
- subshells are created. Fix from Tomas Janousek <tjanouse@redhat.com>
-
-lib/readline/display.c
- - in update_line(), when outputting characters at the end of the line,
- e.g., when displaying the prompt string, adjust _rl_last_c_pos by
- wrap_offset if the text we're drawing begins before the last
- invisible character in the line. Similar to fix from 5/24. Fixes
- bug reported by Miroslav Lichvar <mlichvar@redhat.com>
-
- 11/14
- -----
-subst.c
- - fix $[ expansion case to deal with extract_arithmetic_subst
- returning NULL (if the `]' is missing) and return the construct
- unchanged in that case. Fixes tab completion bug reported by
- Heikki Hokkanen <hoxu@users.sf.net> (debian bug 451263)
-
-lib/readline/mbutil.c
- - fix _rl_find_next_mbchar_internal to deal with invalid multibyte
- character sequences when finding non-zero-length chars. Fixes
- bug reported by Morita Sho <morita-pub-en-debian@inz.sakura.ne.jp>
-
- 11/15
- -----
-variables.c
- - add new function `seedrand' to seed the bash random number
- generator from more random data. Suggestion from Steve Grubb
- <sgrubb@redhat.com>
- - replace the rng in brand() with a slightly better one from FreeBSD
- (filtered through Mac OS X 10.5). Replacement suggested by
- Steve Grubb <sgrubb@redhat.com>
-
- 11/21
- -----
-configure.in
- - darwin 9 also requires linking against libreadline.a and
- libhistory.a because of Apple's questionable decision to ship a
- libreadline "replacement" that doesn't provide all functions
-
-doc/{bash.1,bashref.texi}
- - slight change to the text describing the effect of set -e when
- in a || or && list
-
- 12/5
- ----
-jobs.c
- - fix raw_job_exit_status to correct mixing of int/WAIT values (need
- to return a WAIT)
- - arrange so that children run as part of command substitutions also
- set the SIGINT handler to wait_sigint_handler, since they effectively
- don't do job control
- - in wait_for, if a child run as part of a command substitution exits
- due to SIGINT, resend the SIGINT to the waiting shell with kill(2).
- This makes sure the exit status propagates
-
-doc/{bash.1,bashref.texi}
- - tighten up the language describing when bash tries to see if its
- stdin is a socket, so it can run the startup files. Suggested by
- Vincent Lefevre <vincent@vinc17.org>
-
-eval.c
- - in the DISCARD case of a longjmp to top_level, make sure
- last_command_exit_value is set to EXECUTION_FAILURE if it's 0,
- but leave existing non-zero values alone
-
-subst.c
- - in command_substitute, don't reset pipeline_pgrp in the child
- process -- this means that second and subsequent children spawned by
- this comsub shell get put into the wrong process group, not the
- shell's. Fix for bug reported by Ingo Molnar <mingo@elte.hu>
-
- 12/6
- ----
-support/shobj-conf
- - make sure the cases for darwin8.x (Mac OS X 10.4.x) are extended to
- darwin9.x (Mac OS X 10.5.x). Fixes problem originally reported
- against readline-5.2 by schneecrash@gmail.com
-
- 12/8
- ----
-subst.c
- - make sure to add the results of (successful) tilde expansion as a
- quoted string, to inhibit pathname expansion and word splitting.
- From recent Austin Group interpretation.
-
-include/shtty.h, lib/sh/shtty.c
- - add ttfd_onechar, ttfd_noecho, ttfd_eightbit, ttfd_nocanon, and
- ttfd_cbreak to set tty attributes associated with a particular
- file descriptor (which is presumed to point to a terminal). Support
- for fix for bug reported by b_bashbug@thebellsplace.com
-
-lib/readline/display.c
- - make sure we only use rl_invis_chars_first_line when the number of
- physical characters exceeds the screen width, since that's the
- only time expand_prompt sets it to a valid value
-
- 12/12
- -----
-builtins/set.def
- - change set_minus_o_option to return EX_USAGE if an invalid option
- name is supplied. All callers can handle it.
- - change set_builtin to return what set_minus_o_option returns if it's
- not EXECUTION_SUCCESS. This allows EX_USAGE errors to abort a
- shell running in posix mode
-
- 12/14
- -----
-builtins/read.def
- - generalize the calls to the tty attribute functions to maintain a
- local copy of the terminal attributes and use the fd supplied as
- the argument to the -u option (default 0). Fix for bug reported
- by b_bashbug@thebellsplace.com
-
-doc/bashref.texi, lib/readline/doc/{history,rlman,rluser,rluserman}.texi
- - Slight changes to conform to the latest FSF documentation standards.
- Patch from Karl Berry <karl@freefriends.org>
-
- 12/20
- -----
-execute_cmd.c
- - after calling clear_unwind_protect_list, make sure we reset
- parse_and_execute_level to 0, since there's nothing left to
- restore it if top_level_cleanup tests it. Fixes bug reported
- by Len Lattanzi <llattanzi@apple.com>
-
- 12/31
- -----
-lib/sh/getcwd.c
- - new function, _path_checkino, checks whether the inode corresponding
- to the path constructed from the first two arguments is the same as
- the inode number passed as the third argument
- - if BROKEN_DIRENT_D_INO is defined, meaning the d_ino/d_fileno
- member of struct dirent doesn't contain valid values, use
- _path_checkino instead of directly comparing against d_fileno.
- Fixes Interix problem reported by Michael Haubenwallner
- <haubi@gentoo.org>
-
- 1/7/2008
- --------
-array.c
- - fix array_subrange to separate elements in returned string with
- first char of $IFS if QUOTED is non-zero, since this indicates
- the caller used ${array[@]:foo}. Fixes bug reported by Lea
- Wiemann <lewiemann@gmail.com>
-
- 1/8
- ---
-subst.c
- - new function returning a string containing the first character of
- $IFS: char *ifs_firstchar(int *)
-
-subst.h
- - extern declaration for ifs_firstchar()
-
-array.c
- - call ifs_firstchar() to get first character of $IFS when needed
- (array_subrange() and array_patsub())
-
- 1/11
- ----
-lib/readline/display.c
- - use sentinel variable set at end of init_line_structures to decide
- whether to call it from rl_redisplay, since early SIGWINCH on
- Mac OS X that hits during this function can cause _rl_wrapped_line
- to be referenced before initialization. Fix for bug reported by
- Len Lattanzi <llattanzi@apple.com>
-
-subst.[ch]
- - skip_to_delim is now compiled into the shell all the time, not just
- when readline is linked in
-
-subst.c
- - use skip_to_delim to find the `/' denoting the end of a pattern
- in pattern substitution, since it knows more shell syntax than
- quoted_strchr and understands multibyte characters. Fixes bug
- reported by Dmitry V Golovashkin <Dmitry.Golovashkin@sas.com>
-
- 1/15
- ----
-subst.c
- - add `flags' argument to skip_to_delim telling it whether or not to
- set no_longjmp_on_fatal_error; set this flag when calling from the
- readline completion code
-
-subst.h
- - update extern declaration for skip_to_delim
-
- 1/17
- ----
-subst.c
- - expand_prompt_string takes a third argument: the initial flags for
- the WORD
-
-subst.h
- - change extern declaration for expand_prompt_string to add third arg
-
-bashline.c
- - pass W_NOCOMSUB as third argment to expand_prompt_string when
- calling from bash_directory_completion_hook, since we don't want
- to do command substitution from the completion code
-
-parse.y
- - change call to expand_prompt_string
-
- 1/18
- ----
-doc/Makefile.in
- - added an `install_builtins' rule to install the builtins.1 man page,
- preprocessing it with sed to force `.so man1/bash.1', which some
- versions of man require. Suggestion from Peter Breitenlohner
- <peb@mppmu.mpg.de>
- - new target `install_everything' that will install normal documentation
- and builtins man page
- - changed uninstall target to remove bash_builtins page from man
- directory
-
-lib/readline/vi_mode.c
- - new function, rl_vi_insert_mode, which calls rl_vi_start_inserting
- to make sure the value of `last command to repeat' is set correctly.
- Fix from Thomas Janousek <tjanouse@redhat.com>
- - add support for redoing inserts made with the `I' command. Fix
- from Thomas Janousek <tjanouse@redhat.com>
- - add support for redoing inserts made with the `A' command
-
-lib/readline/readline.h
- - new extern declaration for rl_vi_insert_mode
-
-lib/readline/{misc,readline,vi_mode,vi_keymap}.c
- - change calls to rl_vi_insertion_mode to rl_vi_insert_mode
-
- 1/19
- ----
-builtins/read.def
- - change timeout behavior when not reading from a tty device to save
- any partial input in the variable list, but still return failure.
- This also causes variables specified as arguments to read to be
- set to null when there is no input available. Fix inspired by
- Brian Craft <bcboy@thecraftstudio.com>
-
- 1/21
- ----
-builtins/fc.def
- - change computation of last_hist to use remember_on_history instead
- of a hard-coded `1'. This keeps fc -l -1 in PROMPT_COMMAND from
- looking too far back
-
- 1/25
- ----
-lib/readline/complete.c
- - fix fnwidth to use string[pos] instead of *string when testing the
- current character for a control character or rubout
-
- 2/2
- ---
-general.c
- - change posix_initialize to turn off source/. searching $PWD when
- the file sourced is not found in $PATH. Fixes bug reported by
- Paolo Bonzini <bonzini@gnu.org> and Eric Blake <ebb9@byu.net>
-
- 2/9
- ---
-builtins/*.def
- - changes to text and formatting suggested by Jan Schampera
- <jan.schampera@web.de>
-
- 2/16
- ----
-bashline.c
- - change command_word_completion_function to use the word completion
- found by readline, which matters only when ignoring case is on
- and the completion found in the file system differs in case from
- the text the user typed (this is what readline does for normal
- filename completion). Fixes issue reported by Jian Wang
- <jwang@a10networks.com.cn>.
-
- 2/18
- ----
-builtins/source.def
- - if the filename passed as an argument contains a `/', don't search
- $PATH. Not sure why it wasn't like this before
-
- 2/21
- ----
-lib/readline/terminal.c
- - change rl_crlf so that the MINT system on ATARI systems adds a
- carriage return before the \n
-
- 2/22
- ----
-doc/{bash.1,bashref.texi}
- - added text to the EXIT STATUS section noting that exit statuses
- fall between 0 and 255, inclusive
-
-support/mkversion.sh
- - output a #define for DEFAULT_COMPAT_LEVEL (${major}${minor}; e.g. 32)
- to version.h
-
-version.c
- - int variable, shell_compatibility_level, set to DEFAULT_COMPAT_LEVEL
- by default
-
-builtins/shopt.def
- - new shopt variable, compat31, sets shell_compatibility_level to 31
- (or back to default if unset)
-
-execute_cmd.c
- - in execute_cond_node, restore bash-3.1 behavior of quoted rhs of
- regexp matches if shell_compatibility_level == 31
-
- 2/28
- ----
-lib/readline/rltty.c
- - set readline_echoing_p = 1 if tcgetattr fails and sets errno to
- EINVAL, as Linux does when the fd is a pipe. Reported by Mike
- Frysinger <vapier@gentoo.org>
-
- 3/6
- ---
-{MANIFEST,Makefile.in},lib/sh/{casemod,uconvert,ufuncs}.c
- - new library sources from bash-4.0-devel tree
-
-lib/sh/spell.c
- - moved cdspell() here from builtins/cd.def, renamed dirspell()
-
-externs.h
- - new declarations for extern functions from new library files
- - new extern declaration for lib/sh/spell.c:dirspell()
-
-builtins/cd.def
- - call extern library function dirspell(); remove static cdspell()
-
-builtins/read.def
- - when read times out, make sure input_string is null-terminated before
- assigning any partial input read to the named variables
-
- 3/10
- ----
-lib/glob/xmbsrtowcs.c
- - cut the number of memory allocations in xdupmbstowcs by not keeping
- track of the indices if the caller hasn't asked for it
-
- 3/17
- ----
-builtins/fc.def
- - make sure the adjustment to i in fc_gethnum uses the same formula
- fc_builtin uses to calculate last_hist
- - make sure that every time fc_gethnum is called, the fc command last
- in the history list has not yet been deleted, since fc_gethnum
- assumes that it has not. Fix from John Haxby <john.haxby@oracle.com>
-
-lib/readline/complete.c
- - new private library function, _rl_reset_completion_state(), used to
- reset any completion state internal to the library when a signal
- is received
- - call _rl_reset_completion_state() before returning from
- rl_complete_internal
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_reset_completion_state
-
-lib/readline/signals.c
- - call _rl_reset_completion_state from rl_signal_handler on SIGINT.
- This fixes one of the problems identified by Mika Fischer
- <mf+ubuntu@zoopnet.de>
-
-pcomplete.c
- - programmable_completions now saves pointer to the compspec it's
- working with in new global variable CURCS
- - new function, pcomp_set_readline_variables, that sets or unsets
- readline variables based on a passed flags value (COPT_FILENAMES,
- etc.)
- - new function, pcomp_set_compspec_options, to set or unset bits in
- the options word of a passed compspec (default CURCS)
- - only call bash_dequote_filename (via rl_filename_dequoting_function)
- from pcomp_filename_completion_function if the readline state
- word indicates word completion is in progress
-
-pcomplete.h
- - new extern declaration for curcs
- - new extern declaration for pcomp_set_readline_variables
- - new extern declaration for pcomp_set_compspec_options
-
-bashline.c
- - fix bash_dequote_filename to implement shell quoting conventions:
- 1. Inhibit backslash stripping within single quotes
- 2. Inhibit backslash stripping within double quotes only if
- the following character is one of the special ones
- - call pcomp_set_readline_variables from attempt_shell_completion
- instead of doing the equivalent inline
-
- 3/18
- ----
-bracecomp.c
- - make sure we sort array of matches in byte order (using strcmp). so
- the brace calculations work correctly even when the locale orders
- characters like aAbBcC...zZ. Fixes bug reported by Torsten Nahm
- <torstennahm@torstennahm.de>
-
- 3/20
- ----
-lib/readline/{rltty,signals}.c
- - move block_sigint and release_sigint from rltty.c to signals.c; add
- _rl_ prefix to make them public to the library; change callers.
- From Jan Kratchovil <jan.kratchovil@redhat.com>
-
-lib/readline/rlprivate.h
- - new extern declarations for _rl_block_sigint and _rl_release_sigint
-
-lib/readline/display.c
- - add calls to _rl_block_sigint and _rl_release_sigint to rl_redisplay,
- since it maniupluates global data structures. Fix from Jan
- Kratchovil <jan.kratchovil@redhat.com>
-
-builtins/printf.def
- - change calls to asprintf and manually adding to vbuf to use calls
- to vsnprintf against vbuf directly -- if the number of characters
- to be written overflows the buffer, realloc the buffer and use
- vsnprintf again. This should reduce the memory used by printf.
- Idea from Yuya Katayama <yuya999@gmail.com>
-
-lib/readline/doc/rltech.texi
- - documented rest of readline's state flags, including RL_STATE_CALLBACK
- - documented rl_save_state and rl_restore_state
-
- 3/27
- ----
-lib/readline/{rlprivate.h,{display,readline,rltty,terminal,text}.c}
- - rename readline_echoing_p to _rl_echoing_p for namespace consistency
-
-lib/readline/{rlprivate.h,{callback,readline,util}.c}
- - rename readline_top_level to _rl_top_level for namespace consistency
-
-builtins/ulimit.def
- - new -b (socket buffer size) and -T (number of threads) options
-
-array.c
- - fix bug in calculation of the array element assignment string length:
- use length of `is' instead of `indstr'. Reported as ubuntu bug
- #202885 by John McCabe-Dansted
-
-builtins/setattr.def
- - new function, show_all_var_attributes, displays attributes and
- values for all shell variables (or shell functions) in a reusable
- format
-
-builtins/common.h
- - new extern declaration for show_all_var_attributes
-
-builtins/declare.def
- - change `declare -p' to print out all variable attributes and values,
- and `declare -fp' to print out all function attributes and
- definitions. Inspired by request from John Love-Jensen
- <eljay@adobe.com>
-
-doc/{bash.1,bashref.texi}
- - document new -b and -T options to ulimit
- - tighten up language describing AND and OR lists
- - add description of new behavior of `declare -p'
-
- 3/28
- ----
-pcomplete.c
- - rename curcs -> pcomp_curcs
- - new global completion variable, pcomp_curcmd, the current command
- name being completed
-
-builtins/complete.def
- - new builtin, compopt, allows completion options for command names
- supplied as arguments or the current completion being executed to
- be modified. Suggested by Mika Fischer <mf+ubuntu@zoopnet.de>
-
- 3/30
- ----
-doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi
- - document new compopt builtin
-
- 4/5
- ---
-support/shobj-conf
- - change solaris10 stanza to use -fPIC to fix 64-bit sparc_v9/solaris10
- compilations. Fix from Fabian Groffen <grobian@gentoo.org>
-
-builtins/read.def
- - added `-i text' option, inserts `text' into line if using readline.
- Suggested by many, used some ideas from Kevin Pulo <kevin@pulo.com.au>
-
-doc/{bash.1,bashref.texi}
- - document new `-i text' option to read builtin
-
- 4/7
- ---
-lib/readline/bind.c
- - new settable variable, `history-size', sets the max number of
- entries in the history list
-
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
- - document new `history-size' settable readline variable
-
- 4/8
- ---
-builtins/complete.def
- - change build_actions calling sequence to take a struct with `other'
- (non-action) flag arguments (-p, -r)
- - add support for `-E' option to build_actions and complete builtin --
- modifies or displays (internal) `_EmptycmD_' completion spec
-
-bashline.c
- - change attempt_shell_completion to try programmable completion on an
- `empty' command line and return the results
-
-doc/bash.1,lib/readline/doc/rluser.texi
- - documented new `-E' option to `complete'
-
- 4/9
- ---
-bashhist.c
- - new variable, `enable_history_list', used to reflect setting of
- `-o history' option
- - change bash_history_{enable,disable,reinit} to set enable_history_list
- as well as remember_on_history
-
-builtins/set.def
- - use `enable_history_list' instead of `remember_on_history' to keep
- value of `-o history' option
-
-builtins/evalstring.c
- - instead of unwind-protecting remember_on_history, use a function to
- restore it to the value of `enable_history_list' after
- parse_and_execute runs the commands in the string. This allows
- history to be turned off in a startup file, for instance. Problem
- reported by Dan Jacobson <jidanni@jidanni.org>
-
- 4/11
- ----
-bashline.c
- - limited support for completing command words with globbing characters
- (only a single match completed on TAB, absolute or relative
- pathnames supported, no $PATH searching, some support for displaying
- possible matches, can be used with menu completion).
- Suggested by Harald Koenig <h.koenig@science-computing.de>
-
-print_cmd.c
- - change redirection printing to output r_err_and_out as `&>file',
- since the man page says that's the preferred form
-
- 4/12
- ----
-builtins/*.def
- - change long doc so the first line is a short description
- - add `Exit Status:' section to each longdoc describing exit values
-
-builtins/help.def
- - new `-d' option to print short description of each utility
- - new `-m' option to print description of each builtin in a
- pseudo-manpage format (inspired by ksh93)
-
-doc/{bash.1,bashref.texi}
- - document new `-d' and `-m' options to `help'
-
-builtins/mapfile.def
- - new builtin, `mapfile', imported from bash-4.0-devel branch
-
-tests/{mapfile.{data,right,tests},run-mapfile}
- - tests for `mapfile' builtin
-
-doc/{bash.1,bashref.texi}
- - added description of `mapfile' builtin
-
-MANIFEST,Makefile.in,builtins/Makefile.in
- - added entries for mapfile source files
-
-arrayfunc.[ch]
- - new function, bind_array_element, to support mapfile builtin
-
- 4/20
- ----
-expr.c
- - fix operator precendence in expcond(): term after the `:' is
- a conditional-expression, not a logical-OR-expression (using C
- terminology). Bug reported by <archimerged@gmail.com>
-
- 4/22
- ----
-bashintl.h
- - new P_ define for using ngettext to decide on plural forms
- (currently unused)
-
- 4/25
- ----
-execute_cmd.c
- - in execute_disk_command, if the command is not found, search for
- a shell function named `command_not_found_handle' and call it
- with the words in the command as arguments. Inspired by Debian
- feature.
-
-doc/{bash.1,bashref.texi}
- - document new command_not_found_handle behavior in COMMAND EXECUTION
- section
-
-configure.in
- - change default version to bash-4.0-devel
-
- 4/28
- ----
-variables.c
- - change push_func_var and push_exported_var to call
- stupidly_hack_special_variables if the temporary variable is going
- to be disposed. This undoes any internal changes caused by a local
- variable assignment in the environment or in a shell function. Bug
- reported by Morita Sho <morita-pub-en-debian@inz.sakura.ne.jp> in
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096
-
- 5/3
- ---
-builtins/fc.def
- - fixed a problem caused by change of 1/21 to use remember_on_history,
- since it's turned off by parse_and_execute(), but can cause the
- last command in history to be deleted and leave last_hist pointing
- beyond the end of the history list. edit_and_execute_command can
- do this.
-
-bashline.c
- - new define, RL_BOOLEAN_VAR_VALUE, to take a readline boolean variable
- and get its value as 0 or 1 (consider making readline global)
- - put tty back into canonical mode before calling parse_and_execute in
- edit_and_execute_command and then back into raw mode after it
- returns. Fixes problem identified by <koersen@gmail.com>.
-
- 5/4
- ---
-lib/glob/glob.c
- - code to support `globstar' option: GX_GLOBSTAR and two internal
- flags. Changes to skipname, glob_vector, mbskipname, glob_filename.
- New function finddirs().
-
-lib/glob/glob.h
- - new defines to support globstar code
-
-builtins/shopt.def
- - new shell option, `globstar', enables special handling of `**' in
- glob patterns -- matches all directories recursively
-
-pathexp.h
- - extern declaration for glob_star
-
-pathexp.c
- - break inline code out of quote_globbing_chars into a separate
- function to decide whether a character is a globbing char:
- glob_char_p
- - change shell_glob_filename to call glob_filename with the
- GX_GLOBSTAR flag if glob_star is set
-
-doc/{bash.1,bashref.texi}
- - document new `globstar' shell option
-
-arrayfunc.c
- - new function, broken out of quote_array_assignment_chars:
- quote_assign; extended from old code to make sure that globbing
- chars and chars in $IFS are quoted when displaying assignment
- statements, especially in compound array assignments
-
- 5/5
- ---
-bashline.c
- - new variable, dircomplete_spelling, controls spelling correction
- of directory names when doing filename completion
- - change bash_directory_completion_hook to incorporate spelling
- correction if initial canonicalization of directory name fails
-
-builtins/shopt.def
- - new shell option, `dirspell', enables and disables spelling
- correction of directory names during word completion
-
-builtins/read.def
- - support for fractional timeout values (ival.uval); uses uconvert
- and falarm/setitimer
-
-config.h.in
- - new `HAVE_SETITIMER' define
-
-configure.in
- - look for setitimer(2), define HAVE_SETITIMER if found
-
-doc/{bash.1,bashref.texi}
- - document new `dirspell' shopt option
- - document new fractional values to `read -t timeout'
-
- 5/6
- ---
-assoc.[ch]
- - new files, basic support for associative array implementation
-
-general.h
- - new extern declarations for sh_openpipe, sh_closepipe, trim_pathname
-
-general.c
- - new functions: sh_openpipe to create a pipe and move the file
- descriptors to a high range; sh_closepipe, to close pipe fds and
- clean up, and trim_pathname, to replace portions of a pathname
- with `...' (for prompting)
-
-jobs.c
- - don't set last_asynchronous_pid in child shell (messes up $!, among
- other things)
-
-parse.y,parser.h
- - moved definitions of parser flags to parser.h
-
-array.c
- - imported array_modcase (case-changing operations on arrays) from
- 4.0-devel branch
-
-array.h
- - new extern declaration for array_modcase
-
-lib/readline/complete.c
- - new variable, rl_menu_completion_entry_function, generator for
- rl_menu_complete
- - new menu completion `browsing' implementation, with several
- improvements over the old code. Inspired by Sami
-
-lib/readline/readline.h
- - extern declaration for rl_menu_completion_entry_function
-
- 5/8
- ---
-lib/readline/complete.c
- - add support for a third argument to fnprint and print_filename,
- which supports replacing a specified portion of the pathnames
- printed when displaying possible completions with a `...' (or
- `___', if the prefix would be confused with a portion of the
- filename)
- - new variable, _rl_completion_prefix_display_length, sets the
- number of characters in a common prefix to be replaced with an
- ellipsis when displaying possible completions
- - add support to _rl_display_match_list to find the length of the
- common prefix of all items being displayed, and passing that
- value to print_filename for possible replacement with an ellipsis
- if that length is longer than _rl_completion_prefix_display_length
-
-lib/readline/bind.c
- - add support for retrieving value of history-size variable to
- _rl_get_string_variable_value
- - new bindable variable, completion-prefix-display-length. When
- displaying possible completions, matches with a common prefix
- longer than this value have the common prefix replaced with an
- ellipsis
- - support for retrieving value of completion-prefix-display-length
- variable to _rl_get_string_variable_value
- - new bindable variable, revert-all-at-newline: if enabled, causes
- all changes in history lines to be undone before readline returns
- after processing a newline
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - document new `completion-prefix-display-length' variable
- - document new `revert-all-at-newline' variable
-
-execute_cmd.c
- - change execute_builtin to not inherit the `-e' flag into commands
- executed by the `command' or `source/.' builtins if we are supposed
- to be ignoring the return value. This is like `eval'. Fixes bug
- reported by Hiroshi Fujishima <hirobo@tonteki.org>
-
- 5/10
- ----
-variables.c
- - when reading the initial environment, don't create variables with
- names that are not valid shell identifiers. Fixes bug reported by
- Stephane Chazleas <stephane_chazelas@yahoo.fr>
-
- 5/13
- ----
-subst.c
- - fix string_quote_removal to gracefully handle the case where a
- backslash is the final character in the string (leaves the backslash
- in place). Fixes bug reported by Ian Robertson
- <iroberts@u.washington.edu>
-
- 5/16
- ----
-support/checkbashisms
- - Perl script that purports to check for bash-specific features in a
- shell script. Lifted from Debian via ubuntu
-
- 5/20
- ----
-lib/readline/display.c
- - in update_line, when deciding whether or not to adjust _rl_last_c_pos
- in a multibyte environment after printing the last line of a multiline
- prompt with invisible characters on the first and last lines, use
- the number of inivisible chars on the first line in the calculation
- deciding whether or not we're past the last invisible character and
- need to adjust the cursor position. Old code used the number of
- invisible chars on the last prompt line. Fixes bug reported by
- stuff@slinkp.com.
- - in update_line, when fixing _rl_last_c_pos after drawing the first
- line of the prompt, use the number of invisible chars on the first
- line as the offset, instead of the total number of invisible chars
- - use prompt_multibyte_characters, the number of multibyte chars in
- the prompt string, to short-circuit some relatively expensive
- multibyte text processing in rl_redisplay
-
- 5/21
- ----
-variables.c
- - new function, reinit_special_variables(), a hook for special
- vars that need their hook functions called when they're unset as
- a result of the shell reinitializing itself to run a script
-
-shell.c
- - shell_reinitialize now calls reinit_special_variables
- - shell_reinitialize now calls bashline_reset
-
-variables.h
- - new extern declaration for reinit_special_variables
-
-bashline.c
- - new function, bashline_reset(), called when the shell reinitializes
- in shell_reinitialize. Right now, just resets
- bash_readline_initialized to 0.
-
-bashline.h
- - new extern declaration for bashline_reset()
-
- 5/23
- ----
-bashhist.c
- - new function, bash_clear_history, clears the history and resets any
- associated internal bash state
-
-bashhist.h
- - extern declaration for bash_clear_history
-
-builtins/history.def
- - call bash_clear_history instead of clear_history for `history -c'.
- Fixes part of problem reported by Scott McDermott
- <scott.m.mcdermott@gmail.com>
- - decrement history_lines_this_session in delete_histent, called for
- `history -d'
-
-builtins/history.def,bashhist.[ch]
- - move delete_histent() to bashhist.c; rename to bash_delete_histent
- - move delete_last_history() to bashhist.c; rename to
- bash_delete_last_history()
-
- 5/25
- ----
-braces.c
- - add another parameter to mkseq(), the number of digits to put into
- each member of a numeric sequence (width), changes to determine
- any zero-padding go into expand_seqterm
- - changes to expand_seqterm to allow user-specified increments
-
-bashline.[ch],shell.c,sig.c
- - switched names of bashline_reinitialize and bashline_reset to better
- reflect their functions
- - when searching $PATH for directories to use for command completion,
- make sure to free `current_path' before going out of scope
- - new bindable function `dabbrev-expand', which is more or less
- menu completion using dynamic history completion as the generator
- - changes to bash_execute_unix_command to set variables for the
- executed command like programmable completion: READLINE_LINE
- (rl_line_buffer) and READLINE_POINT (rl_point)
- - change to bash_execute_unix_command to allow the executed command
- to change the readline line buffer by modifying the value of
- READLINE_LINE and to change rl_point by modifying the value of
- READLINE_POINT
-
-common.h
- - new SEVAL_ defines for later parse_string changes from 4.0-devel
- branch
-
-command.h
- - new defines for new &>> r_append_err_and_out redirection
-
-builtins/evalstring.c
- - new function, parse_string, parses a command from a passed string
- and returns the number of characters consumed. For satisfying
- Posix rules when parsing command substitutions, from bash-4.0-devel
- branch
- - split out common prolog code from parse_string and
- parse_and_execute into a separate function called from both
-
-parse.y
- - small changes to add symbols needed for parse_string
- - parser change to add `|&' as synonym for `2>&1 |'; translation is
- performed at parse time so |& never shows up in output of
- print_command, for instance. Picked up from zsh, merged in from
- bash-4.0-devel branch
-
-parse.y,{redir,copy_cmd,dispose_cmd,make_cmd,print_cmd}.c
- - implement new &>> r_append_err_and_out (like >>foo 2>&1); merged
- in from bash-4.0-devel branch
-
-doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi
- - document new optional increment in brace expansion
- - document new zero-padded fixed-width integer brace expansion
- - document new `dabbrev-expand' bindable readline command
- - document new effects of `bind -x' setting and reading the values of
- READLINE_LINE and READLINE_POINT
- - document new |& synonym for `2>&1 |' pipeline operator
-
- 5/26
- ----
-parse.y - recognize new ;& and ;;& case action list terminator tokens and
- implement them in the grammar, setting CASEPAT_FALLTHROUGH and
- CASEPAT_TESTNEXT flags as appropriate
-
-print_cmd.c
- - print new ;& and ;;& case clause action list terminators as
- appropriate
-
-execute_cmd.c
- - implement new case clause action list terminators:
- ;& - fall through to actions associated with next pattern list
- ;;& - fall through to tests in next pattern list
-
-doc/{bash.1,bashref.texi}
- - document new ;& and ;;& case clause action list terminators
-
- 5/28
- ----
-jobs.c
- - change waitchld so it treats SIGCHLD like SIGINT if `wait' is being
- executed, and allows wait to jump out before running any trap set
- on SIGCHLD. Fixes debian bug #483016 reported by Miroslav Rudisin
- <miero@atrey.karlin.mff.cuni.cz>
- - run_sigchld_trap is no longer static, so the trap code in trap.c
- can call it
- - change run_sigchld_trap to call set_impossible_sigchld_trap instead
- of just using a call to restore_default_signal
-
-jobs.h
- - new extern declaration for run_sigchld_trap
-
-trap.c
- - fix run_pending_traps to run a SIGCHLD trap if the trap handler isn't
- set to IMPOSSIBLE_TRAP_HANDLER
- - in trap_handler, don't reset the SIGCHLD trap handler to trap_handler
- if MUST_REINSTALL_SIGHANDLERS is defined
- - new function, set_impossible_sigchld_handler, sets the trap string
- associated with SIGCHLD to IMPOSSIBLE_TRAP_HANDLER; used as a sentinel
- by run_sigchld_trap and maybe_set_sigchld_handler
- - change maybe_set_sigchld_handler to set the SIGCHLD trap string only
- if the current value is IMPOSSIBLE_TRAP_HANDLER. This ensures that
- any traps on SIGCHLD set in a SIGCHLD handler will persist. Fixes
- debian bug #483016 reported by Miroslav Rudisin
- <miero@atrey.karlin.mff.cuni.cz>
-
-trap.h
- - new extern declaration for set_impossible_sigchld_trap
-
- 5/31
- ----
-parse.y
- - new function: parse_comsub(), parses $(...) by parsing command
- between parens and making sure the next token is `)'. From
- the bash-4.0-devel branch
- - new function: xparse_dolparen, helper function for parsing
- command substitutions in $(...). Called from subst.c to extract
- a command substitution during word expansion. From bash-4.0-devel
- branch
- - new function: rewind_input_stream(). Rewinds bash_input.location.string
- back to where it was before the shell parsed a $() command
- substitution. From bash-4.0-devel branch
- - changes to parse_matched_pair to combine most of the flag variables
- (was_dollar, in_comment, and so on) into a local flags word
-
- 6/2
- ---
-parse.y
- - call trim_pathname, which retains only the last $PROMPT_DIRTRIM
- directories and replaces the intervening characters with `...',
- when expanding \w and \W
-
-doc/{bash.1,bashref.texi}
- - document the effect of setting PROMPT_DIRTRIM
-
- 6/3
- ---
-builtins/ulimit.def
- - make the multiplier (block size) for -c and -f 512 bytes only if in
- Posix mode and 1024 bytes otherwise (as in previous versions). Uses
- POSIXBLK and BLOCK_SIZE defines to parameterize size based on value
- of posixly_correct
-
-doc/bashref.texi
- - document this addition to posix mode
-
-builtins/common.c
- - change get_numeric_arg to have a calling sequence and return value
- more closely mimicking general.c:legal_number(), with the addition
- of a flags word
- - add extra value for `fatal' argument to get_numeric_arg to force it
- to return failure to the caller rather than longjmping
-
-builtins/common.h
- - change prototype declaration for get_numeric_arg
-
-builtins/{break,shift}.def
- - change calls to get_numeric_arg to deal with new semantics and calling
- sequence
-
-builtins/history.def
- - display_history now returns an int
- - change calling sequence for get_numeric_arg in display_history
- - display_history now returns failure to the caller if get_numeric_arg
- detects an invalid number, rather than jumping back to the top level
- - use value returned by display_history as return status of history
- builtin, filtered through sh_chkwrite
- - history no longer aborts compound commands on invalid arguments.
- fixes problem reported by Chu Li <chul@cn.fujitsu.com>
-
-{braces,subst}.c
- - extract_command_subst now takes a third flags argument; passed flags
- are ORd into flags passed to other functions; changed callers
-
-subst.h
- - move SX_* defines here from subst.c so parse.y:xparse_dolparen can
- see them and behave appropriately
- - extract_command_subst now takes a third flags argument; change
- prototype
-
-subst.c
- - change extract_command_subst to call xparse_dolparen when extracting
- a $() construct
- - change calls to extract_delimited_string to extract_command_subst
- as appropriate
- - if command_substitute returns a NULL word desc, don't call
- dispose_word_desc on it
-
-parse.y
- - change xparse_dolparen to use the SX_* flags now in subst.h
-
- 6/16
- ----
-subst.c
- - in quote_list, set W_HASQUOTEDNULL flag in the word if quote_string
- turns "" into CTLNUL
- - in dequote_list, turn off W_HASQUOTEDNULL flag in the word if
- dequote_string turns CTLNUL into ""
- - new function, string_list_pos_params, encapsulates everything
- needed to turn the positional parameters or an array indexed with
- '@' or '*' into a string, including taking care of quoting and
- using the first char of $IFS, when used in another expansion like
- pattern removal or pattern substitution
- - change list_remove_pattern, pos_params, pos_params_pat_subst to
- call string_list_pos_params. Fixes problems reported by
- Stephane Chazelas <stephane_chazelas@yahoo.fr>
-
- 6/22
- ----
-variables.h
- - include assoc.h for associative arrays
- - defines for case-modifying expansions and associative array variables
- - sh_var_assign_func_t functions now take an extra char * parameter
-
- 6/25
- ----
-variables.c
- - change declarations and definitions of sh_var_assign_func_t functions
- to add the extra char * parameter: null_assign, null_array_assign,
- assign_seconds, assign_random, assign_lineno, assign_subshell,
- assign_dirstack
- - change calls to var->assign_func to add extra char * argument
- - broke part of body of dispose_variable out into a new function,
- dispose_variable_value, which knows how to free all kinds of shell
- variable data
- - changes to deal with variables with the internal `nofree' attribute
-
-arrayfunc.c
- - change calls to var->assign_func to add extra char * argument
- - bind_array_var_internal now takes an extra `char *key' argument
- - additions for associative array implementation; from bash-4.0-devel
- tree
-
-arrayfunc.[ch],subst.c
- - expand_compound_array_assignment now takes the variable as the first
- argument (SHELL_VAR *); changed function definition and callers
-
-builtins/set.def
- - changes to handle associative arrays in `unset'
-
-{execute_cmd,command}.h
- - definitions for coproc implementation; from bash-4.0-devel tree
-
-variables.c
- - new functions for associative arrays: make_new_assoc_variable,
- make_local_assoc_variable
-
- 6/26
- ----
-variables.c
- - more infrastructure for associative arrays; from bash-4.0-devel tree
- - infrastructure for handling assignments to variables with
- case-modifying attributes; from bash-4.0-devel tree
-
-config.h.in
- - add #defines controlling case-modifying variable attributes and word
- expansions
-
-configure.in
- - add enable options for case-modifying variable attributes and word
- expansions (--enable-casemod-attributes and --enable-casemod-expansions,
- respectively); from bash-4.0-devel tree
-
-execute_cmd.c
- - add code to fix_assignment_words to handle assignment statements to
- "assignment builtins" that seem to be associative arrays. Imperfect
-
-subst.c
- - array_remove_pattern now takes a SHELL_VAR * as its first argument
- instead of an ARRAY *; from the bash-4.0-devel tree
- - changes to array_length_reference for associative arrays; from the
- bash-4.0-devel tree
- - changes to get_var_and_type for associative arrays; from the
- bash-4.0-devel tree
- - changes to parameter_brace_substring for associative arrays; from the
- bash-4.0-devel tree
- - changes to param_expand for associative arrays; from the
- bash-4.0-devel tree
-
-builtins/declare.def
- - changes for associative arrays: new `-A' option, changes to make
- local and global associative array variables; from the bash-4.0-devel
- tree
-
- 6/27
- ----
-execute_cmd.c
- - in execute_command_internal, when short-circuiting execution
- because `breaking' or `continuing' is non-zero, preserve the exit
- status by returning `last_command_exit_value' instead of an
- unconditional EXECUTION_SUCCESS. Fixes bug reported by Roman
- Rakus <rrakus@redhat.com>
-
- 6/28
- ----
-variables.c
- - fix get_var_and_type to appropriately handle references like
- ${varname[0]}, where `varname' is a scalar variable
-
-make_cmd.[ch],parse.y
- - make_here_document now takes a second argument: the current line
- number; changed caller (gather_here_documents)
-
-builtins/setattr.def
- - added support for associative arrays and the `-A' variable attribute
- option; from the bash-4.0-devel tree
-
-subst.c
- - change code that transforms `declare -A xxx=(yyy)' to perform the
- internal `declare -A xxx' before doing the variable assignment,
- because associative arrays have to be declared before being assigned
- to as such; uses new function make_internal_declare
-
- 6/30
- ----
-subst.[ch]
- - dequote_escapes is now external; add declaration in subst.h
- - remove_quoted_nulls is now external; add declaration in subst.h
-
-array.[ch]
- - new functions for completeness: array_dequote, array_dequote_escapes,
- array_remove_quoted_nulls
- - array_subrange now calls array_remove_quoted_nulls for "${array[*]}".
- Fixes bug reported by Vitor De Araujo <ux386@yahoo.com.br>
- - array_patsub now calls array_remove_quoted_nulls for "${array[*]}"
- - array_modcase now calls array_remove_quoted_nulls for "${array[*]}"
- - array_patsub now handles the mflags&MATCH_QUOTED case appropriately
- (that implies "${array[@]}")
-
-subst.c
- - new functions for case-modifying word expansion suppport:
- pos_params_casemod, parameter_brace_casemod; from bash-4.0-devel branch
-
-assoc.c
- - new functions for completeness: assoc_remove_quoted_nulls
- - assoc_patsub now calls assoc_remove_quoted_nulls for "${assoc[*]}"
- - assoc_modcase now calls assoc_remove_quoted_nulls for "${array[*]}"
- - assoc_patsub now handles the mflags&MATCH_QUOTED case appropriately
- (that implies "${assoc[@]}")
-
- 7/1
- ---
-assoc.[ch]
- - new function, assoc_subrange: takes a hash table, converts it to a
- word list, and performs the subrange and indexing on that list
- - new functions for completeness: assoc_dequote, assoc_dequote_escapes
-
-subst.c
- - verify_substring_values now takes the variable SHELL_VAR * as its
- new first argument; changed callers
- - change verify_substring_values to handle associative arrays using the
- number of elements as the upper bound
- - brought in code to do case-modifying word expansions from
- bash-4.0-devel branch, conditional on CASEMOD_EXPANSIONS
-
-input.c
- - if the read(2) in getc_with_restart returns -1/EAGAIN, turn off
- non-blocking mode on the file descriptor and try again. Fixes
- problem reported by Glynn Clements <glynn@clements.plus.com>
-
- 7/2
- ---
-doc/{bash.1,bashref.texi}
- - documented new case-modifying word expansions
-
-make_cmd.c
- - change make_here_document to display a warning message including the
- start line of a here document if it ends up delimited by EOF.
- Addresses issue raised by Richard Neill <rn214@hermes.cam.ac.uk>
-
-subst.c
- - in do_assignment_internal, make sure the `invisible' attribute is
- unset before returning success
-
- 7/3
- ---
-config-top.h
- - add `CASEMOD_CAPCASE' define to include or exclude the ~[~] word
- expansion and the `capcase' variable attribute (declare -c)
-
-builtins/declare.def
- - add support for manipulating the case-modifying attributes (new
- declare -clu); from bash-4.0-devel branch
-
-builtins/setattr.def
- - add support for reporting case-modifying attributes (-clu attributes);
- from bash-4.0-devel branch
-
-doc/{bash.1,bashref.texi}
- - specify that the read builtin timing out results in a return value
- greater than 128
- - document new `-l' and `-u' options to declare/typeset/local. Leave
- `-c' undocumented for now
-
- 7/4
- ---
-make_cmd.[ch]
- - make_coproc_command: construct a coproc; from bash-4.0-devel tree
-
-dispose_cmd.c
- - dispose coproc command; from bash-4.0-devel tree
-
-copy_cmd.c
- - copy a coproc command; from bash-4.0-devel tree
-
-print_cmd.c
- - print a coproc command; from bash-4.0-devel tree
-
-shell.c
- - dispoe the current coproc on shell exit; from bash-4.0-devel tree
-
-redir.c
- - when closing redirects as part of user redirections, check whether
- or not active coprocess fds are being closed and close the coproc
- if so; from bash-4.0-devel tree
-
-config.h.in
- - add define for COPROCESS_SUPPORT to include coprocesses
-
-configure.in
- - add support for configuring coprocesses into and out of the build
-
-jobs.c
- - in waitchld, check whether or not a coproc processs has exited;
- from the bash-4.0-devel tree
-
- 7/5
- ---
-doc/bashref.texi
- - document new --enable-coprocesses option that includes coprocess
- support
-
-execute_cmd.c
- - add functions for coprocess support, including execute_coproc and
- code to call it when command->type == cm_coproc; from
- bash-4.0-devel tree
-
-lib/sh/fdprintf.c
- - new library function fdprintf(int fd, const char *format, ...);
- printf to a file descriptor
-
-{configure,config.h}.in
- - support for detecting fdprintf and compiling in replacement
-
-Makefile.in,lib/sh/Makefile.in
- - add rules to include fdprintf.o
-
-doc/{bash.1,bashref.texi}
- - documented coprocesses and `coproc' reserved word
-
- 7/7
- ---
-subst.c
- - fix array_length_reference to use MB_STRLEN instead of STRLEN, so
- multibyte characters in array values are computed correctly. Fixes
- bug reported by Wang Xin <wxinee@gmail.com>
-
- 7/10
- ----
-jobs.c
- - new function, maybe_give_terminal_to (old, new, flags), sets the
- terminal pgrp to NEW if and only if it's currently set to OLD
- - call maybe_give_terminal_to when the parent sets the terminal pgrp
- to the pipeline pgrp in stop_pipeline, so we don't give the
- terminal to the new job's pgrp unless it's currently owned by the
- shell. Fixes race condition described by Joe Peterson
- <joe@skyrush.com>, where parent bash may change tty pgrp after a
- grandchild (interactive bash child of su) has changed it to
- something else. The call to maybe_give_terminal_to makes explicit
- a previously-implicit assumption
-
-aclocal.m4
- - remove dependency on writable /tmp by creating directories in
- build directory
-
-shell.c
- - make changes to how bash sets no_line_editing and running_under_emacs
- to deal with various emacs terminal emulators; use better check
- for `eterm', since bash sends $PWD to eterm with control sequences
- that confuse other programs. Problem reported by Micah Cowan
- <micah@cowan.name>
-
-
- 7/12
- ----
-print_cmd.c
- - break code that prints here-documents into two functions:
- print_heredoc_header, which prints the operator and delimiter, and
- print_heredoc_body, which prints the body text and closing delimiter
- - change print_redirection to call print_heredoc_{header,body}
- - sentinel variable, printing_connection, used when printing a command
- of type `connection' (|, &&, ||, etc.)
- - change print_redirection_list to save any here documents it finds
- while printing a connection and save them in `deferred_heredocs'
- - new function, print_deferred_heredocs, called from print_redirection
- in the cm_connection case, calls print_heredoc_header for all the
- here documents, then prints the operator (|, &&, ||, etc.), then
- the here-document body. This preserves syntactic correctness; the
- old code printed the control operator after the body of the here
- document. Fixes bug reported by <buport@figpost.com>
-
- 7/16
- ----
-locale.c
- - in set_locale_var, print a warning message if setlocale() fails any
- time it's called -- required some code restructuring
-
- 7/19
- ----
-support/shobj-conf
- - support for mingw32, contributed by Carlo Bramix
- <carlo.bramix@libero.it>
-
- 7/23
- ----
-execute_cmd.c
- - added support (currently unused) to manage a list of coprocs
-
- 7/25
- ----
-bashline.c
- - add extern declarations for literal_history and force_append_history
-
-builtins/shopt.def
- - include "bashhist.h" instead of having extern declarations for the
- appropriate history variables
-
-parser.h
- - new parser_state value: PST_HEREDOC, set when reading body of here-
- document in parse.y:read_secondary_line
-
-parse.y
- - set PST_HEREDOC bit in parser_state when reading a secondary line
- for the body of a here-document
- - change read_secondary_line to save lines in the body of a here-
- document in the shell history list if remember_on_history is
- set. Fixes bug reported by Gene Golub <gene_golub@hotmail.com>
-
- 8/4
- ---
-configure.in
- - changed to 4.0-alpha
-
-lib/readline/readline.h
- - changed constants to reflect readline-6.0 version
-
- 8/11
- ----
-lib/readline/signals.c
- - make sure we don't use SIGWINCH without checking whether or not it's
- defined. Fix from Pedro Alves <pedro@codesourcery.com>
-
- 8/12
- ----
-
-COPYING
- - updated to GPLv3; edits in every file with a copyright or license
- declaration to update to gpl3
-
-version.c
- - update extended version info to latest gnu standard
-
- 8/17
- ----
-subst.c
- - change exp_jump_to_top_level to only call top_level_cleanup if
- parse_and_execute_level is 0. If it's not, the longjmp to
- parse_and_execute will run the unwind-protect stack. Fixes bug
- most recently reported by Roman Rakus <rrakus@redhat.com>
-
- 8/18
- ----
-support/config.{guess,sub}
- - updated to newer versions from autoconf-2.62 distribution
-
- 8/20
- ----
-subst.c
- - fixed parameter_brace_substring to differentiate between indexed and
- associative arrays when computing second offset, instead of
- assuming indexed array
-
- 8/21
- ----
-support/xcase.c
- - simple program to convert input from lower to uppercase and vice
- versa. Now used by coproc test suite, since `tr -u' is not
- portable.
-
- 8/22
- ----
-doc/bash.1
- - fixed description of the bindable edit-and-execute commands to note
- they check $VISUAL first, instead of $FCEDIT. Fixed bug reported
- by
-
-[bash-4.0-alpha frozen]
-
- 8/28
- ----
-[bash-4.0-alpha released]
-
- 9/1
- ---
-builtins/evalstring.c
- - fixed typo in parse_string (ostring used uninitialized). Bug
- reported by Andreas Schwab <schwab@suse.de>
-
-subst.c
- - fix return value of parameter_brace_expand to set the
- W_HASQUOTEDNULL flag in the returned WORD_DESC * if the return value
- from parameter_brace_remove_pattern is a quoted null string. Fixes
- bug reported by Andreas Schwab <schwab@suse.de>
- - set the W_HASQUOTEDNULL flag in the return value from
- parameter_brace_expand if the return value from parameter_brace_patsub
- is a quoted null string
-
- 9/6
- ---
-builtins/read.def
- - change read -t 0 to return success if there is input available to be
- read -- allows scripts to poll for input. Uses input_avail libsh
- function
-
- 9/9
- ---
-externs.h
- - fix extern fpurge declaration -- use HAVE_DECL_FPURGE instead of
- NEED_FPURGE_DECL, since the former is set by `configure'
-
-jobs.h
- - add extern declaration for close_pgrp_pipe
- - add a new job state JNONE (-1) to the enum
-
-jobs.c
- - include execute_cmd.h for extern declarations for coproc functions
-
-subst.c
- - include builtins/builtext.h for extern declarations for functions
- implementing builtins (e.g., declare_builtin)
-
-arrayfunc.c
- - include "pathexp.h" for extern declaration for glob_char_p
-
-braces.c
- - add extern declaration for `asprintf'
-
-lib/readline/rlprivate.h
- - add extern declarations for _rl_trace, _rl_tropen
-
-lib/sh/zgetline.c
- - add extern declarations for zread, zreadc
-
-lib/sh/mktime.c
- - include "bashansi.h" for string function declarations
-
-builtins/common.h
- - add extern declaration for parse_string
-
-trap.c
- - include jobs.h for extern declaration for run_sigchld_trap
-
-general.c
- - fix call to strtoimax in legal_number; if ep == string when function
- returns, the number was not converted, even if errno is not set.
- Fix from Paul Jarc <prj@case.edu>
-
- 9/11
- ----
-[prayers for the victims of 9/11/2001]
-
-builtins/return.def
- - call no_options, as Posix requires. This also has the effect of
- disallowing negative return values unless they're prefixed by `--'
-
- 9/13
- ----
-builtins/bind.def
- - add an error message when bind is used without line editing active,
- instead of just returning an error status
-
-variables.c
- - make sure make_local_variable never creates visible variables with
- a value, whether or not a variable with the same name existed in a
- previous context. This is consistent with ksh93. Fix from
- <neil@s-z.org>
-
- 9/16
- ----
-execute_cmd.c
- - add call to CHECK_TERMSIG in shell_execve after the call to execve
- returns. Recommended by Roman Rakus <rrakus@redhat.com>
- - add QUIT check in execute_connection after executing first command
- in a `&' connection
-
- 9/22
- ----
-execute_cmd.c
- - new semaphore variable, executing_list, incremented every time a
- list (command1;command2 or command1 || command2 or command1 &&
- command2) is executed; used as sentinel for rest of shell
-
-sig.c,builtins/evalstring.c
- - set executing_list to 0 when throwing execution back to top level;
- make sure to unwind-protect it in appropriate places
-
-jobs.c
- - if a pipeline is killed by SIGINT while executing a list (when
- executing_list is non-zero), make sure the shell acts as if an
- interrupt occurred. The behavior is dependent on the shell
- compatibility level being > 32 (bash-4.0 and above)
-
- 9/23
- ----
-redir.c
- - don't bother reporting an error with a file descriptor, even if
- the errno is EBADF, if the redirection error (e.g., NOCLOBBER)
- can't have anything to do with the fd. Fixes bug reported by
- "David A. Harding" <dave@dtrt.org>, debian bug #499633.
-
- 9/24
- ----
-builtins/declare.def
- - make `declare [option] var' (and the `typeset' equivalent) create
- invisible variables, instead of assigning the null string to a
- visible variable. Fixes bug reported by Bernd Eggink <monoped@sudrala.de>
-
- 9/25
- ----
-builtins/common.[ch]
- - new function, builtin_warning(), like builtin_error but for warning
- messages
-
-builtins/bind.def
- - experimental: print a warning, but go on, if line editing not active
- when bind is invoked. Suggested by Rocky Bernstein
- <rocky.bernstein@gmail.com>
-
- 10/3
- ----
-test.c
- - use same_file instead of directly comparing st_dev and st_ino when
- comparing files in filecomp(). From mingw32 patches submitted
- by Hector Chu <hkcc2@cantab.net>
-
- 10/4
- ----
-
-redir.c
- - in redirection_error(), use `error' instead of errno when comparing
- against EBADF. From mingw32 patches submitted by Hector Chu
- <hkcc2@cantab.net>
-
-shell.c
- - in unset_bash_input(), reset bash_input.type to st_none after
- closing the default buffered fd. From mingw32 patches submitted
- by Hector Chu <hkcc2@cantab.net>
-
-builtins/cd.def
- - ignore CDPATH when in privileged mode. Suggested by Paul Jarc
- <prj@po.cwru.edu>
-
-variables.c
- - change sv_globignore to only act if privileged mode is not enabled.
- Suggested by Paul Jarc <prj@po.cwru.edu>
-
-doc/bash.1,bashref.texi
- - document new treatment of CDPATH and GLOBIGNORE when privileged
- mode is enabled
-
-builtins/read.def
- - change prompt printing to occur after terminal is set to no-echo
- mode. Based on suggestion from Stephane Chazelas
- <stephane_chazelas@yahoo.fr>
-
-lib/readline/signals.c
- - new variables to keep track of special characters corresponding to
- SIGINT, SIGQUIT, and SIGTSTP
- - new variable to keep track of whether tty is echoing control
- characters corresponding to SIGINT, SIGQUIT, and SIGTSTP
- - new function, _rl_echo_signal_char(int sig) to display the tty
- special char generating SIGINT, SIGQUIT, or SIGTSTP. Based on
- idea and code from Joe Peterson <joe@skyrush.com>
- - call rl_echo_signal_char in rl_signal_handler: if the terminal
- settings indicate it, readline will echo characters that generate
- keyboard signals
-
-lib/readline/rltty.c
- - set _rl_intr_char, _rl_quit_char, and _rl_susp_char to special
- characters that generate signals from keyboard
- - set _rl_echoctl if ECHOCTL tty flag is set
-
-lib/readline/rlprivate.h
- - extern declarations for _rl_intr_char, _rl_quit_char, and
- _rl_susp_char
- - extern declaration for _rl_echoctl
-
-lib/readline/readline.h
- - extern declaration for rl_echo_signal_char()
-
-lib/readline/doc/rltech.texi
- - document rl_echo_signal_handler(): available for applications
- that install their own signal handlers
-
- 10/5
- ----
-execute_cmd.c
- - fix errexit logic to not cause the shell to exit when a command in
- a pipeline fails. Fixes bug reported by Marcin Owsiany
- <marcin@owsiany.pl>
-
- 10/14
- -----
-builtins/evalstring.c
- - don't short-circuit execution in parse_and_execute if we want to
- run an exit trap. Fixes bug reported by Steffen Kiess
- <s-kiess@web.de>
-
- 10/18
- -----
-parse.y
- - fix error production to only call YYACCEPT if the shell is currently
- interactive and not in parse_and_execute (so parser errors in
- things like eval will correctly set $?). Fixes bug reported by
- marco-oweber@gmx.de
-
-execute_cmd.c
- - make sure variable name errors in execute_for_command and non-
- identifier function names in execute_intern_function set the
- return status to EX_BADUSAGE (2), not EX_USAGE (258)
-
-parser.h
- - new parser state, PST_REPARSE
-
-parse.y
- - turn PST_REPARSE on in parse_string_to_word_list
- - in parse_matched_pair, if parsing a single-quoted string and
- PST_REPARSE is set, don't requote CTLESC or CTLNUL. Fixes bug with
- compound array assignment using $'\x7f' reported by Antonio Macchi
- <antonio_macchi@alice.it>
-
- 10/23
- -----
-configure.in
- - define LOCAL_LDFLAGS as `-z interpose' on Solaris 8, 9, and 10 to
- allow the bash malloc to interpose the libc malloc when called by
- library functions pre-bound to the libc malloc. Suggested by
- Serge Dussud <Serge.Dussud@Sun.COM>
-
- 10/26
- -----
-doc/bash.1
- - add single-sentence descriptions to rest of parameter expansions.
- Suggested by Ken Irving <fnkci@uaf.edu>
-
- 10/27
- -----
-subst.c
- - rearrange code in skip_to_delims to allow quote characters and other
- shell expansion characters to be delimiters
- - add new flags value for inverting search: skip to the next character
- NOT in the set of delimiters passed as an argument
-
-subst.h
- - define for new SD_INVERT flag value for skip_to_delims
-
- 10/28
- -----
-bashline.c
- - new bindable functions: shell-forward-word and shell-backward-word.
- Like forward-word and backward-word, but understand shell quoting
- and use shell metacharacters and whitespace as delimiters.
- Suggested by Andre Majorel <amajorel@teaser.fr>
- - new bindable functions: shell-kill-word and shell-backward-kill-word.
- Like kill-word and backward-kill-word, but understand shell quoting
- and use shell metacharacters and whitespace as delimiters.
- Suggested by Andre Majorel <amajorel@teaser.fr>
-
-doc/bash.1,lib/readline/doc/rluser.texi
- - documented shell-forward-word and shell-backward-word
- - documented shell-kill-word and shell-backward-kill-word
-
- 11/1
- ----
-redir.c
- - add extra argument to add_undo_redirect: fdbase. FD used to save
- a file descriptor must be > fdbase if fdbase >= SHELL_FD_BASE. A
- value of -1 for fdbase means to just use SHELL_FD_BASE. Fixes bug
- with 0<&10 reported by Clark Jian Wang <dearvoid@gmail.com>
-
- 11/5
- ----
-unwind_prot.c
- - new function: have_unwind_protects(); returns 1 if unwind_protect_list
- is not empty
-
-unwind_prot.h
- - extern declaration for have_unwind_protects
-
-builtins/evalstring.c
- - in parse_and_execute_cleanup, make sure that we don't call
- run_unwind_frame and expect it to decrement parse_and_execute_level
- if there's no unwind_protect_list, since there's a while loop in
- throw_to_top_level that calls parse_and_execute_cleanup as long as
- parse_and_execute_level is non-zero
-
- 11/9
- ----
-variables.c
- - fix the assign function for COMP_WORDBREAKS to allocate new memory
- to store as the variable's value, to avoid freeing memory twice
- if the variable is unset after rl_completer_word_break_characters
- is freed and reallocated. Fix from Mike Stroyan <mike@stroyan.net
-
- 11/11
- -----
-bashline.c
- - new function to reset the value of rl_completer_word_break_characters
- while honoring setting of `hostcomplete': reset_completer_word_break_chars.
-
-bashline.h
- - new extern declaration for reset_completer_word_break_chars.
-
-variables.c
- - call reset_completer_word_break_chars in sv_comp_wordbreaks when the
- variable is unset
-
-[bash-4.0-beta frozen]
-
- 11/16
- -----
-subst.c
- - call set_pipestatus_from_exit in exp_jump_to_top_level so that
- failed expansions that set $? will set $PIPESTATUS. Fixes bug
- reported by Eric Blake <ebb9@byu.net>
-
- 11/20
- -----
-general.c
- - new 'file_exists(fn)' primitive; just calls stat(2)
-
-general.h
- - new extern declaration for file_exists
-
-bashline.c
- - add `~' to rl_filename_quote_characters so make_quoted_replacement
- will call bash_quote_filename for words containing `~'. Then
- bash_quote_filename can make choices based on that
- - change quote_word_break_chars to backslash-quote the tilde in a
- filename with a leading tilde that exists in the current directory,
- since we want to inhibit tilde expansion in this case
-
-execute_cmd.c
- - call file_isdir from shell_execve instead of stat(2) directly
-
-bashhist.c
- - use file_exists and file_isdir primitives instead of calling stat
-
- 11/21
- -----
-redir.c
- - When undoing saving of non-standard file descriptors (>=3) using
- file descriptors >= SHELL_FD_BASE, we set the saving fd to be
- close-on-exec and use a flag (RX_SAVCLEXEC) to decide how to set
- close-on-exec when the fd is restored. Set flag in add_undo_redirect,
- check in do_redirection_internal. Fixes problem reported by Andreas
- Schwab <schwab@suse.de>
-
- 11/26
- -----
-subst.c
- - fix param_expand to have expansions of $@ and $* exit the shell if
- there are no positional parameters and `set -u' is enabled. Fixes
- bug reported by Dan Jacobson <jidanni@jidanni.org>
-
- 11/27
- -----
-lib/readline/display.c
- - fix update_line to not call space_to_eol if current cursor position
- (_rl_last_c_pos) indicates that we're already at end of line.
- Partial fix for bug reported by Mike Frysinger <vapier@gentoo.org>
- - in update_line, don't call insert_some_chars if that will start
- before the last invisible character in the prompt string and not
- draw the entire prompt string. More of the partial fix for bug
- reported by Mike Frysinger <vapier@gentoo.org>
- - fix update_line to adjust _rl_last_c_pos by wrap_offset when adding
- characters beginning before the last invisible character in the
- prompt. New code is same as previously existed in a different code
- path. Rest of fix for bug from Mike Frysinger <vapier@gentoo.org>
- - fix assignment of newline breaks (inv_lbreaks) to correctly account
- for prompts longer than two screen lines containing invisible
- characters. The assumption is that part of the invisible characters
- are on the first line (prompt_invis_chars_first_line) and the
- remainder are on the last (wrap_offset - prompt_invis_chars_first_line).
- Fix is in rl_redisplay. part of fix for bug reported by
- "Wesley J. Landaker" <wjl@icecavern.net> in
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265182
- [TENTATIVE]
- - fix _rl_move_cursor_relative to correctly offset `dpos' by `woff'
- when there are invisible characters on lines after the second by
- using (_rl_screenwidth*_rl_last_v_pos) when seeing whether or not
- we just wrote some invisible characters. Rest of fix for bug
- reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265182
- [TENTATIVE]
-
- 12/11
- -----
-sig.c
- - reset the execution context before running the exit trap in
- termsig_handler
-
-general.c
- - set and unset terminate_immediately like interrupt_immediately in
- bash_tilde_expand
-
-builtins/read.def
- - change terminate_immediately to a counter instead of a flag, as
- interrupt_immediately is used
-
-lib/readline/display.c
- - slight change to fix from 11/27 to deal with prompts longer than a
- screen line where the invisible characters all appear after the
- line wrap. Fixes bug reported by Andreas Schwab <schwab@suse.de>
-
-builtins/{echo,printf}.def
- - increment terminate_immediately at entry; decrement before returning.
- Fix for bug reported by Ralf.Wildenhues@gmx.de
-
- 12/16
- -----
-subst.c
- - fix off-by-one error in /dev/fd version of add_fifo_list; make
- sure we add to totfds when it is == fd, not just when fd > totfds.
- Fixes bug reported by marciso@gmail.com
-
-[bash-4.0-beta2 frozen]
-
- 12/29
- -----
-doc/{bash.1,bashref.texi}
- - document more clearly that when not in Posix mode, command
- substitution does not inherit the -e option. From bug report from
- Freddy Vulto <fvulto@gmail.com>
-
-{execute_cmd,sig,builtins/evalstring}.c
- - sentinel variable to keep track of whether or not we're supposed to
- ignore the failure status of a command executed in a command
- substitution even if the `-e' option is set: comsub_ignore_return
- - increment and decrement comsub_ignore_return in execute_simple_command
- before calling expand_words
- - in parse_and_execute, if comsub_ignore_return is non-zero and the
- SUBSHELL_COMSUB bit is set in subshell_environment, enable the
- CMD_IGNORE_RETURN flag in every command executed from the passed
- string. Fixes problem reported by Freddy Vulto <fvulto@gmail.com>
- - make sure to reset comsub_ignore_return every time we throw to the
- top level, like executing_list flag
-
- 1/2/2009
- --------
-parse.y
- - fix to rewind_input_stream to handle case of $(...) command
- substitution followed by a quoted literal newline. Report and fix
- from Andreas Schwab <schwab@suse.de>
-
- 1/7
- ---
-
-subst.c
- - fix match_wpattern and match_upattern to prefix a `*' to the
- pattern even if it starts with a `*(' (if extglob is enabled)
- before checking whether or not it can match anywhere in the
- string. Fixes bug reported by os@sernet.de.
-
-[bash-4.0-rc1 frozen]
-
- 1/9
- ---
-locale.c
- - since setlocale() doesn't set errno to anything meaningful,
- don't include the strerror() result in the error message if
- it fails
- - make sure the error messages printed when setlocale fails are
- localizable
-
- 1/11
- ----
-lib/readline/histexpand.c
- - make sure that every time history_no_expand_chars is tested, we
- also call the history_inhibit_expansion_function if it's set.
- Fixes bug reported by Yang Zhang <yanghatespam@gmail.com>
-
- 1/12
- ----
-trap.c
- - make sure to call parse_and_execute with the SEVAL_RESETLINE bit
- set in the flags so it will reset the line number when running
- the trap commands. Partial fix for bug reported by
- peter360@fastmail.us
-
- 1/14
- ----
-builtins/reserved.def
- - document `coproc' so it can be used with `help' builtin. Pointed
- out by Pierre Gaston <pgas@freeshell.org>
-
-lib/sh/casemod.c
- - added two new flags: CASE_UPFIRST and CASE_LOWFIRST to casemod
- the first character of the passed string and pass the rest
- through unchanged. Fixes bug reported by Jan Schampera
- <jan.schampera@web.de>
-
-externs.h
- - new defines for CASE_UPFIRST and CASE_LOWFIRST
-
-subst.c
- - use CASE_UPFIRST for ^ and CASE_LOWFIRST for , casemod operators
-
-builtins/mapfile.def
- - call zreset() before calling first zgetline(), to clean out any
- remaining data in local buffer used by zreadc. Fixes bug
- reported by Pierre Gaston <pierre.gaston@gmail.com>
-
- 1/15
- ----
-lib/sh/zread.c
- - renamed zreadintr to zreadretry -- not perfect, but better
- - new functions: zreadintr, which just calls read so it can be
- interruptible, and zreadcintr, which is like zreadc but uses
- zreadintr to fill the buffer
-
-lib/sh/zgetline.c
- - in zgetline, when zread/zreadc return <= 0, make sure line is
- non-null before assigning to line[nr]
-
-builtins/mapfile.def
- - return an error right away if the supplied array variable name
- refers to a readonly or noassign array
- - set interrupt_immediately so calls to zgetline can be
- interrupted. Fixes bug reported by Pierre Gaston
- <pierre.gaston@gmail.com>
- - if interactive, pass the SEVAL_INTERACT and SEVAL_NOHIST flags
- to parse_and_execute when calling callbacks. Fixes bug reported
- by Pierre Gaston <pierre.gaston@gmail.com>
- - add `readarray' as a synonym for mapfile
-
-doc/{bash.1,bashref.texi}
- - document behavior of mapfile builtin adding index of array element
- to be assigned as additional argument to callback string. Reported
- by Pierre Gaston <pierre.gaston@gmail.com>
- - document readarray as synonym for mapfile
-
-builtins/common.c
- - new error function, sh_ttyerror(set), prints an error message having
- to do with setting or getting terminal attributes
-
-builtins/read.def
- - print error message if read fails to set terminal attributes
-
- 1/16
- ----
-execute_cmd.c
- - new function, coproc_reap, calls coproc_dispose if sh_coproc is
- marked as COPROC_DEAD
- - new function, cpl_reap, disposes coprocs marked as COPROC_DEAD
- from coproc list
- - change coproc_pidchk to just mark the coproc as dead instead of
- calling coproc_dispose, so we don't call unsafe functions from
- a signal handler. Fixes bug reported by Andreas Schwab
- <schwab@suse.de>
-
-execute_cmd.h
- - new extern declaration for coproc_reap
-
-command.h
- - new flags for c_flags member of a struct coproc
-
-{jobs,nojobs}.c
- - add call to coproc_reap in cleanup_dead_jobs, which will do the
- right queueing or blocking of SIGCHLD
-
-trap.c
- - modify change from 1/12 to not reset the line number when running
- the DEBUG and RETURN traps
-
- 1/18
- ----
-lib/sh/casemod.c
- - change default operations to work on entire passed string instead
- of breaking into words at non-alpha-numerics. Use new
- CASE_USEWORDS flag to enable by-word behavior. Fixes bug reported
- by Jan Schampera <jan.schampera@web.de>
-
-builtins/printf.def
- - in vbprintf, bracket each call to vsnprintf (which uses the args
- passed to vbprintf) with SH_VA_START and va_end, so we can
- reninitialize the argument list for each call. This is actually
- what the C standard requires. Fixes bug that caused printf -b
- to `ignore' first % format specifier if it came first in the
- string. Reported by David Leverton <levertond@googlemail.com>
-
-builtins/mapfile.def
- - start the line count at 1, since it doesn't get incremented before
- (or after) reading the first line, so things like
- `mapfile -n 5 -c 1 -C 'echo foo' array < file' work right and call
- the callback after the first line is read. Fixes bug reported by
- Pierre Gaston <pierre.gaston@gmail.com>
-
- 1/22
- ----
-lib/readline/complete.c
- - set _rl_interrupt_immediately non-zero before reading from the file
- system or calling an application-defined completion function
-
-lib/readline/signals.c
- - renamed rl_signal_handler to _rl_handle_signal; new version of
- rl_signal_handler that just calls _rl_handle_signal (for now)
- - new function _rl_signal_handler that calls _rl_handle_signal without
- any checking
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_signal_handler
- - new define, RL_CHECK_SIGNALS, checks whether or not _rl_caught_signal
- is set and calls _rl_signal_handler if so
-
-lib/readline/{bind,input,readline}.c
- - add RL_CHECK_SIGNALS in appropriate places
-
-lib/readline/signals.c
- - change rl_signal_handler to set a flag and return rather than
- run through the entire signal handling process. If
- _rl_interrupt_immediately is set, call the signal handling code
- right away instead of setting the flag. Initial fix for crash
- bug reported by Roman Rakus <rrakus@redhat.com>
-
-aclocal.m4
- - new macro, BASH_TYPE_SIG_ATOMIC_T, tests for sig_atomic_t in
- <signal.h>, defines as int if not defined
-
-configure.in
- - call BASH_TYPE_SIG_ATOMIC_T
- - call AC_C_VOLATILE
-
-config.h.in
- - empty define for sig_atomic_t
- - empty define for volatile
-
- 1/27
- ----
-subst.c
- - audit calls to add_character and change to add_ifs_character (which
- quotes characters in $IFS). Affects primarily `:', `=', and `~'.
- Fixes bug reported by Jan Schampera <jan.schampera@web.de>; fix
- suggested by Stephane Chazelas <stephane_chazelas@yahoo.fr>
-
- 2/1
- ---
-configure.in
- - call AC_C_RESTRICT
-
-config.h.in
- - add empty defintion for `restrict'
-
-pcomplete.c
- - use unwind_protects around call to execute_shell_function in
- gen_shell_function_matches to prevent data corruption if
- throw_to_top_level is called. Bug report and fix from
- werner@suse.de.
-
-execute_cmd.c
- - don't clamp CPU usage at 100% in print_formatted_time. Bug reported
- by Linda Walsh <bash@tlinx.org>
-
- 2/5
- ---
-locale.c
- - in set_locale_var, set errno to 0 before calling setlocale(), and
- print strerror (errno) if setlocale fails and errno ends up non-zero
-
- 2/6
- ---
-configure.in
- - backed out of solaris change from 10/23/2008 (adding `-z interpose'
- to LDFLAGS) due to solaris updates to fix a linker problem.
- Updatted by Serge Dussud <Serge.Dussud@Sun.COM>
-
- 2/12
- ----
-execute_cmd.c
- - change execute_connection so failure of a pipeline will cause the
- shell to exit if -e is on. From discussion on austin-group
- mailing list
- - change execute_command_internal so failure of a user-specified
- subshell will cause the shell to exit if -e is on. From discussion
- on austin-group mailing list
-
- 2/13
- ----
-doc/{bash.1,bashref.texi}
- - clarified description of set -e option to accurately reflect current
- implementation
-
- 2/19
- ----
-print_cmd.c
- - fix print_deferred_heredocs to not print a space if the separator
- string is null
- - change print_deferred_heredocs to set `was_heredoc' after printing
- something
- - change connection printing code to only print the `;' separator
- if we haven't just printed a here-document
- - change connection printing code to print any deferred here
- documents after the rhs of the connection. Fixes bug reported by
- Bo Andresen <bo.andresen@zlin.dk>
-
-[bash-4.0 frozen]
-
- 2/20
- ----
-
-[bash-4.0 released]
-
- 2/22
- ----
-
-parse.y
- - fix parse_comsub to not test a character for being a possible shell
- metacharacter if LEX_PASSNEXT flag is set. Fixes bug reported by
- Mike Frysinger <vapier@gentoo.org>
-
-pcomplete.c
- - add call to save_parser_state (accidentally dropped from patch) to
- gen_shell_function_matches. Fixes bug with bash_completion and
- file/directory completion reported by phil@Arcturus.universe
-
-Makefile.in
- - fix assignment to LDFLAGS_FOR_BUILD to match those in subdir
- Makefiles. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
-
-builtins/mapfile.def
- - make sure the callback quantum (-c option argument) is > 0. Fixes
- bug reported by Stephane Chazleas <stephane_chazelas@yahoo.fr>
-
- 2/23
- ----
-parse.y
- - fix save_token_state and restore_token_state to save and restore
- current_token. Fixes bug reported by Bernd Eggink
- <monoped@sudrala.de>
-
-builtins/exit.def
- - check jobs[i] before checking whether or not it's running when
- the checkjobs option is set and we're looking for running jobs
- at exit. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
-
- 2/24
- ----
-siglist.c
- - include bashintl.h for definition of _. Fixes bug reported by
- Greg Wooledge <wooledg@eeg.ccf.org>
-
- 2/25
- ----
-subst.c
- - new function, skip_matched_pair. Similar to skip_to_delim and
- the extract_XXX family
- - move skipsubscript here from arrayfunc.c; re-implement in terms of
- skip_matched_pair. Fixes bugs reported by <anmaster@tele2.se>
-
-arrayfunc.c
- - remove skipsubscript; moved to subst.c
-
-parse.y
- - change reset_parser to set current_token to '\n'. Rest of fix for
- bug reported by Bernd Eggink <monoped@sudrala.de>; earlier fix on
- 2/23
-
- 2/26
- ----
-builtins/declare.def
- - when given something like array[x]=y (which sets making_array_special
- to 1), don't convert an associative array to an indexed array (line
- 493). Part of fix for bug reported by Pierre Gaston
- <pierre.gaston@gmail.com>
- - if offset == 0, indicating that we do not have a valid assignment,
- make sure any `name' containing a `[' is a valid array reference
- before trying to go on. Not doing this leads to creating crazy
- variables like `name[foo[bar]=bax'. Rest of fix for bug reported
- by Pierre Gaston <pierre.gaston@gmail.com>
-
-assoc.c
- - change assoc_to_assign to single-quote the array keys if `quoted' is
- non-zero. Makes things easier to read with weird characters in the
- key
-
-parse.y
- - fix parse_comsub to not set LEX_HEREDELIM when it sees "<<<". Fixes
- bug reported by Mike Frysinger <vapier@gentoo.org>
-
- 2/27
- ----
-parse.y
- - fix report_syntax_error to set last_command_exit_value to
- EX_BADUSAGE (2) instead of EX_USAGE (258), since there's nothing
- that will translate that to something < 128 before reading the
- next command. Partial fix for bug reported by Mike Frysinger
- <vapier@gentoo.org>
-
-sig.c
- - fix sigint_sighandler to set last_command_exit_value to sig+128
- before calling throw_to_top_level. Rest of fix for bug reported
- by Mike Frysinger <vapier@gentoo.org>
-
-jobs.c
- - if fork() fails, set last_command_exit_value to 126 before calling
- throw_to_top_level
-
-execute_cmd.c
- - defer calling unlink_fifo_list in parent branch of
- execute_disk_command if we're executing in a shell function
- - change execute_function to call unlink_fifo_list before returning
- if it's the top-level function
-
- 3/2
- ---
-builtins/read.def
- - if read times out, make sure we remove the top element from the
- unwind-protect stack (the free of input_string) and run the rest,
- to reset the tty and readline and alarm states. Then we jump to
- assigning the variables to any partial input. Fixes bug reported
- by Christopher F. A. Johnson <cfajohnson@gmail.com>
-
- 3/3
- ---
-parse.y
- - break comment checking code into a common COMMENT_BEGIN define so
- we can use it in multiple places in parse_comsub
- - in parse_comsub, don't alter the LEX_RESWDOK flag if we read a
- `#' and we're checking comments, even though `#' isn't a `shell break'
- character. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
-
-braces.c
- - in expand_seqterm, decrease the total length of the rhs by the length
- of any (optional) increment, so we don't end up with unwanted zero
- padding because the rhs length is wrong. Fixes bug reported by
- Carl Albing <albing@comcast.net>
-
- 3/4
- ---
-doc/{bash.1,bashref.texi}
- - changes to clean up some of the language describing the effects of
- terminal process groups on the ability to read from and write to
- the terminal
-
- 3/5
- ---
-support/shobj-conf
- - add host_vendor to string tested in switch to handle things like
- gentoo/freebsd
- - beginning with version 7, FreeBSD no longer has /usr/bin/objformat
- or a.out binaries and libraries. It's always ELF. Fix from
- Timothy Redaelli <drizzt@gentoo.org>
-
-parse.y
- - in parse_comsub, allow comments if we are ready to read a
- reserved word (tflags & LEX_RESWDOK), haven't read anything from
- one yet (lex_rwlen == 0) and the current character is a '#'
-
- 3/6
- ---
-parse.y
- - new lex flag for parse_comsub: LEX_INWORD. Turn it off when
- we see a shell break character; turn it on or keep it on when
- not a break character. Keep track of word length (reset to 0
- when we turn on LEX_INWORD when it was off).
- - don't use COMMENT_BEGIN in parse_comsub any more; test
- whether or not LEX_INWORD is set and lex_wlen == 0 in addition
- to tests for LEX_RESWDOK and lex_rwlen. Comments are valid
- when at the start of a word
- - move LEX_PASSNEXT code to the top of parse_comsub, so the rest
- of the function doesn't have to check for the flag at different
- places
-
- 3/7
- ---
-parse.y
- - in parse_comsub, when looking for a reserved word (LEX_RESWDOK
- non-zero), and in a case statement, we can see either an esac
- or a pattern list. We handle an esac separately. We should
- turn off LEX_RESWDOK if we see anything but a newline, since
- we'll be reading a pattern list. Other part of fix for bug
- reported by Mike Frysinger <vapier@gentoo.org> (rest of fix
- on 3/3)
-
- 3/10
- ----
-{.,lib/readline}/doc/fdl.texi
- - updated to FDL version 1.3
-
- 3/11
- ----
-parse.y
- - when using the |& construct with a simple command preceding it, add
- the implicit redirection to the simple command's redirection list,
- since the redirections associated with the command struct are never
- executed. Fixes bug reported by Matt Zyzik <Matt@ice.filescope.com>
-
- 3/14
- ----
-execute_cmd.c
- - in execute_case_command, if ;& is used with no following pattern
- list, make sure we don't reference a NULL pointer. Bug report and
- fix from Clark Jian Wang <dearvoid@gmail.com>
-
-parse.y
- - make parser_state global, so other files can use it
- - command_word_acceptable now returns non-zero if PST_REDIRLIST bit
- set in parser_state, so we accept assignment statements and
- perform alias expansion. Fix for bug reported by Vincent
- Lefevre <vincent@vinc17.org> (2/24/2009)
-
-parser.h
- - add PST_REDIRLIST flag, notes that parser is currently parsing a
- redirection list preceding a simple command
-
-make_cmd.c
- - make_simple_command now turns on PST_REDIRLIST in parser_state when
- creating a new simple command
- - make_simple_command turns off PST_REDIRLIST in parser_state if it
- adds a non-redirection to the command it's building
- - clean_simple_command turns off PST_REDIRLIST to make sure it's off
-
-subst.c
- - new flag for param_expand: PF_IGNUNBOUND, means to not exit if the
- variable is unbound even if `set -u' is enabled
- - change param_expand to not call err_unboundvar if the `pflags'
- argument has the PF_IGNUNBOUND bit set
- - parameter_brace_expand_word now takes an extra `pflags' argument to
- pass down to param_expand; changed callers
- - changed call to parameter_brace_expand_word in parameter_brace_expand
- to add PF_IGNUNBOUND flag so ${@:-foo} doesn't cause the shell to
- exit (but ${@} does) when there are no positional parameters. Fixes
- Debian bug 519165 from Dan Jacobson <jidanni@jidanni.org>
-
-parse.y
- - add code to parse_comsub to allow here-documents within command
- substitutions to be delimited by the closing right paren, with the
- usual warning about here documents delimited by EOF on execution.
- Fixes regression from bash-3.2 noted in Red Hat bugzilla 485664 by
- Ralf Corsepius
-
- 3/15
- ----
-subst.c
- - string_list_dollar_at now checks for Q_PATQUOTE, which getpattern()
- uses to denote Q_DOUBLE_QUOTES (?). Fixes a=abcd echo "${a#$*}"
- when IFS= and args are `a b' as noted by Stephane Chazleas
- <stephane_chazelas@yahoo.fr>
- - param_expand now checks for Q_PATQUOTE and treats it identically
- to Q_DOUBLE_QUOTES when expanding $*
- - expand_word_unsplit now sets W_NOSPLIT in the flags of the word it
- passes to expand_word_internal if $IFS is NULL
- - expand_word_leave_quoted now sets expand_no_split_dollar_star and
- the W_NOSPLIT bit in the word flags before calling
- expand_word_internal if $IFS is NULL, just like expand_word_unsplit.
- It is now virtually identical to expand_word_unsplit. Rest of fix for
- problems reported by Stephane Chazleas <stephane_chazelas@yahoo.fr>
-
- 3/20
- ----
-trap.c
- - in _run_trap_internal, don't pass SEVAL_RESETLINE as flag to
- parse_and_execute if running the ERR trap (further modification
- of change from 1/12)
-
-execute_cmd.c
- - in execute_simple_command, set line_number to line_number_for_err_trap
- before calling run_error_trap. Part of fix for bug reported by
- Brian J. Murrell <brian@interlinx.bc.ca>
- - change other places calling run_error_trap() to set and use
- line_number_for_err_trap
-
- 3/21
- ----
-builtins/fc.def
- - Even though command substitution through parse_and_execute turns
- off remember_on_history, command substitution in a shell when
- set -o history has been enabled (interactive or not) should use it
- in the last_hist calculation as if it were on. Same calculation
- in fc_gethnum and fc_builtin. Fixes bug reported by
- Ian Kelling <smallnow@gmail.com>
-
-sig.c
- - change termsig_sighandler to terminate immediately if it gets called
- twice with the same signal before termsig_handler gets called. This
- fixes the `looping on SIGSEGV' phenomenon reported by Linux users.
-
-parse.y
- - in read_secondary_line, don't try to add NULL lines to the history
- list. Report and patch from Lubomir Rintel <lkundrak@v3.sk>
-
- 3/22
- ----
-sig.c
- - Augment change from 3/21 with explicit check for signals we *don't*
- want this to happen for. Patch from Lubomir Rintel <lkundrak@v3.sk>
-
- 3/28
- ----
-array.c
- - in array_reference, return NULL immediately if the desired index
- is larger than the maximum
- - add cache of last array referenced and last array element referenced;
- use in array_reference to optimize case of sequential access;
- invalidated where necessary in other functions
- - array_rshift needs to set max_index to 0 if the array was empty
- before shifting in the new element 0
- - array_shift needs to use element_index(a->head->prev) to set the
- max_index, not a simple decrement, to deal with sparse arrays
-
- 4/1
- ---
-bashline.c
- - in bash_dequote_filename, return right away after copying the
- backslash if the last character in the string to be expanded
- is a backslash. The old code copied an extra NUL and overwrote
- the bounds checking. Fixes bug reported by Shawn Starr
- https://bugzilla.redhat.com/show_bug.cgi?id=488649
-
- 4/3
- ---
-subst.c
- - in pat_subst.c, make sure to copy one character from the input
- string in the case of a null pattern match, since we substitute
- on the null match and then increment past the current character.
- Not doing this means that each character of the original string
- is replaced because of the null matches. Fixes debian bug
- reported bhy Louis-David Mitterrand <ldm@apartia.fr>
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522160
-
-lib/sh/winsize.c
- - incorporate contents of readline/rlwinsize.h to get all the various
- system dependencies right when trying to find TIOCGWINSZ. Fixes
- bug reported by Dan Price <dp@eng.sun.com>
-
- 4/6
- ---
-doc/{bash.1,bashref.texi}
- - fix description of conditional `>' and `<' to remove statement that
- the comparison pays attention to the current locale -- it has
- always used strcmp
-
-lib/glob/glob.c
- - fixed a bug in glob_filename that caused glob_dir_to_array to be
- called to prepend a (globbed) directory name onto the results from
- glob_vector, which, if we were globbing `**', glob_vector has
- already done. Effect is to have the directory name(s) on there
- twice. Fixes "dir*/**" bug reported by Matt Zyzik
- <Matt@ice.filescope.com>
-
- 4/8
- ---
-doc/{bash.1,bashref.texi}
- - fix short syntax summary of for command to reflect full bash
- syntax (which is a superset of Posix syntax). Fixes bug reported
- by Reuben Thomas <rrt@sc3d.org>
-
- 4/10
- ----
-{expr,subst}.c
- - make sure last_command_exit_value is set to EXECUTION_FAILURE
- before calling err_unboundvar, in case set -e is enabled and
- the shell exits from there. Fixes bug reported by Freddy
- Vulto <fvulto@gmail.com> and Piotr Zielinski
- <piotr.zielinski@gmail.com>
-
- 4/11
- ----
-jobs.c
- - in restore_pipeline, don't call discard_pipeline with a NULL
- argument
-
-trap.c
- - in run_debug_trap, make sure to save and restore the pipeline,
- pipeline_pgrp, and state of the pipeline around running the debug
- trap, then remove any job created by running the debug trap from
- the jobs table when it completes. Fixes for two bugs reported
- by lex@upc.ua
-
- 4/12
- ----
-lib/readline/signals.c
- - new functions to block and release SIGWINCH like the SIGINT blocking
- and releasing functions
-
-lib/readline/rlprivate.h
- - new extern declarations for _rl_block_sigwinch and _rl_release_sigwinch
-
-lib/readline/display.c
- - block SIGWINCH during redisplay like SIGINT. Should fix bug reported
- by Nicolai Lissner <nlissne@linux01.org>
-
- 4/13
- ----
-lib/readline/readline.h
- - new readline state variable: RL_STATE_REDISPLAYING
-
-lib/readline/display.c
- - in rl_redisplay, don't block SIGWINCH during redisplay; just set
- the REDISPLAYING state
-
-lib/readline/terminal.c
- - in rl_resize_terminal, don't call rl_redisplay_after_sigwinch() if
- we're already in the middle of redisplay (RL_STATE_REDISPLAYING).
- Fix for bug reported by Nicolai Lissner <nlissne@linux01.org>
-
- 4/15
- ----
-parse.y
- - fix parse_comsub to add check for \n when seeing whether the current
- character can change to a state where a reserved word is legal,
- since it is not a shell meta character. Fixes bug reported by
- Bernd Eggink <monoped@sudrala.de>.
-
- 4/17
- ----
-jobs.c
- - new functions to save and restore the pgrp_pipe (since there's only
- one): save_pgrp_pipe and restore_pgrp_pipe
-
-trap.c
- - run_debug_trap now saves and restores the pgrp_pipe before and
- after calling the debug trap
- - run_debug_trap now makes sure the terminal is owned by the pipeline
- pgrp after the debug trap runs. Rest of fix for bug reported by
- Oleksly Melnyk <o.melnyk@upc.ua> (lex@upc.ca)
-
- 4/19
- ----
-include/posixselect.h
- - new include file, encapsulates select(2) includes and defines for
- bash and readline. Inspired by patch from Mike Frysinger
- <vapier@gentoo.org>
-
-lib/sh/input_avail.c
- - include "posixselect.h"
-
-lib/readline/{input,parens}.c
- - include "posixselect.h" instead of using inline includes
- - use new USEC_TO_TIMEVAL define to make sure that values for timeouts
- greater than one second are handled properly
-
-lib/sh/fpurge.c
- - updated implementation, taken from gnulib
-
- 4/21
- ----
-lib/glob/glob.c
- - in finddirs, don't try to free a return value of glob_error_return
- from glob_vector. Bug and fix from werner@suse.de
-
-lib/readline/signals.c
- - in rl_echo_signal_char, check that SIGQUIT and SIGTSTP are defined
- before trying to use them. Bug report and fix from Volker Grabsch
- <vog@notjusthosting.com>
-
- 4/24
- ----
-aclocal.m4
- - add conditional inclusion of <stdint.h> to BASH_CHECK_TYPE
-
-bashtypes.h,lib/sh/strto[iu]max.c
- - include <stdint.h> if present for any existing declaration of
- intmax_t and uintmax_t. Fixes Interix problem reported by
- Markus Duft <mduft@gentoo.org>
-
-lib/sh/strindex.c,externs.h,builtins/common.h
- - renamed strindex to strcasestr to agree with other implementations
- (e.g., BSD, MacOS X, gnulib); changed callers
-
-lib/sh/{strindex.c,Makefile.in},Makefile.in
- - renamed strindex.c to strcasestr.c
-
-configure.in
- - add strcasestr to call to AC_REPLACE_FUNCS, take advantage of
- existing libc implementations
-
-config.h.in
- - add define for HAVE_STRCASESTR
-
-lib/sh/mbscmp.c
- - fix mbscmp to return correct values when the strings do not contain
- valid multibyte characters. Ideas from gnulib
-
-xstrchr.c
- - only compare current character against C if mblength == 1
-
-{shell,variables}.c
- - changed some xstrchr calls back to strchr when the arguments cannot
- contain multibyte characters
-
-lib/sh/{xstrchr.c,Makefile.in},Makefile.in
- - renamed xstrchr to mbschr; renamed file to mbschr.c
-
-aclocal.m4
- - change BASH_CHECK_MULTIBYTE to use AC_REPLACE_FUNCS(mbschr)
-
-externs.h
- - extern declarations for mbscmp and mbschr, conditional on the usual
- HAVE_MBSCMP and HAVE_MBSCHR defines
-
-general.h,{alias,arrayfunc,bashline,general,execute_cmd,subst}.c
- - changed calls to xstrchr to mbschr
-
-doc/bash.1
- - use `pathname expansion' consistently, not `filename expansion' or
- `filename generation'
-
-doc/bashref.texi
- - use the phrase `filename expansion' consistently (since this is
- what the Gnu people prefer) instead of `pathname expansion' or
- `filename generation'
-
-aclocal.m4,config.h.in
- - check for mbscasecmp in BASH_CHECK_MULTIBYTE, define HAVE_MBSCASECMP
- if found
-
-lib/sh/{mbscasecmp.c,Makefile.in}
- - new file, case-insensitive multibyte string comparison
-
-externs.h
- - extern declaration for mbscasecmp
-
- 4/25
- ----
-lib/readline/display.c
- - in _rl_move_cursor_relative, don't adjust dpos by woff if it's
- already less than woff (don't want it less than 0)
- - in _rl_move_cursor_relative, short-circuit right away if the cursor
- is at columns 0 and `new' is 0 (doesn't matter if it's a multibyte
- locale or not, or whether there are invisible chars in the prompt)
- - in _rl_move_cursor_relative, go ahead and adjust dpos if
- prompt_physical_chars >= _rl_screenwidth (previous check was just > )
- Fixes bug reported by Andreas Schwab <schwab@linux-m68k.org>
-
- 4/28
- ----
-lib/glob/glob.c
- - in glob_vector, don't add an empty pathname ("") if we're adding the
- currect directory to the dirlist and GX_NULLDIR is set -- we can just
- ignore it, since the passed directory name (".") was created by
- the caller. Fixes bug reported by Matt Zyzik <matt.zyzik@nyu.edu>
-
- 5/5
- ---
-subst.c
- - make expansion of $@ and $* when set -u is in effect and there are
- no positional parameters be a non-fatal error. This is the
- consensus of the austin group, though it is not historical practice.
- Message from Geoff Clare <20090505091501.GA10097@squonk.masqnet> of
- 5 May 2009 and http://austingroupbugs.net/view.php?id=155
-
-
- 5/20
- ----
-lib/glob/glob.c
- - tentative fix to glob_filename to compensate for glob_vector putting
- null pathname at front of result vector when dflags&GX_NULLDIR.
- Current fix manually removes empty string element from front of
- result vector; a better fix would be to use a flag so glob_vector
- doesn't add it at all. Augments patch from 4/28, which appears to
- have broken some things. Fixes bug reported by Matt Zyzik
- <matt.zyzik@nyu.edu>
-
- 5/22
- ----
-
-lib/glob/glob.c
- - better fix for glob_filename; supersedes patch of 5/20. Now the
- code does not set GX_ADDCURDIR if directory_len == 0 and the
- function has not been called recursively ((flags & GX_ALLDIRS) == 0).
- Better fix for bug reported by Matt Zyzik <matt.zyzik@nyu.edu>
-
-Makefile.in
- - fix build race condition that occurs in some makes caused by
- libreadline.a and libhistory.a containing some of the same files
- (e.g., xmalloc.o) and conflicting when trying to build both at
- the same time. Reported by Mike Frysinger <vapier@gentoo.org>
-
- 5/25
- ----
-lib/readline/vi_mode.c
- - fix _rl_vi_initialize_line so that the loop counter is not
- unsigned (it doesn't matter, but it eliminates a compiler warning).
- Bug reported by Dave Caroline <dave.thearchivist@gmail.com>
-
- 5/26
- ----
-doc/{bash.1,bashref.texi}
- - add text to the description of array variables making it clear
- that an array variable is not considered set until a subscript
- has been assigned a value
-
- 5/29
- ----
-lib/readline/text.c
- - fix rl_change_case to handle case where mbrtowc doesn't find a
- valid multibyte character
-
-lib/readline/vi_mode.c
- - fix _rl_vi_change_mbchar_case to handle case where mbrtowc doesn't
- find a valid multibyte character
-
-lib/sh/casemod.c
- - fix sh_modcase to handle case where mbrtowc doesn't find a valid
- multibyte character
-
-lib/readline/mbutil.c
- - fix _rl_find_next_mbchar_internal to not call mbrtowc at the end of
- the string, since implementations return different values -- just
- break the loop immediately
-
-lib/readline/display.c
- - fix rl_redisplay to make same sort of cursor position adjustments
- based on multibyte locale and _rl_last_c_pos when performing
- horizontal scrolling rather than line wrapping. Probably still
- more to do. Fixes bug reported by jim@jim.sh
-
- 6/5
- ---
-doc/{bash.1,bashref.texi
- - added some more explanation of the inheritance of the ERR trap at
- the suggestion of Thomas Pospisek <tpo@sourcepole.ch>
-
-findcmd.c
- - use eaccess(2) if available in file_status to take other file
- access mechanisms such as ACLs into account. Patch supplied
- by werner@suse.de
-
- 6/12
- ----
-xmalloc.c
- - also calculate lowest brk() value the first time xmalloc/xrealloc
- (and their sh_ counterparts) are called
- - error messages consolidated into a single function (allocerr/
- sh_allocerr) to avoid string duplication
-
- 6/16
- ----
-variables.c
- - changes to allow variables.c to be compiled if ALIAS is not defined.
- Bug and fix from John Gatewood Ham <uraphalinuxserver@gmail.com>
-
-lib/sh/getcwd.c
- - fix so systems defining BROKEN_DIRENT_D_INO have the necessary
- defines. Fix from Jay Krell <jay.krell@cornell.edu>
-
-configure.in
- - add -D_ALL_SOURCE to interix CFLAGS for struct timezone definition.
- Bug and fix from John Gatewood Ham <uraphalinuxserver@gmail.com>
-
- 6/29
- ----
-variables.c
- - change initialize_shell_variables to add environment variables with
- invalid names to the variables hash table, but marking them as
- invisible and imported
- - new function, export_environment_candidate. Used when creating the
- export environment for commands to include variables with invalid
- names inherited from the initial environment. Apparently this
- behavior is widespread
- - change make_var_export_array to use export_environment_candidate
- rather than visible_and_exported to test variables for inclusion
- in the export environment
-
- 7/1
- ---
-builtins/read.def
- - fix a memory leak where the number of fields is not the same as
- the number of variables passed to `read'. Bug report from
- werner@suse.de
-
-builtins/command.def
- - move section of code that sets PATH from -p option before the
- verbose-handling section, so command -v and command -V honor
- the PATH set by command -p. Bug report and fix from
- ohki@gssm.otsuka.tsukuba.ac.jp
-
- 7/9
- ---
-subst.c
- - change brace_expand_word_list to defer brace expansion on compound
- array assignments that are arguments to builtins like `declare',
- deferring the expansion until the assignment statement is processed.
- Fixes inconsistency reported by agriffis@n01se.net
-
- 7/16
- ----
-bashline.c
- - fix bash_execute_unix_command to set rl_point correctly based on
- READLINE_POINT. The old method of using save_point will not
- work because maybe_make_readline_line will change rl_point. Bug
- reported by Henning Bekel <h.bekel@googlemail.com>
-
-trap.c
- - fix _run_trap_internal and run_pending_traps to save and restore
- value of subst_assign_varlist so the dispose_words on it doesn't
- leave dangling pointers after the trap handler runs. Fixes bug
- reported by Marc Herbert <marc.herbert@gmail.com>
-
- 7/22
- ----
-subst.c
- - fix off-by-one error in pos_params when computing positional
- parameters beginning with index 0. Bug and fix from Isaac Good
- <isaacgood@gmail.com>
-
- 7/24
- ----
-lib/readline/display.c
- - add code to _rl_move_cursor_relative and _rl_col_width to short-
- circuit a few special cases: prompt string and prompt string plus
- line contents, both starting from 0. Saves a bunch of calls to
- multibyte character functions using already-computed information.
- As a side effect, fixes bug reported by Lasse Karkkainen
- <tronic+8qug@trn.iki.fi>
-
-subst.c
- - fixed a problem in split_at_delims that could leave *cwp set to -1
- if the line ends in IFS whitespace and SENTINEL is one of those
- whitespace characters. Fixes problem with setting COMP_CWORD for
- programmable completion reported by Ville Skytta <ville.skytta@iki.fi>
-
-bashline.c
- - change bash_execute_unix_command to clear the current line (if the
- terminal supplies the "ce" attribute) instead of moving to a new
- line. Inspired by report from Henning Bekel <h.bekel@googlemail.com>
-
-builtins/printf.def
- - changes to allow printf -v var to assign to array indices, the way
- the read builtin can. Suggested by Christopher F. A. Johnson
- <cfajohnson@gmail.com>
-
-lib/readline/complete.c
- - fix rl_old_menu_complete and rl_menu_complete to appropriately set
- and unset RL_STATE_COMPLETING while generating the list of matches.
- Fixes debian bug #538013 reported by Jerome Reybert
- <jreybert@gmail.com>
-
- 7/25
- ----
-execute_cmd.c
- - change execute_builtin to temporarily turn off and restore the ERR
- trap for the eval/source/command builtins in the same way as we
- temporarily disable and restore the setting of the -e option.
- Fixes bug reported by Henning Garus <henning.garus@googlemail.com>
-
- 7/27
- ----
-shell.c
- - add fflush(stdout) and fflush(stderr) to exit_shell before closing
- any file descriptors at exit time (e.g., coproc pipes)
-
- 7/30
- ----
-lib/readline/complete.c
- - new function rl_backward_menu_complete, just passes negative count
- argument to rl_menu_complete
- - change rl_menu_complete to act appropriately if rl_last_command is
- rl_backward_menu_complete, so we can cycle forward and backward
- through the list of completions
-
-lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
- - document new "menu-complete-backward" bindable readline function.
- Suggested by Jason Spiro <jasonspiro04@gmail.com>
-
-lib/readline/vi_keymap.c
- - add binding of C-n to menu-complete and C-p to menu-complete-backward
- in vi-insert keymap, as suggested by Jason Spiro
- <jasonspiro04@gmail.com>
-
-pcomplete.c
- - fixed a bug in programmable_completions: the options it returned from
- the compspec it found were set before generating the completions,
- which meant that any changes made by "compopt" were overridden and
- only in effect for the duration of the executing shell function
- rather than the entire completion. Fixes bug reported by Ville
- Skytta <ville.skytta@iki.fi>
-
- 7/31
- ----
-lib/readline/keymaps.c
- - fixed memory leak in rl_discard_keymap by freeing storage associated
- with hierarchical keymaps
- - new convenience function, rl_free_keymap, that calls rl_discard_keymap
- and frees the keymap passed as an argument
-
-lib/readline/util.c
- - new bindable keymap function, _rl_null_function, to be used internally
-
-lib/readline/rlprivate.h
- - extern declaration for _rl_null_function
-
-lib/readline/bind.c
- - fix rl_generic_bind in the case where we are trying to override a
- keymap with a null function (e.g., when trying to unbind it). We
- can't use a NULL function pointer in ANYOTHERKEY since that's
- indistinguishable from the keymap not having been overridden at all.
- We use _rl_null_function instead, which simply does nothing. We
- could add an rl_ding to it later. Fixes problem with hitting ESC
- repeatedly while in vi command mode reported by James Rowell
- <jrjimmy801-misc1@yahoo.com>
-
-builtins/bind.def
- - call rl_bind_keyseq instead of rl_set_key for -r option
-
-lib/readline/readline.c
- - Set vi_movement_keymap[ESC] to _rl_null_function after binding the
- arrow keys in bind_arrow_keys() to allow vi-mode users to hit ESC
- multiple times in vi command mode while still allowing the arrow
- keys to work
-
- 8/2
- ---
-bashline.c
- - fix clear_hostname_list by setting hostname_list_initialized to 0
- after freeing all list members. Fixes bug reported by Freddy
- Vulto <fvulto@gmail.com>
-
-lib/readline/display.c
- - in update_line, if we copy data from one line to another because we
- are wrapping a multibyte character from, say, the first line to the
- second, we need to update OMAX and the line indices to account for
- the moved data. Bug report and fix from Martin Hamrle
- <martin.hamrle@gmail.com>
-
- 8/3
- ---
-pcomplete.h
- - defines for EMPTYCMD ("_EmptycmD_") and DEFAULTCMD ("_DefaultCmD_")
-
-builtins/complete.def
- - change compopt_builtin to make -E work on the "empty" command
- completion
- - fix print_compitem and print_compopts to replace EMPTYCMD with -E
- - added -D (default) option to complete/compgen/compopt. No supporting
- code yet
-
-doc/bash.1,lib/readline/doc/rluser.texi
- - document new -D, -E options to compopt
- - document new -D option to complete/compgen
-
-shell.h
- - new define, EX_WEXPCOMSUB, value of 125
- - new define, EX_RETRYFAIL, value of 124 (for programmable completion)
-
-subst.c
- - use EX_WEXPCOMSUB instead of literal 125 as exit status when a shell
- invoked to run wordexp(3) with the -n option supplied attempts a
- command substitution
-
-pcomplete.c
- - new define, PCOMP_RETRYFAIL, used to indicate a "failure, retry with
- next completion" status to the programmable completion code
-
- 8/4
- ---
-pcomplete.c
- - changed gen_shell_function_matches to take an extra parameter
- indicating whether the specified shell function was not found or
- returned the special "fail/retry" status, and, if it was either,
- to not bother returning any matches list
- - changed gen_compspec_completions to take an extra parameter to pass
- through the "found" status from gen_shell_function_completions
- - new function gen_progcomp_completions to take care of searching for
- and evaluating a compspec for a particular word, saving its status,
- and returning to its caller (programmable_completions) whether or
- not to retry completion. This function also checks whether a
- retry changed the compspec associated with a command and short-
- circuits the retry if it has not
- - changed programmable_completions to try default completion (if set)
- if a specific completion was not found for a command
- - changed programmable_completions to implement "fail/retry" semantics
- for a shell function that returns 124 and changes the compspec
- associated with the command. All based on proposal and changes from
- Behdad Esfahbod (Red Hat bugzilla 475229)
-
-doc/bash.1,lib/readline/doc/rluser.texi
- - documented new dynamic programmable completion functionality
-
- 8/5
- ---
-stringlib.c
- - first argument to substring() is now `const char *'
-
-externs.h
- - changed extern declaration for substring()
-
-subst.c
- - skipsubscript now takes a third FLAGS argument, passes to
- skip_matched_pair
- - skip_matched_pair now interprets flags&1 to mean not to parse
- matched pairs of quotes, backquotes, or shell word expansion
- constructs
-
-{subst,general,expr}.c
- - changed skipsubscript() callers
-
-assoc.c
- - changed assoc_to_assign to double-quote the key if it contains any
- shell metacharacters
-
-arrayfunc.c
- - use skipsubscript in quote_assign rather than quote any glob
- characters in the subscript of an array assignment
- - in assign_compound_array_list, call skipsubscript with a flags
- argument of 1 if assigning an associative array to avoid trying
- to re-parse quoted strings
-
-redir.c
- - set expanding_redir before expanding body of here documents and
- here strings to avoid looking for variables in temporary env
-
- 8/7
- ---
-lib/readline/readline.c
- - in _rl_dispatch_callback, return value of -3 means that we have
- added to a key sequence, but there are previous matches in the
- sequence. Don't call _rl_subseq_result if we get a -3 from a
- previous context in the chain; just go back up the chain. Report
- and fix from <freehaha@gmail.com>
-
-bashline.c
- - fixes to history_completion_generator and bash_dabbrev_expand to
- make dabbrev-expand inhibit suppressing of appending space char
- to matches. Have to do it with the generator too because
- rl_menu_complete turns off suppressing the appended space in
- set_completion_defaults(). Suggestion from Dan Nicolaescu
- <dann@ics.uci.edu>
- - suppress completion match sorting in bash_dabbrev_expand by
- setting rl_sort_completion_matches = 0. Suggestion from Dan
- Nicolaescu <dann@ics.uci.edu>
- - don't qsort history match list in build_history_completion_array
- if dabbrev_expand_active == 1
- - start the loop in build_history_completion_array that gathers words
- from history for possible completions from the end of the list
- rather than the beginning. It doesn't matter where you start if
- the results are sorted, and dabbrev-expand is supposed to offer
- the most recent completions first
-
- 8/12
- ----
-execute_cmd.c
- - change to execute_command_internal to make [[ ... ]] conditional
- command subject to settings of `set -e' and the ERR trap
-
- 8/14
- ----
-execute_cmd.c
- - change to execute_command_internal to make (( ... )) arithmetic
- command subject to settings of `set -e' and the ERR trap
-
-lib/readline/text.c
- - new bindable function, rl_skip_csi_sequence, reads the characters
- that make up a control sequence as defined by ECMA-48. Sequences
- are introduced by the Control Sequence Indicator (CSI) and
- contain a defined set of characters. Insert, End, Page Up and so
- on are CSI sequences. Report and code from Andy Koppe
- <andy.koppe@gmail.com>
-
-lib/readline/readline.h
- - extern declaration for rl_skip_csi_sequence
-
-lib/readline/funmap.c
- - new bindable command "skip-csi-sequence", runs rl_skip_csi_sequence
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - documented new bindable command "skip-csi-sequence", unbound by
- default
-
-builtins/evalfile.c
- - fix _evalfile to remove embedded null bytes from the file read
- into the string. Report and proposed fix from Roman Rakus
- <rrakus@redhat.com>
-
-{configure,config.h}.in
- - check for syslog(3), define HAVE_SYSLOG
- - check for syslog.h, define HAVE_SYSLOG_H
-
-config-top.h
- - new define SYSLOG_HISTORY, disabled by default
-
-config-bot.h
- - if HAVE_SYSLOG or HAVE_SYSLOG_H are not defined, undef SYSLOG_HISTORY
-
-bashhist.c
- - if SYSLOG_HISTORY is defined, call bash_syslog_history with the
- line added to the history in bash_add_history.
- - new function, bash_syslog_history(line), sends line to syslog at
- user.info. The line is truncated to send no more than 600
- (SYSLOG_MAXLEN) bytes to syslog. Feature requested by many, and
- required by some national laws
-
-sig.c
- - in termsig_handler, resend SIGHUP to children if subshell_environment
- indicates we're a shell performing command or process substitution
-
-jobs.c
- - add CHECK_TERMSIG calls to wait_for in addition to the ones in
- waitchld()
-
-builtins/shopt.def
- - new functions set_bashopts, parse_bashopts, and initialize_bashopts
- to manage new environment variable $BASHOPTS, like $SHELLOPTS but
- for shopt options
- - change toggle_shopts to call set_bashopts after setting options, so
- $BASHOPTS reflects new values
-
-shell.c
- - call initialize_bashopts after calling initialize_shell_options at
- shell startup
-
-configure.in
- - new configure `enable' option --enable-exended-glob-default, to
- set the initial default value of the `extglob' shell option
-
-config.h
- - new define, EXTGLOB_DEFAULT, controlled by the `extended-glob-default'
- configure option
-
-pathexp.c
- - initialize extended_glob variable to EXTGLOB_DEFAULT
-
-doc/{bash.1,bashref.texi}
- - document new $BASHOPTS variable and its behavior
-
-doc/bashref.texi
- - document new --enable-extended-glob-default configure option
-
- 8/16
- ----
-print_cmd.c
- - new variables: xtrace_fd and xtrace_fp, the file descriptor and
- FILE * to which we send `set -x' tracing output. If fd == -1
- then fp == STDERR, the default mode
- - new function xtrace_init, sets xtrace_fd == -1 and xtrace_fp = stderr
- - new function xtrace_set (fd, fp), sets xtrace_fd and xtrace_fp
- to the arguments
- - new function xtrace_reset, handles closing old xtrace fd/fp and
- moving them back to -1/stderr
- - new function xtrace_fdchck, calls xtrace_reset if the fd passed as
- an argument is xtrace_fd
- - change xtrace functions to fprintf to xtrace_fp instead of stderr
-
-shell.c
- - call xtrace_init() very early in main()
-
-variables.c
- - new special variable, BASH_XTRACEFD, holds file descriptor used for
- set -x trace output. Inspired by suggestion from Bruce Korb
- <bruce.korb@gmail.com>
-
-doc/{bash.1,bashref.texi}
- - added description of new BASH_XTRACEFD variable
-
-redir.c
- - add calls to xtrace_fdchk to the redirections that close file
- descriptors, so we notice if we close BASH_XTRACEFD and compensate
- accordingly (same places that call coproc_fdchk())
-
- 8/18
- ----
-lib/readline/text.c
- - change to _rl_replace_text to add error checks: start must be <=
- end, and we don't call rl_insert_text if passed the empty string
-
-config.h.in
- - add define for HAVE_ICONV, already found by intl autoconf macros
- - add define for HAVE_LOCALE_CHARSET
-
-aclocal.m4
- - add check for locale_charset() to BASH_CHECK_MULTIBYTE
-
-lib/sh/fnxform.c
- - new file with two public function: fnx_tofs and fnx_fromfs.
- Primarily intended for use on MacOS X, they use iconv to convert
- between whatever the current locale encoding is and "UTF-8-MAC",
- a special encoding on OS X in which all characters are
- decomposed unicode, as the HFS+ filesystem stores them. These
- functions return a pointer to a local buffer, allocated once and
- resized as necessary, to avoid too many allocations; callers
- should not free the return value, since it may be the string
- passed
-
-Makefile.in
- - make sure LIBICONV is set by autoconf (@LIBICONV@) and added to
- list of link libraries
-
-externs.h
- - new extern declarations for fnx_fromfs and fnx_tofs
-
-lib/glob/glob.c
- - convert the filename read using readdir() in glob_vector() using
- fnx_fromfs and use that value in the call to strmatch. This
- ensures that we're using the precomposed Unicode value of the
- filename rather than the native decomposed form. Original bug
- report from Len Lattanzi <llatanzi@apple.com>; fix inspired by
- Guillaume Outters <guillaume.outters@free.fr>
-
- 8/19
- ----
-lib/readline/complete.c
- - new completion hook: rl_filename_rewrite_hook, can rewrite or modify
- filenames read from the filesystem before they are compared to the
- word to be completed
-
-lib/readline/readline.h
- - extern declaration for rl_filename_rewrite_hook
-
-lib/readline/doc/rltech.texi
- - document rl_filename_rewrite_hook
-
-bashline.c
- - new function, bash_filename_rewrite_hook, assigned to
- rl_filename_rewrite_hook. Calls fnx_fromfs to convert from
- filesystem format to "input" format. This makes completing
- filenames with accented characters work on Mac OS X
-
- 8/20
- ----
-lib/readline/bind.c
- - new bindable variable "skip-completed-text", bound to
- _rl_skip_completed_text. If enabled, it means to note when
- completing before the end of a word and skipping over characters
- after rl_point that match in both the completion to be inserted
- and the word being completed. It means that completing
- `Makefile' with the cursor after the `e' results in `Makefile'
- instead of `Makefilefile'. Inspired by an idea from Jared
- Yanovich <phierunner@comcast.net> from back in 2004
-
-lib/readline/rlprivate.h
- - extern declaration for _rl_skip_completed_text
-
-lib/readline/complete.c
- - implement semantics of _rl_skip_completed_text in insert_match:
- skip characters in `replacement' that match chars in rl_line_buffer
- from the start of the word to be completed
-
- 8/21
- ----
-error.c
- - change parser_error to set last_command_exit_value to 2 before
- calling exit_shell (if set -e is enabled), so any exit or ERR
- trap gets the right value of $?. Suggestion from Stefano
- Lattarini <stefano.lattarini@gmail.com>
-
-braces.c
- - fix expand_seqterm so that a non-zero-prefixed term that's longer
- than a zero-prefixed term determines the length of each term
- in the brace-expanded sequence. This means that things like
- {01..100} will have three digits in all the elements of the
- expanded list. Fixes bug reported by Jeff Haemer
- <jeffrey.haemer@gmail.com>
-
- 8/24
- ----
-{arrayfunc,variables}.c
- - when inserting a value into an associative array using syntax like
- T=v where T is an already-declared associative array using key "0",
- make sure the key is in newly-allocated memory so it can be freed
- when the variable is unset. Fixes bug reported as redhat 518644
- by Jon Fairbairn
-
- 8/26
- ----
-lib/readline/funmap.c
- - add "old-menu-complete" binding for rl_old_menu_complete
-
-lib/readline/readline.h
- - add extern declaration for rl_old_menu_complete
-
-subst.c
- - fix memory leak when processing ${!prefix@}. Need to dispose all
- words in the word list created from all matching variable. Fixes
- bug reported by muszi@muszi.kite.hu.
-
- 8/29
- ----
-execute_cmd.c
- - add fflush(stdout) and fflush(stderr) to child coproc code before
- calling exit after execute_in_subshell
-
- 8/31
- ----
-lib/readline/{{bind,readline}.c,rlprivate.h}
- - new bindable variable, "echo-control-characters", enabled by default.
- This controls whether or not readline honors the tty ECHOCTL bit
- and displays characters corresponding to keyboard-generated signals.
- Controlled by _rl_echo_control_chars variable, declared in readline.c
-
-lib/readline/signals.c
- - if _rl_echo_control_chars == 0, don't go through _rl_echo_signal_char
-
-
-lib/readline/doc/{readline.3,rluser.texi}
- - document "echo-control-characters" bindable variable
-
- 9/1
- ---
-lib/readline/histexpand.c
- - hist_string_extract_single_quoted now takes an additional argument:
- a flags word. The only defined value (flags & 1) allows backslash
- to quote the single quote. This is to inhibit history expansion
- inside $'...' containing an escaped single quote.
- - change history_expand to call hist_string_extract_single_quoted
- with flags == 1 if it sees $'. Fixes bug reported by Sean
- Donner <sean.donner@gmail.com>
-
- 9/2
- ---
-builtins/printf.def
- - add a call to sh_wrerror if ferror() succeeds in the PRETURN macro,
- to print an error message in the case that the final fflush fails
- (for instance, because it attempts to write data that didn't have a
- trailing newline). Fixes bug reported by Stefano Lattarini
- <stefano.lattarini@gmail.com>
-
- 9/7
- ---
-arrayfunc.c
- - some fixes to assign_compound_array_list to avoid null pointer
- dereferences pointed out by clang/scan-build
-
-lib/glob/glob.c
- - fixes to udequote_pathname and wdequote_pathname to avoid possible
- null pointer dereferences pointed out by clang/scan-build
-
-lib/readline/undo.c
- - fix to _rl_copy_undo_list (function unused) to avoid deref of
- uninitialized pointer pointed out by clang/scan-build
-
-general.c
- - fix string_to_rlimtype so it works if passed a null pointer (though
- it never is)
-
-builtins/mapfile.def
- - fix to mapfile() to avoid possible null pointer dereference pointed
- out by clang/scan-build
-
-variables.c
- - fix to valid_exportstr to avoid possible null pointer dereferences
- pointed out by clang/scan-build
-
-bashline.c
- - fix to bash_execute_unix_command to avoid possible null pointer
- dereference if READLINE_LINE or READLINE_POINT is not bound
-
- 9/11
- ----
-[Prayers for the victimes of 9/11/2001]
-
-command.h
- - add `rflags' member to struct redirect to hold private flags and
- state information
- - change redirector to a REDIRECTEE instead of int to prepare for
- possible future changes
-
-{copy_cmd,dispose_cmd,make_cmd,print_cmd,redir}.c
- - changes resulting from type change of `redirector' member of struct
- redirect: change x->redirector to x->redirector.dest and add code
- where appropriate to deal with x->redirector.filename
-
-make_cmd.h
- - change extern declaration for make_redirection
-
-make_cmd.c
- - first argument of make_redirection is now a `REDIRECTEE' to prepare
- for possible future changes. First arg is now assigned directly to
- redirector member instead of assigning int to redirector.dest
-
-{make_cmd,redir}.c,parse.y
- - changes resulting from type change of first argument to
- make_redirection from int to REDIRECTEE. In general, changes are
- using REDIRECTEE sd and assigning old argument to sd.dest, then
- passing sd to make_redirection
-
-make_cmd.[ch],parse.y
- - add fourth argument to make_redirection: flags. Sets initial value
- of `rflags' member of struct redirect
- - changed all callers of make_redirection to add fourth argument of 0
-
- 9/15
- ----
-parse.y
- - change read_token_word to return REDIR_WORD for tokens of the form
- {var} where `var' is a valid shell identifier and the character
- following the } is a `<' or `>'
- - add REDIR_WORD versions of all input and output file redirections
- and here documents
-
-print_cmd.c
- - change input and output file redirection direction and here
- document cases of print_redirection to print a varname
- specification of the form {var} when appropriate. Still need
- to fix rest of cases
-
-redir.c
- - implement REDIR_VARASSIGN semantics for file input and output
- redirections and here documents
-
- 9/16
- ----
-parse.y
- - added REDIR_WORD versions of remaining redirection constructs except
- for err_and_out ones
-
-redir.c
- - handle REDIR_VARASSIGN semantics for rest of redirection constructs
- - accommodate REDIR_VARASSIGN when translating redirections
- - new function, redir_varvalue, does variable lookup for {v} when
- redirection needs the value (e.g., r_close_this)
-
-print_cmd.c
- - fix rest of cases to print {varname} when REDIR_VARASSIGN is set in
- redirect->rflags
-
-doc/{bash.1,bashref.texi}
- - document new {varname} REDIR_VARASSIGN form of redirections
-
-tests/vredir.{right,tests},vredir[1-5].sub
- - tests for new {varname} REDIR_VARASSIGN form of redirections
-
- 9/18
- ----
-subst.c
- - new flags argument to split_at_delims: these flags are ORd with
- SD_NOJMP and passed to skip_to_delim
- - change skip_to_delim to honor new SD_NOQUOTEDELIM flag by not
- checking whether or not single and double quotes are delimiters
- if it's set in passed flags until after skipping quoted strings.
-
-subst.h
- - change extern declaration for split_at_delims
- - new define for SD_NOQUOTEDELIM flag
-
-pcomplete.c
- - pass SD_NOQUOTEDELIM in flags argument to split_at_delims so single
- and double quotes, even though they're in
- rl_completer_word_break_characters, don't act as word delimiters
- for programmable completion. Fixes bug reported by Freddy
- Vulto <fvulto@gmail.com>
-
-lib/glob/glob.c
- - in glob_filename, after recursively scanning a directory specified
- with `**', turn off GX_ALLDIRS|GX_ADDCURDIR before calling
- glob_vector on the rest of the pathname, since it may not apply to
- the rest of the pattern. Turned back on if the filename makes it
- appropriate. Fixes bug reported by Anders Kaseorg <andersk@mit.edu>
-
-redir.c
- - change execute_null_command to fork a child to execute if any of
- the commands redirections have the REDIR_VARASSIGN flag set, since
- those commands are not supposed to have side effects
-
-test.c
- - < and > binary operators will obey the locale by using strcoll if
- the TEST_LOCALE flag is passed to binary_test
-
-test.h
- - new define for TEST_LOCALE
-
-execute_cmd.c
- - execute_cond_node sets TEST_LOCALE so [[ str1 < str2 ]] (and >)
- obey the locale. Fixes bug/incompatibility reported by Greg
- Wooledge <wooledg@eeg.ccf.org>
-
-doc/{bash.1,bashref.texi}
- - documented [[ command new locale-sensitive treatment of < and >
-
- 9/24
- ----
-configure.in
- - add "darwin10" cases like darwin8 and darwin9 to handle linking with
- included readline and history libraries
-
- 9/26
- ----
-lib/readline/display.c
- - modify change of 7/24 to use prompt_physical_chars instead of
- prompt_visible_length to account for visible multibyte characters in
- the line (usually in the prompt). Fixes debian bug #547264
- reported by Pietro Battiston <toobaz@email.it>
- - add flags argument to _rl_col_width; changed callers. flags > 0
- means that it's ok to use the already-computed prompt information;
- flags == 0 means that we're expanding the prompt and we should not
- short-circuit
-
-parse.y
- - in decode_prompt_string, when expanding \w and \W on Mac OS X,
- use fnx_fromfs to convert from "filesystem" form to "input" form.
- This makes $PWD with multibyte characters work in the prompt
- string on Mac OS X
-
-lib/sh/fnxform.c
- - in fnx_fromfs and fnx_tofs, use templen instead of outlen as last
- argument in calls to iconv, since outlen is used to keep track of
- the size of the buffer, and iconv potentially modifies its
- `outbytesleft' argument
-
- 9/29
- ----
-subst.c
- - make skip_to_delim understand how to skip over process substitution
- constructs the way it skips $(...) command substitution
-
- 9/30
- ----
-lib/readline/terminal.c
- - don't set the `terminal has meta key' flag if the `MT' capability is
- available; that means something completely different
-
- 10/1
- ----
-builtins/help.def
- - make sure width is at least 7, since we pass `width/2 - 3' to strncpy
- as the length argument. Terminal widths <= 6 are converted to 80.
- Fixes bug reported by Chris Hall <c@pobox.co.uk>
-
-configure.in
- - changed version to 4.1-alpha
-
-subst.h
- - new flag for skip_to_delim: SD_NOSKIPCMD, which means to not skip
- over embedded command and process substitutions, but rather to look
- for delimiters within them
-
-subst.c
- - implement semantics of SD_NOSKIPCMD in skip_to_delim
-
-bashline.c
- - call skip_to_delim with SD_NOSKIPCMD from find_cmd_start, so
- programmable completion can use the completion defined for `b' for
- command lines like "a $(b c". Fixes inconsistency/bug reported by
- Freddy Vulto <fvulto@gmail.com>
-
-parser.h
- - replace unused PST_CMDTOKEN parser state value with PST_EXTPAT,
- means currently parsing an extended glob pattern (extglob)
-
-parse.y
- - fix cond_node() so that extended_glob is set before parsing the
- rhs of the `==' or `!=' operators. For ksh93 compatibility.
- - reset extended_glob to global value (saved in parse_cond_command())
- in reset_parser()
-
- 10/5
- ----
-jobs.c
- - change waitchld() to only interrupt the wait builtin when the shell
- receives SIGCHLD in Posix mode. It's a posix requirement, but
- makes easy things hard to do, like run a SIGCHLD trap for every
- exiting child. Change prompted by question from Alex Efros
- <powerman@powerman.name>
-
-doc/bashref.texi
- - document new posix mode behavior about SIGCHLD arriving while the
- wait builtin is executing when a trap on SIGCHLD has been set
-
- 10/6
- ----
-lib/readline/histexpand.c
- - fix hist_expand to keep from stopping history expansion after the
- first multibyte character (a `break' instead of a `continue').
- Fixes debian bug (#549933) reported by Nikolaus Schulz
- <microschulz@web.de>
-
- 10/8
- ----
-builtins/read.def
- - implement new `-N nchars' option: read exactly NCHARS characters,
- ignoring any delimiter, and don't split the result on $IFS.
- Feature requested by Richard Stallman <rms@gnu.org>
-
-doc/{bash.1,bashref.texi}
- - document new `read -N' option
-
- 10/9
- ----
-lib/readline/bind.c
- - new bindable variable, "enable-meta-key", controls whether or not
- readline enables any meta modifier key the terminal claims to
- support. Suggested by Werner Fink <werner@suse.de>
-
-lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
- - document new readline "enable-meta-key" bindable variable
-
- 10/10
- -----
-trap.c
- - new function, free_trap_string(), does what it says and turns off
- SIG_TRAPPED flag without changing signal disposition
-
-[bash-4.1-alpha frozen]
+CWRU.chlog \ No newline at end of file
diff --git a/MANIFEST b/MANIFEST
index 707c7a73..284dd0e0 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -833,6 +833,7 @@ tests/exp.tests f
tests/exp.right f
tests/exp1.sub f
tests/exp2.sub f
+tests/exp3.sub f
tests/extglob.tests f
tests/extglob.right f
tests/extglob1.sub f
diff --git a/MANIFEST~ b/MANIFEST~
index 7cae7f6d..707c7a73 100644
--- a/MANIFEST~
+++ b/MANIFEST~
@@ -729,6 +729,7 @@ examples/misc/cshtobash f
tests/README f
tests/COPYRIGHT f
tests/alias.tests f
+tests/alias1.sub f
tests/alias.right f
tests/appendop.tests f
tests/appendop.right f
@@ -858,6 +859,7 @@ tests/glob1.sub f
tests/glob.right f
tests/globstar.tests f
tests/globstar.right f
+tests/globstar1.sub f
tests/heredoc.tests f
tests/heredoc.right f
tests/heredoc1.sub f
@@ -1033,6 +1035,7 @@ tests/set-e1.sub f
tests/set-e2.sub f
tests/set-e.right f
tests/set-x.tests f
+tests/set-x1.sub f
tests/set-x.right f
tests/shopt.tests f
tests/shopt.right f
diff --git a/NEWS b/NEWS
index e7e02054..05573cca 100644
--- a/NEWS
+++ b/NEWS
@@ -1,114 +1,3 @@
-This is a terse description of the new features added to bash-4.1 since
-the release of bash-4.0. As always, the manual page (doc/bash.1) is
-the place to look for complete descriptions.
-
-1. New Features in Bash
-
-a. Here-documents within $(...) command substitutions may once more be
- delimited by the closing right paren, instead of requiring a newline.
-
-b. Bash's file status checks (executable, readable, etc.) now take file
- system ACLs into account on file systems that support them.
-
-c. Bash now passes environment variables with names that are not valid
- shell variable names through into the environment passed to child
- processes.
-
-d. The `execute-unix-command' readline function now attempts to clear and
- reuse the current line rather than move to a new one after the command
- executes.
-
-e. `printf -v' can now assign values to array indices.
-
-f. New `complete -E' and `compopt -E' options that work on the "empty"
- completion: completion attempted on an empty command line.
-
-g. New complete/compgen/compopt -D option to define a `default' completion:
- a completion to be invoked on command for which no completion has been
- defined. If this function returns 124, programmable completion is
- attempted again, allowing a user to dynamically build a set of completions
- as completion is attempted by having the default completion function
- install individual completion functions each time it is invoked.
-
-h. When displaying associative arrays, subscripts are now quoted.
-
-i. Changes to dabbrev-expand to make it more `emacs-like': no space appended
- after matches, completions are not sorted, and most recent history entries
- are presented first.
-
-j. The [[ and (( commands are now subject to the setting of `set -e' and the
- ERR trap.
-
-k. The source/. builtin now removes NUL bytes from the file before attempting
- to parse commands.
-
-l. There is a new configuration option (in config-top.h) that forces bash to
- forward all history entries to syslog.
-
-m. A new variable $BASHOPTS to export shell options settable using `shopt' to
- child processes.
-
-n. There is a new confgure option that forces the extglob option to be
- enabled by default.
-
-o. New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace
- output to that file descriptor.
-
-p. If the optional left-hand-side of a redirection is of the form {var}, the
- shell assigns the file descriptor used to $var or uses $var as the file
- descriptor to move or close, depending on the redirection operator.
-
-q. The < and > operators to the [[ conditional command now do string
- comparison according to the current locale.
-
-r. Programmable completion now uses the completion for `b' instead of `a'
- when completion is attempted on a line like: a $(b c.
-
-s. Force extglob on temporarily when parsing the pattern argument to
- the == and != operators to the [[ command, for compatibility.
-
-t. Changed the behavior of interrupting the wait builtin when a SIGCHLD is
- received and a trap on SIGCHLD is set to be Posix-mode only.
-
-u. The read builtin has a new `-N nchars' option, which reads exactly NCHARS
- characters, ignoring delimiters like newline.
-
-2. New Features in Readline
-
-a. New bindable function: menu-complete-backward.
-
-b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
- and C-p to menu-complete-backward.
-
-c. When in vi command mode, repeatedly hitting ESC now does nothing, even
- when ESC introduces a bound key sequence. This is closer to how
- historical vi behaves.
-
-d. New bindable function: skip-csi-sequence. Can be used as a default to
- consume key sequences generated by keys like Home and End without having
- to bind all keys.
-
-e. New application-settable function: rl_filename_rewrite_hook. Can be used
- to rewite or modify filenames read from the file system before they are
- compared to the word to be completed.
-
-f. New bindable variable: skip-completed-text, active when completing in the
- middle of a word. If enabled, it means that characters in the completion
- that match characters in the remainder of the word are "skipped" rather
- than inserted into the line.
-
-g. The pre-readline-6.0 version of menu completion is available as
- "old-menu-complete" for users who do not like the readline-6.0 version.
-
-h. New bindable variable: echo-control-characters. If enabled, and the
- tty ECHOCTL bit is set, controls the echoing of characters corresponding
- to keyboard-generated signals.
-
-i. New bindable variable: enable-meta-key. Controls whether or not readline
- sends the smm/rmm sequences if the terminal indicates it has a meta key
- that enables eight-bit characters.
-
--------------------------------------------------------------------------------
This is a terse description of the new features added to bash-4.0 since
the release of bash-3.2. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
diff --git a/README b/README
index 73bb5f3d..2d43cea6 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is GNU Bash, version 4.1. Bash is the GNU Project's Bourne
+This is GNU Bash, version 4.0. Bash is the GNU Project's Bourne
Again SHell, a complete implementation of the POSIX.2 shell spec,
but also with interactive command line editing, job control on
architectures that support it, csh-like features such as history
diff --git a/builtins/evalstring.c b/builtins/evalstring.c
index a0fb3e26..40abe009 100644
--- a/builtins/evalstring.c
+++ b/builtins/evalstring.c
@@ -43,6 +43,7 @@
#include "../execute_cmd.h"
#include "../redir.h"
#include "../trap.h"
+#include "../bashintl.h"
#include <y.tab.h>
@@ -51,6 +52,7 @@
#endif
#include "common.h"
+#include "builtext.h"
#if !defined (errno)
extern int errno;
@@ -67,6 +69,7 @@ extern int loop_level;
extern int executing_list;
extern int comsub_ignore_return;
extern int posixly_correct;
+extern sh_builtin_func_t *this_shell_builtin;
int parse_and_execute_level = 0;
@@ -324,6 +327,19 @@ parse_and_execute (string, from_file, flags)
{
last_result = EXECUTION_FAILURE;
+ if (interactive_shell == 0 && this_shell_builtin &&
+ (this_shell_builtin == source_builtin || this_shell_builtin == eval_builtin) &&
+ last_command_exit_value == EX_BADSYNTAX && posixly_correct)
+ {
+#if 0 /* XXX - for bash-4.2 */
+ should_jump_to_top_level = 1;
+ code = ERREXIT;
+ last_command_exit_value = EX_BADUSAGE;
+#else
+ internal_warning (_("syntax errors in . or eval will cause future versions of the shell to abort as Posix requires"));
+#endif
+ }
+
/* Since we are shell compatible, syntax errors in a script
abort the execution of the script. Right? */
break;
diff --git a/builtins/evalstring.c~ b/builtins/evalstring.c~
new file mode 100644
index 00000000..598129fd
--- /dev/null
+++ b/builtins/evalstring.c~
@@ -0,0 +1,512 @@
+/* evalstring.c - evaluate a string as one or more shell commands.
+
+/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
+# include <unistd.h>
+#endif
+
+#include <stdio.h>
+#include <signal.h>
+
+#include <errno.h>
+
+#include "filecntl.h"
+#include "../bashansi.h"
+
+#include "../shell.h"
+#include "../jobs.h"
+#include "../builtins.h"
+#include "../flags.h"
+#include "../input.h"
+#include "../execute_cmd.h"
+#include "../redir.h"
+#include "../trap.h"
+#include "../bashintl.h"
+
+#include <y.tab.h>
+
+#if defined (HISTORY)
+# include "../bashhist.h"
+#endif
+
+#include "common.h"
+#include "builtext.h"
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+#define IS_BUILTIN(s) (builtin_address_internal(s, 0) != (struct builtin *)NULL)
+
+extern int indirection_level, subshell_environment;
+extern int line_number;
+extern int current_token, shell_eof_token;
+extern int last_command_exit_value;
+extern int running_trap;
+extern int loop_level;
+extern int executing_list;
+extern int comsub_ignore_return;
+extern int posixly_correct;
+extern sh_builtin_func_t *this_shell_builtin;
+
+int parse_and_execute_level = 0;
+
+static int cat_file __P((REDIRECT *));
+
+#define PE_TAG "parse_and_execute top"
+#define PS_TAG "parse_string top"
+
+#if defined (HISTORY)
+static void
+set_history_remembering ()
+{
+ remember_on_history = enable_history_list;
+}
+#endif
+
+/* How to force parse_and_execute () to clean up after itself. */
+void
+parse_and_execute_cleanup ()
+{
+ if (running_trap)
+ {
+ run_trap_cleanup (running_trap - 1);
+ unfreeze_jobs_list ();
+ }
+
+ if (have_unwind_protects ())
+ run_unwind_frame (PE_TAG);
+ else
+ parse_and_execute_level = 0; /* XXX */
+}
+
+static void
+parse_prologue (string, flags, tag)
+ char *string;
+ int flags;
+ char *tag;
+{
+ char *orig_string;
+ int x;
+
+ orig_string = string;
+ /* Unwind protect this invocation of parse_and_execute (). */
+ begin_unwind_frame (tag);
+ unwind_protect_int (parse_and_execute_level);
+ unwind_protect_jmp_buf (top_level);
+ unwind_protect_int (indirection_level);
+ unwind_protect_int (line_number);
+ unwind_protect_int (loop_level);
+ unwind_protect_int (executing_list);
+ unwind_protect_int (comsub_ignore_return);
+ if (flags & (SEVAL_NONINT|SEVAL_INTERACT))
+ unwind_protect_int (interactive);
+
+#if defined (HISTORY)
+ if (parse_and_execute_level == 0)
+ add_unwind_protect (set_history_remembering, (char *)NULL);
+ else
+ unwind_protect_int (remember_on_history); /* can be used in scripts */
+# if defined (BANG_HISTORY)
+ if (interactive_shell)
+ unwind_protect_int (history_expansion_inhibited);
+# endif /* BANG_HISTORY */
+#endif /* HISTORY */
+
+ if (interactive_shell)
+ {
+ x = get_current_prompt_level ();
+ add_unwind_protect (set_current_prompt_level, x);
+ }
+
+ add_unwind_protect (pop_stream, (char *)NULL);
+ if (orig_string && ((flags & SEVAL_NOFREE) == 0))
+ add_unwind_protect (xfree, orig_string);
+ end_unwind_frame ();
+
+ if (flags & (SEVAL_NONINT|SEVAL_INTERACT))
+ interactive = (flags & SEVAL_NONINT) ? 0 : 1;
+
+#if defined (HISTORY)
+ if (flags & SEVAL_NOHIST)
+ bash_history_disable ();
+#endif /* HISTORY */
+}
+
+/* Parse and execute the commands in STRING. Returns whatever
+ execute_command () returns. This frees STRING. FLAGS is a
+ flags word; look in common.h for the possible values. Actions
+ are:
+ (flags & SEVAL_NONINT) -> interactive = 0;
+ (flags & SEVAL_INTERACT) -> interactive = 1;
+ (flags & SEVAL_NOHIST) -> call bash_history_disable ()
+ (flags & SEVAL_NOFREE) -> don't free STRING when finished
+ (flags & SEVAL_RESETLINE) -> reset line_number to 1
+*/
+
+int
+parse_and_execute (string, from_file, flags)
+ char *string;
+ const char *from_file;
+ int flags;
+{
+ int code, lreset;
+ volatile int should_jump_to_top_level, last_result;
+ COMMAND *volatile command;
+
+ parse_prologue (string, flags, PE_TAG);
+
+ parse_and_execute_level++;
+
+ lreset = flags & SEVAL_RESETLINE;
+
+ /* Reset the line number if the caller wants us to. If we don't reset the
+ line number, we have to subtract one, because we will add one just
+ before executing the next command (resetting the line number sets it to
+ 0; the first line number is 1). */
+ push_stream (lreset);
+ if (lreset == 0)
+ line_number--;
+
+ indirection_level++;
+
+ code = should_jump_to_top_level = 0;
+ last_result = EXECUTION_SUCCESS;
+
+ with_input_from_string (string, from_file);
+ while (*(bash_input.location.string))
+ {
+ command = (COMMAND *)NULL;
+
+ if (interrupt_state)
+ {
+ last_result = EXECUTION_FAILURE;
+ break;
+ }
+
+ /* Provide a location for functions which `longjmp (top_level)' to
+ jump to. This prevents errors in substitution from restarting
+ the reader loop directly, for example. */
+ code = setjmp (top_level);
+
+ if (code)
+ {
+ should_jump_to_top_level = 0;
+ switch (code)
+ {
+ case FORCE_EOF:
+ case ERREXIT:
+ case EXITPROG:
+ if (command)
+ run_unwind_frame ("pe_dispose");
+ /* Remember to call longjmp (top_level) after the old
+ value for it is restored. */
+ should_jump_to_top_level = 1;
+ goto out;
+
+ case DISCARD:
+ if (command)
+ run_unwind_frame ("pe_dispose");
+ last_result = last_command_exit_value = EXECUTION_FAILURE; /* XXX */
+ if (subshell_environment)
+ {
+ should_jump_to_top_level = 1;
+ goto out;
+ }
+ else
+ {
+#if 0
+ dispose_command (command); /* pe_dispose does this */
+#endif
+ continue;
+ }
+
+ default:
+ command_error ("parse_and_execute", CMDERR_BADJUMP, code, 0);
+ break;
+ }
+ }
+
+ if (parse_command () == 0)
+ {
+ if ((flags & SEVAL_PARSEONLY) || (interactive_shell == 0 && read_but_dont_execute))
+ {
+ last_result = EXECUTION_SUCCESS;
+ dispose_command (global_command);
+ global_command = (COMMAND *)NULL;
+ }
+ else if (command = global_command)
+ {
+ struct fd_bitmap *bitmap;
+
+ bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
+ begin_unwind_frame ("pe_dispose");
+ add_unwind_protect (dispose_fd_bitmap, bitmap);
+ add_unwind_protect (dispose_command, command); /* XXX */
+
+ global_command = (COMMAND *)NULL;
+
+ if ((subshell_environment & SUBSHELL_COMSUB) && comsub_ignore_return)
+ command->flags |= CMD_IGNORE_RETURN;
+
+#if defined (ONESHOT)
+ /*
+ * IF
+ * we were invoked as `bash -c' (startup_state == 2) AND
+ * parse_and_execute has not been called recursively AND
+ * we're not running a trap AND
+ * we have parsed the full command (string == '\0') AND
+ * we're not going to run the exit trap AND
+ * we have a simple command without redirections AND
+ * the command is not being timed AND
+ * the command's return status is not being inverted
+ * THEN
+ * tell the execution code that we don't need to fork
+ */
+ if (startup_state == 2 && parse_and_execute_level == 1 &&
+ running_trap == 0 &&
+ *bash_input.location.string == '\0' &&
+ command->type == cm_simple &&
+ signal_is_trapped (EXIT_TRAP) == 0 &&
+ command->redirects == 0 && command->value.Simple->redirects == 0 &&
+ ((command->flags & CMD_TIME_PIPELINE) == 0) &&
+ ((command->flags & CMD_INVERT_RETURN) == 0))
+ {
+ command->flags |= CMD_NO_FORK;
+ command->value.Simple->flags |= CMD_NO_FORK;
+ }
+#endif /* ONESHOT */
+
+ /* See if this is a candidate for $( <file ). */
+ if (startup_state == 2 &&
+ (subshell_environment & SUBSHELL_COMSUB) &&
+ *bash_input.location.string == '\0' &&
+ command->type == cm_simple && !command->redirects &&
+ (command->flags & CMD_TIME_PIPELINE) == 0 &&
+ command->value.Simple->words == 0 &&
+ command->value.Simple->redirects &&
+ command->value.Simple->redirects->next == 0 &&
+ command->value.Simple->redirects->instruction == r_input_direction)
+ {
+ int r;
+ r = cat_file (command->value.Simple->redirects);
+ last_result = (r < 0) ? EXECUTION_FAILURE : EXECUTION_SUCCESS;
+ }
+ else
+ last_result = execute_command_internal
+ (command, 0, NO_PIPE, NO_PIPE, bitmap);
+
+ dispose_command (command);
+ dispose_fd_bitmap (bitmap);
+ discard_unwind_frame ("pe_dispose");
+ }
+ }
+ else
+ {
+ last_result = EXECUTION_FAILURE;
+
+ if (interactive_shell == 0 && this_shell_builtin &&
+ (this_shell_builtin == source_builtin || this_shell_builtin == eval_builtin) &&
+ last_command_exit_value == EX_BADSYNTAX && posixly_correct)
+ {
+#if 1 /* XXX - for bash-4.2 */
+ should_jump_to_top_level = 1;
+ code = ERREXIT;
+ last_command_exit_value = EX_BADUSAGE;
+#else
+ internal_warning (_("syntax errors in . or eval will cause future versions of the shell to abort as Posix requires"));
+#endif
+ }
+
+ /* Since we are shell compatible, syntax errors in a script
+ abort the execution of the script. Right? */
+ break;
+ }
+ }
+
+ out:
+
+ run_unwind_frame (PE_TAG);
+
+ if (interrupt_state && parse_and_execute_level == 0)
+ {
+ /* An interrupt during non-interactive execution in an
+ interactive shell (e.g. via $PROMPT_COMMAND) should
+ not cause the shell to exit. */
+ interactive = interactive_shell;
+ throw_to_top_level ();
+ }
+
+ if (should_jump_to_top_level)
+ jump_to_top_level (code);
+
+ return (last_result);
+}
+
+/* Parse a command contained in STRING according to FLAGS and return the
+ number of characters consumed from the string. If non-NULL, set *ENDP
+ to the position in the string where the parse ended. Used to validate
+ command substitutions during parsing to obey Posix rules about finding
+ the end of the command and balancing parens. */
+int
+parse_string (string, from_file, flags, endp)
+ char *string;
+ const char *from_file;
+ int flags;
+ char **endp;
+{
+ int code, nc;
+ volatile int should_jump_to_top_level;
+ COMMAND *volatile command, *oglobal;
+ char *ostring;
+
+ parse_prologue (string, flags, PS_TAG);
+
+ /* Reset the line number if the caller wants us to. If we don't reset the
+ line number, we have to subtract one, because we will add one just
+ before executing the next command (resetting the line number sets it to
+ 0; the first line number is 1). */
+ push_stream (0);
+
+ code = should_jump_to_top_level = 0;
+ oglobal = global_command;
+ ostring = string;
+
+ with_input_from_string (string, from_file);
+ while (*(bash_input.location.string))
+ {
+ command = (COMMAND *)NULL;
+
+#if 0
+ if (interrupt_state)
+ break;
+#endif
+
+ /* Provide a location for functions which `longjmp (top_level)' to
+ jump to. */
+ code = setjmp (top_level);
+
+ if (code)
+ {
+#if defined (DEBUG)
+itrace("parse_string: longjmp executed: code = %d", code);
+#endif
+ should_jump_to_top_level = 0;
+ switch (code)
+ {
+ case FORCE_EOF:
+ case ERREXIT:
+ case EXITPROG:
+ case DISCARD: /* XXX */
+ if (command)
+ dispose_command (command);
+ /* Remember to call longjmp (top_level) after the old
+ value for it is restored. */
+ should_jump_to_top_level = 1;
+ goto out;
+
+ default:
+ command_error ("parse_string", CMDERR_BADJUMP, code, 0);
+ break;
+ }
+ }
+
+ if (parse_command () == 0)
+ {
+ dispose_command (global_command);
+ global_command = (COMMAND *)NULL;
+ }
+ else
+ {
+ if ((flags & SEVAL_NOLONGJMP) == 0)
+ {
+ should_jump_to_top_level = 1;
+ code = DISCARD;
+ }
+ else
+ reset_parser (); /* XXX - sets token_to_read */
+ break;
+ }
+
+ if (current_token == yacc_EOF || current_token == shell_eof_token)
+ break;
+ }
+
+ out:
+
+ global_command = oglobal;
+ nc = bash_input.location.string - ostring;
+ if (endp)
+ *endp = bash_input.location.string;
+
+ run_unwind_frame (PS_TAG);
+
+ if (should_jump_to_top_level)
+ jump_to_top_level (code);
+
+ return (nc);
+}
+
+/* Handle a $( < file ) command substitution. This expands the filename,
+ returning errors as appropriate, then just cats the file to the standard
+ output. */
+static int
+cat_file (r)
+ REDIRECT *r;
+{
+ char *fn;
+ int fd, rval;
+
+ if (r->instruction != r_input_direction)
+ return -1;
+
+ /* Get the filename. */
+ if (posixly_correct && !interactive_shell)
+ disallow_filename_globbing++;
+ fn = redirection_expand (r->redirectee.filename);
+ if (posixly_correct && !interactive_shell)
+ disallow_filename_globbing--;
+
+ if (fn == 0)
+ {
+ redirection_error (r, AMBIGUOUS_REDIRECT);
+ return -1;
+ }
+
+ fd = open(fn, O_RDONLY);
+ if (fd < 0)
+ {
+ file_error (fn);
+ free (fn);
+ return -1;
+ }
+
+ rval = zcatfd (fd, 1, fn);
+
+ free (fn);
+ close (fd);
+
+ return (rval);
+}
diff --git a/builtins/mapfile.def b/builtins/mapfile.def
index a1682f76..bd71a14e 100644
--- a/builtins/mapfile.def
+++ b/builtins/mapfile.def
@@ -24,11 +24,11 @@ $PRODUCES mapfile.c
$BUILTIN mapfile
$FUNCTION mapfile_builtin
$SHORT_DOC mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
-Read lines from the standard input into an array variable.
+Read lines from the standard input into an indexed array variable.
-Read lines from the standard input into the array variable ARRAY, or from
-file descriptor FD if the -u option is supplied. The variable MAPFILE is
-the default ARRAY.
+Read lines from the standard input into the indexed array variable ARRAY, or
+from file descriptor FD if the -u option is supplied. The variable MAPFILE
+is the default ARRAY.
Options:
-n count Copy at most COUNT lines. If COUNT is 0, all lines are copied.
@@ -50,7 +50,8 @@ If not supplied with an explicit origin, mapfile will clear ARRAY before
assigning to it.
Exit Status:
-Returns success unless an invalid option is given or ARRAY is readonly.
+Returns success unless an invalid option is given or ARRAY is readonly or
+not an indexed array.
$END
$BUILTIN readarray
@@ -71,6 +72,7 @@ $END
#endif
#include "bashansi.h"
+#include "bashintl.h"
#include <stdio.h>
#include <errno.h>
@@ -158,6 +160,12 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
return (EXECUTION_FAILURE);
}
+ else if (array_p (entry) == 0)
+ {
+ builtin_error (_("%s: not an indexed array"), array_name);
+ return (EXECUTION_FAILURE);
+ }
+
if (flags & MAPF_CLEARARRAY)
array_flush (array_cell (entry));
diff --git a/builtins/mapfile.def~ b/builtins/mapfile.def~
index 62f66c47..4843751e 100644
--- a/builtins/mapfile.def~
+++ b/builtins/mapfile.def~
@@ -24,11 +24,11 @@ $PRODUCES mapfile.c
$BUILTIN mapfile
$FUNCTION mapfile_builtin
$SHORT_DOC mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
-Read lines from the standard input into an array variable.
+Read lines from the standard input into an indexed array variable.
-Read lines from the standard input into the array variable ARRAY, or from
-file descriptor FD if the -u option is supplied. The variable MAPFILE is
-the default ARRAY.
+Read lines from the standard input into the indexed array variable ARRAY, or
+from file descriptor FD if the -u option is supplied. The variable MAPFILE
+is the default ARRAY.
Options:
-n count Copy at most COUNT lines. If COUNT is 0, all lines are copied.
@@ -50,7 +50,8 @@ If not supplied with an explicit origin, mapfile will clear ARRAY before
assigning to it.
Exit Status:
-Returns success unless an invalid option is given or ARRAY is readonly.
+Returns success unless an invalid option is given or ARRAY is readonly or
+not an indexed array.
$END
$BUILTIN readarray
@@ -71,6 +72,7 @@ $END
#endif
#include "bashansi.h"
+#include "bashintl.h"
#include <stdio.h>
#include <errno.h>
@@ -153,11 +155,17 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
entry = find_or_make_array_variable (array_name, 1);
if (entry == 0 || readonly_p (entry) || noassign_p (entry))
{
- if (readonly_p (entry))
+ if (entry && readonly_p (entry))
err_readonly (array_name);
return (EXECUTION_FAILURE);
}
+ else if (array_p (entry) == 0)
+ {
+ builtin_error (_("%s: not an indexed array", array_name));
+ return (EXECUTION_FAILURE);
+ }
+
if (flags & MAPF_CLEARARRAY)
array_flush (array_cell (entry));
diff --git a/command.h b/command.h
index 3ee8e7ff..4707812e 100644
--- a/command.h
+++ b/command.h
@@ -77,9 +77,9 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select,
#define W_QUOTED 0x000002 /* Some form of quote character is present. */
#define W_ASSIGNMENT 0x000004 /* This word is a variable assignment. */
#define W_GLOBEXP 0x000008 /* This word is the result of a glob expansion. */
-#define W_NOSPLIT 0x000010 /* Do not perform word splitting on this word. */
+#define W_NOSPLIT 0x000010 /* Do not perform word splitting on this word because ifs is empty string. */
#define W_NOGLOB 0x000020 /* Do not perform globbing on this word. */
-#define W_NOSPLIT2 0x000040 /* Don't split word except for $@ expansion. */
+#define W_NOSPLIT2 0x000040 /* Don't split word except for $@ expansion (using spaces) because context does not allow it. */
#define W_TILDEEXP 0x000080 /* Tilde expand this assignment word */
#define W_DOLLARAT 0x000100 /* $@ and its special handling */
#define W_DOLLARSTAR 0x000200 /* $* and its special handling */
diff --git a/command.h~ b/command.h~
index 4ae1c712..3ee8e7ff 100644
--- a/command.h~
+++ b/command.h~
@@ -43,7 +43,7 @@ enum r_instruction {
#define NOCLOBBER_REDIRECT -2
#define RESTRICTED_REDIRECT -3 /* can only happen in restricted shells. */
#define HEREDOC_REDIRECT -4 /* here-doc temp file can't be created */
-#define BADVAR_REDIRECT -5 /* something wrong with {varname}redir
+#define BADVAR_REDIRECT -5 /* something wrong with {varname}redir */
#define CLOBBERING_REDIRECT(ri) \
(ri == r_output_direction || ri == r_err_and_out)
diff --git a/doc/bash.0 b/doc/bash.0
index f1ed02ff..58451471 100644
--- a/doc/bash.0
+++ b/doc/bash.0
@@ -345,37 +345,40 @@ SSHHEELLLL GGRRAAMMMMAARR
tional operators such as --ff must be unquoted to be recognized as
primaries.
- When the ==== and !!== operators are used, the string to the right
+ When used with [[[[, The << and >> operators sort lexicographically
+ using the current locale.
+
+ When the ==== and !!== operators are used, the string to the right
of the operator is considered a pattern and matched according to
- the rules described below under PPaatttteerrnn MMaattcchhiinngg. If the shell
- option nnooccaasseemmaattcchh is enabled, the match is performed without
- regard to the case of alphabetic characters. The return value
- is 0 if the string matches (====) or does not match (!!==) the pat-
+ the rules described below under PPaatttteerrnn MMaattcchhiinngg. If the shell
+ option nnooccaasseemmaattcchh is enabled, the match is performed without
+ regard to the case of alphabetic characters. The return value
+ is 0 if the string matches (====) or does not match (!!==) the pat-
tern, and 1 otherwise. Any part of the pattern may be quoted to
force it to be matched as a string.
- An additional binary operator, ==~~, is available, with the same
- precedence as ==== and !!==. When it is used, the string to the
- right of the operator is considered an extended regular expres-
+ An additional binary operator, ==~~, is available, with the same
+ precedence as ==== and !!==. When it is used, the string to the
+ right of the operator is considered an extended regular expres-
sion and matched accordingly (as in _r_e_g_e_x(3)). The return value
is 0 if the string matches the pattern, and 1 otherwise. If the
- regular expression is syntactically incorrect, the conditional
+ regular expression is syntactically incorrect, the conditional
expression's return value is 2. If the shell option nnooccaasseemmaattcchh
is enabled, the match is performed without regard to the case of
alphabetic characters. Any part of the pattern may be quoted to
- force it to be matched as a string. Substrings matched by
- parenthesized subexpressions within the regular expression are
- saved in the array variable BBAASSHH__RREEMMAATTCCHH. The element of
- BBAASSHH__RREEMMAATTCCHH with index 0 is the portion of the string matching
+ force it to be matched as a string. Substrings matched by
+ parenthesized subexpressions within the regular expression are
+ saved in the array variable BBAASSHH__RREEMMAATTCCHH. The element of
+ BBAASSHH__RREEMMAATTCCHH with index 0 is the portion of the string matching
the entire regular expression. The element of BBAASSHH__RREEMMAATTCCHH with
- index _n is the portion of the string matching the _nth parenthe-
+ index _n is the portion of the string matching the _nth parenthe-
sized subexpression.
- Expressions may be combined using the following operators,
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence:
(( _e_x_p_r_e_s_s_i_o_n ))
- Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to
+ Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to
override the normal precedence of operators.
!! _e_x_p_r_e_s_s_i_o_n
True if _e_x_p_r_e_s_s_i_o_n is false.
@@ -385,187 +388,187 @@ SSHHEELLLL GGRRAAMMMMAARR
True if either _e_x_p_r_e_s_s_i_o_n_1 or _e_x_p_r_e_s_s_i_o_n_2 is true.
The &&&& and |||| operators do not evaluate _e_x_p_r_e_s_s_i_o_n_2 if the value
- of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of
+ of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of
the entire conditional expression.
ffoorr _n_a_m_e [ [ iinn [ _w_o_r_d _._._. ] ] ; ] ddoo _l_i_s_t ; ddoonnee
The list of words following iinn is expanded, generating a list of
items. The variable _n_a_m_e is set to each element of this list in
- turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit-
- ted, the ffoorr command executes _l_i_s_t once for each positional
+ turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit-
+ ted, the ffoorr command executes _l_i_s_t once for each positional
parameter that is set (see PPAARRAAMMEETTEERRSS below). The return status
- is the exit status of the last command that executes. If the
+ is the exit status of the last command that executes. If the
expansion of the items following iinn results in an empty list, no
commands are executed, and the return status is 0.
ffoorr (( _e_x_p_r_1 ; _e_x_p_r_2 ; _e_x_p_r_3 )) ; ddoo _l_i_s_t ; ddoonnee
First, the arithmetic expression _e_x_p_r_1 is evaluated according to
- the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The
- arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until
- it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero
- value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is
- evaluated. If any expression is omitted, it behaves as if it
+ the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The
+ arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until
+ it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero
+ value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is
+ evaluated. If any expression is omitted, it behaves as if it
evaluates to 1. The return value is the exit status of the last
command in _l_i_s_t that is executed, or false if any of the expres-
sions is invalid.
sseelleecctt _n_a_m_e [ iinn _w_o_r_d ] ; ddoo _l_i_s_t ; ddoonnee
The list of words following iinn is expanded, generating a list of
- items. The set of expanded words is printed on the standard
- error, each preceded by a number. If the iinn _w_o_r_d is omitted,
- the positional parameters are printed (see PPAARRAAMMEETTEERRSS below).
- The PPSS33 prompt is then displayed and a line read from the stan-
- dard input. If the line consists of a number corresponding to
- one of the displayed words, then the value of _n_a_m_e is set to
- that word. If the line is empty, the words and prompt are dis-
+ items. The set of expanded words is printed on the standard
+ error, each preceded by a number. If the iinn _w_o_r_d is omitted,
+ the positional parameters are printed (see PPAARRAAMMEETTEERRSS below).
+ The PPSS33 prompt is then displayed and a line read from the stan-
+ dard input. If the line consists of a number corresponding to
+ one of the displayed words, then the value of _n_a_m_e is set to
+ that word. If the line is empty, the words and prompt are dis-
played again. If EOF is read, the command completes. Any other
- value read causes _n_a_m_e to be set to null. The line read is
- saved in the variable RREEPPLLYY. The _l_i_s_t is executed after each
+ value read causes _n_a_m_e to be set to null. The line read is
+ saved in the variable RREEPPLLYY. The _l_i_s_t is executed after each
selection until a bbrreeaakk command is executed. The exit status of
- sseelleecctt is the exit status of the last command executed in _l_i_s_t,
+ sseelleecctt is the exit status of the last command executed in _l_i_s_t,
or zero if no commands were executed.
ccaassee _w_o_r_d iinn [ [(] _p_a_t_t_e_r_n [ || _p_a_t_t_e_r_n ] ... ) _l_i_s_t ;; ] ... eessaacc
A ccaassee command first expands _w_o_r_d, and tries to match it against
each _p_a_t_t_e_r_n in turn, using the same matching rules as for path-
- name expansion (see PPaatthhnnaammee EExxppaannssiioonn below). The _w_o_r_d is
- expanded using tilde expansion, parameter and variable expan-
- sion, arithmetic substitution, command substitution, process
- substitution and quote removal. Each _p_a_t_t_e_r_n examined is
+ name expansion (see PPaatthhnnaammee EExxppaannssiioonn below). The _w_o_r_d is
expanded using tilde expansion, parameter and variable expan-
+ sion, arithmetic substitution, command substitution, process
+ substitution and quote removal. Each _p_a_t_t_e_r_n examined is
+ expanded using tilde expansion, parameter and variable expan-
sion, arithmetic substitution, command substitution, and process
- substitution. If the shell option nnooccaasseemmaattcchh is enabled, the
- match is performed without regard to the case of alphabetic
- characters. When a match is found, the corresponding _l_i_s_t is
+ substitution. If the shell option nnooccaasseemmaattcchh is enabled, the
+ match is performed without regard to the case of alphabetic
+ characters. When a match is found, the corresponding _l_i_s_t is
executed. If the ;;;; operator is used, no subsequent matches are
- attempted after the first pattern match. Using ;;&& in place of
- ;;;; causes execution to continue with the _l_i_s_t associated with
- the next set of patterns. Using ;;;;&& in place of ;;;; causes the
- shell to test the next pattern list in the statement, if any,
+ attempted after the first pattern match. Using ;;&& in place of
+ ;;;; causes execution to continue with the _l_i_s_t associated with
+ the next set of patterns. Using ;;;;&& in place of ;;;; causes the
+ shell to test the next pattern list in the statement, if any,
and execute any associated _l_i_s_t on a successful match. The exit
status is zero if no pattern matches. Otherwise, it is the exit
status of the last command executed in _l_i_s_t.
iiff _l_i_s_t; tthheenn _l_i_s_t_; [ eelliiff _l_i_s_t; tthheenn _l_i_s_t; ] ... [ eellssee _l_i_s_t; ] ffii
- The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn
- _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in
- turn, and if its exit status is zero, the corresponding tthheenn
+ The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn
+ _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in
+ turn, and if its exit status is zero, the corresponding tthheenn
_l_i_s_t is executed and the command completes. Otherwise, the eellssee
- _l_i_s_t is executed, if present. The exit status is the exit sta-
+ _l_i_s_t is executed, if present. The exit status is the exit sta-
tus of the last command executed, or zero if no condition tested
true.
wwhhiillee _l_i_s_t; ddoo _l_i_s_t; ddoonnee
uunnttiill _l_i_s_t; ddoo _l_i_s_t; ddoonnee
- The wwhhiillee command continuously executes the ddoo _l_i_s_t as long as
- the last command in _l_i_s_t returns an exit status of zero. The
+ The wwhhiillee command continuously executes the ddoo _l_i_s_t as long as
+ the last command in _l_i_s_t returns an exit status of zero. The
uunnttiill command is identical to the wwhhiillee command, except that the
- test is negated; the ddoo _l_i_s_t is executed as long as the last
+ test is negated; the ddoo _l_i_s_t is executed as long as the last
command in _l_i_s_t returns a non-zero exit status. The exit status
- of the wwhhiillee and uunnttiill commands is the exit status of the last
+ of the wwhhiillee and uunnttiill commands is the exit status of the last
ddoo _l_i_s_t command executed, or zero if none was executed.
CCoopprroocceesssseess
A _c_o_p_r_o_c_e_s_s is a shell command preceded by the ccoopprroocc reserved word. A
- coprocess is executed asynchronously in a subshell, as if the command
- had been terminated with the && control operator, with a two-way pipe
+ coprocess is executed asynchronously in a subshell, as if the command
+ had been terminated with the && control operator, with a two-way pipe
established between the executing shell and the coprocess.
The format for a coprocess is:
ccoopprroocc [_N_A_M_E] _c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n_s]
- This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the
+ This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the
default name is _C_O_P_R_O_C. _N_A_M_E must not be supplied if _c_o_m_m_a_n_d is a _s_i_m_-
_p_l_e _c_o_m_m_a_n_d (see above); otherwise, it is interpreted as the first word
- of the simple command. When the coproc is executed, the shell creates
- an array variable (see AArrrraayyss below) named _N_A_M_E in the context of the
- executing shell. The standard output of _c_o_m_m_a_n_d is connected via a
- pipe to a file descriptor in the executing shell, and that file
- descriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is
- connected via a pipe to a file descriptor in the executing shell, and
- that file descriptor is assigned to _N_A_M_E[1]. This pipe is established
- before any redirections specified by the command (see RREEDDIIRREECCTTIIOONN
- below). The file descriptors can be utilized as arguments to shell
- commands and redirections using standard word expansions. The process
- id of the shell spawned to execute the coprocess is available as the
- value of the variable _N_A_M_E_PID. The wwaaiitt builtin command may be used
+ of the simple command. When the coproc is executed, the shell creates
+ an array variable (see AArrrraayyss below) named _N_A_M_E in the context of the
+ executing shell. The standard output of _c_o_m_m_a_n_d is connected via a
+ pipe to a file descriptor in the executing shell, and that file
+ descriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is
+ connected via a pipe to a file descriptor in the executing shell, and
+ that file descriptor is assigned to _N_A_M_E[1]. This pipe is established
+ before any redirections specified by the command (see RREEDDIIRREECCTTIIOONN
+ below). The file descriptors can be utilized as arguments to shell
+ commands and redirections using standard word expansions. The process
+ id of the shell spawned to execute the coprocess is available as the
+ value of the variable _N_A_M_E_PID. The wwaaiitt builtin command may be used
to wait for the coprocess to terminate.
The return status of a coprocess is the exit status of _c_o_m_m_a_n_d.
SShheellll FFuunnccttiioonn DDeeffiinniittiioonnss
- A shell function is an object that is called like a simple command and
- executes a compound command with a new set of positional parameters.
+ A shell function is an object that is called like a simple command and
+ executes a compound command with a new set of positional parameters.
Shell functions are declared as follows:
[ ffuunnccttiioonn ] _n_a_m_e () _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n]
- This defines a function named _n_a_m_e. The reserved word ffuunnccttiioonn
- is optional. If the ffuunnccttiioonn reserved word is supplied, the
- parentheses are optional. The _b_o_d_y of the function is the com-
- pound command _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d (see CCoommppoouunndd CCoommmmaannddss above).
- That command is usually a _l_i_s_t of commands between { and }, but
- may be any command listed under CCoommppoouunndd CCoommmmaannddss above. _c_o_m_-
+ This defines a function named _n_a_m_e. The reserved word ffuunnccttiioonn
+ is optional. If the ffuunnccttiioonn reserved word is supplied, the
+ parentheses are optional. The _b_o_d_y of the function is the com-
+ pound command _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d (see CCoommppoouunndd CCoommmmaannddss above).
+ That command is usually a _l_i_s_t of commands between { and }, but
+ may be any command listed under CCoommppoouunndd CCoommmmaannddss above. _c_o_m_-
_p_o_u_n_d_-_c_o_m_m_a_n_d is executed whenever _n_a_m_e is specified as the name
- of a simple command. Any redirections (see RREEDDIIRREECCTTIIOONN below)
- specified when a function is defined are performed when the
- function is executed. The exit status of a function definition
+ of a simple command. Any redirections (see RREEDDIIRREECCTTIIOONN below)
+ specified when a function is defined are performed when the
+ function is executed. The exit status of a function definition
is zero unless a syntax error occurs or a readonly function with
the same name already exists. When executed, the exit status of
- a function is the exit status of the last command executed in
+ a function is the exit status of the last command executed in
the body. (See FFUUNNCCTTIIOONNSS below.)
CCOOMMMMEENNTTSS
In a non-interactive shell, or an interactive shell in which the iinntteerr--
- aaccttiivvee__ccoommmmeennttss option to the sshhoopptt builtin is enabled (see SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below), a word beginning with ## causes that word and
- all remaining characters on that line to be ignored. An interactive
- shell without the iinntteerraaccttiivvee__ccoommmmeennttss option enabled does not allow
+ aaccttiivvee__ccoommmmeennttss option to the sshhoopptt builtin is enabled (see SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below), a word beginning with ## causes that word and
+ all remaining characters on that line to be ignored. An interactive
+ shell without the iinntteerraaccttiivvee__ccoommmmeennttss option enabled does not allow
comments. The iinntteerraaccttiivvee__ccoommmmeennttss option is on by default in interac-
tive shells.
QQUUOOTTIINNGG
- _Q_u_o_t_i_n_g is used to remove the special meaning of certain characters or
- words to the shell. Quoting can be used to disable special treatment
+ _Q_u_o_t_i_n_g is used to remove the special meaning of certain characters or
+ words to the shell. Quoting can be used to disable special treatment
for special characters, to prevent reserved words from being recognized
as such, and to prevent parameter expansion.
- Each of the _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under DDEEFFIINNIITTIIOONNSS has special
+ Each of the _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under DDEEFFIINNIITTIIOONNSS has special
meaning to the shell and must be quoted if it is to represent itself.
- When the command history expansion facilities are being used (see HHIISS--
+ When the command history expansion facilities are being used (see HHIISS--
TTOORRYY EEXXPPAANNSSIIOONN below), the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, usually !!, must
be quoted to prevent history expansion.
- There are three quoting mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single
+ There are three quoting mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single
quotes, and double quotes.
- A non-quoted backslash (\\) is the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r. It preserves the
+ A non-quoted backslash (\\) is the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r. It preserves the
literal value of the next character that follows, with the exception of
- <newline>. If a \\<newline> pair appears, and the backslash is not
- itself quoted, the \\<newline> is treated as a line continuation (that
+ <newline>. If a \\<newline> pair appears, and the backslash is not
+ itself quoted, the \\<newline> is treated as a line continuation (that
is, it is removed from the input stream and effectively ignored).
- Enclosing characters in single quotes preserves the literal value of
+ Enclosing characters in single quotes preserves the literal value of
each character within the quotes. A single quote may not occur between
single quotes, even when preceded by a backslash.
- Enclosing characters in double quotes preserves the literal value of
- all characters within the quotes, with the exception of $$, ``, \\, and,
- when history expansion is enabled, !!. The characters $$ and `` retain
- their special meaning within double quotes. The backslash retains its
- special meaning only when followed by one of the following characters:
- $$, ``, "", \\, or <<nneewwlliinnee>>. A double quote may be quoted within double
+ Enclosing characters in double quotes preserves the literal value of
+ all characters within the quotes, with the exception of $$, ``, \\, and,
+ when history expansion is enabled, !!. The characters $$ and `` retain
+ their special meaning within double quotes. The backslash retains its
+ special meaning only when followed by one of the following characters:
+ $$, ``, "", \\, or <<nneewwlliinnee>>. A double quote may be quoted within double
quotes by preceding it with a backslash. If enabled, history expansion
- will be performed unless an !! appearing in double quotes is escaped
+ will be performed unless an !! appearing in double quotes is escaped
using a backslash. The backslash preceding the !! is not removed.
- The special parameters ** and @@ have special meaning when in double
+ The special parameters ** and @@ have special meaning when in double
quotes (see PPAARRAAMMEETTEERRSS below).
Words of the form $$'_s_t_r_i_n_g' are treated specially. The word expands to
- _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the
- ANSI C standard. Backslash escape sequences, if present, are decoded
+ _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the
+ ANSI C standard. Backslash escape sequences, if present, are decoded
as follows:
\\aa alert (bell)
\\bb backspace
@@ -577,210 +580,210 @@ QQUUOOTTIINNGG
\\vv vertical tab
\\\\ backslash
\\'' single quote
- \\_n_n_n the eight-bit character whose value is the octal value
+ \\_n_n_n the eight-bit character whose value is the octal value
_n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
\\cc_x a control-_x character
- The expanded result is single-quoted, as if the dollar sign had not
+ The expanded result is single-quoted, as if the dollar sign had not
been present.
- A double-quoted string preceded by a dollar sign ($$) will cause the
- string to be translated according to the current locale. If the cur-
- rent locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the string
- is translated and replaced, the replacement is double-quoted.
+ A double-quoted string preceded by a dollar sign ($$"_s_t_r_i_n_g") will cause
+ the string to be translated according to the current locale. If the
+ current locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the
+ string is translated and replaced, the replacement is double-quoted.
PPAARRAAMMEETTEERRSS
- A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num-
+ A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num-
ber, or one of the special characters listed below under SSppeecciiaall PPaarraamm--
- eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a
- _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the
- ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS).
+ eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a
+ _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the
+ ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS).
A parameter is set if it has been assigned a value. The null string is
- a valid value. Once a variable is set, it may be unset only by using
+ a valid value. Once a variable is set, it may be unset only by using
the uunnsseett builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
A _v_a_r_i_a_b_l_e may be assigned to by a statement of the form
_n_a_m_e=[_v_a_l_u_e]
- If _v_a_l_u_e is not given, the variable is assigned the null string. All
- _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com-
- mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN--
+ If _v_a_l_u_e is not given, the variable is assigned the null string. All
+ _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com-
+ mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN--
SSIIOONN below). If the variable has its iinntteeggeerr attribute set, then _v_a_l_u_e
is evaluated as an arithmetic expression even if the $((...)) expansion
- is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not
- performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall
- PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state-
- ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett,
+ is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not
+ performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall
+ PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state-
+ ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett,
eexxppoorrtt, rreeaaddoonnllyy, and llooccaall builtin commands.
- In the context where an assignment statement is assigning a value to a
+ In the context where an assignment statement is assigning a value to a
shell variable or array index, the += operator can be used to append to
or add to the variable's previous value. When += is applied to a vari-
- able for which the integer attribute has been set, _v_a_l_u_e is evaluated
- as an arithmetic expression and added to the variable's current value,
+ able for which the integer attribute has been set, _v_a_l_u_e is evaluated
+ as an arithmetic expression and added to the variable's current value,
which is also evaluated. When += is applied to an array variable using
- compound assignment (see AArrrraayyss below), the variable's value is not
+ compound assignment (see AArrrraayyss below), the variable's value is not
unset (as it is when using =), and new values are appended to the array
- beginning at one greater than the array's maximum index (for indexed
+ beginning at one greater than the array's maximum index (for indexed
arrays) or added as additional key-value pairs in an associative array.
- When applied to a string-valued variable, _v_a_l_u_e is expanded and
+ When applied to a string-valued variable, _v_a_l_u_e is expanded and
appended to the variable's value.
PPoossiittiioonnaall PPaarraammeetteerrss
- A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits,
+ A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits,
other than the single digit 0. Positional parameters are assigned from
- the shell's arguments when it is invoked, and may be reassigned using
- the sseett builtin command. Positional parameters may not be assigned to
- with assignment statements. The positional parameters are temporarily
+ the shell's arguments when it is invoked, and may be reassigned using
+ the sseett builtin command. Positional parameters may not be assigned to
+ with assignment statements. The positional parameters are temporarily
replaced when a shell function is executed (see FFUUNNCCTTIIOONNSS below).
- When a positional parameter consisting of more than a single digit is
+ When a positional parameter consisting of more than a single digit is
expanded, it must be enclosed in braces (see EEXXPPAANNSSIIOONN below).
SSppeecciiaall PPaarraammeetteerrss
- The shell treats several parameters specially. These parameters may
+ The shell treats several parameters specially. These parameters may
only be referenced; assignment to them is not allowed.
- ** Expands to the positional parameters, starting from one. When
- the expansion occurs within double quotes, it expands to a sin-
+ ** Expands to the positional parameters, starting from one. When
+ the expansion occurs within double quotes, it expands to a sin-
gle word with the value of each parameter separated by the first
character of the IIFFSS special variable. That is, "$$**" is equiva-
lent to "$$11_c$$22_c......", where _c is the first character of the value
- of the IIFFSS variable. If IIFFSS is unset, the parameters are sepa-
- rated by spaces. If IIFFSS is null, the parameters are joined
+ of the IIFFSS variable. If IIFFSS is unset, the parameters are sepa-
+ rated by spaces. If IIFFSS is null, the parameters are joined
without intervening separators.
- @@ Expands to the positional parameters, starting from one. When
+ @@ Expands to the positional parameters, starting from one. When
the expansion occurs within double quotes, each parameter
expands to a separate word. That is, "$$@@" is equivalent to "$$11"
- "$$22" ... If the double-quoted expansion occurs within a word,
- the expansion of the first parameter is joined with the begin-
- ning part of the original word, and the expansion of the last
- parameter is joined with the last part of the original word.
- When there are no positional parameters, "$$@@" and $$@@ expand to
+ "$$22" ... If the double-quoted expansion occurs within a word,
+ the expansion of the first parameter is joined with the begin-
+ ning part of the original word, and the expansion of the last
+ parameter is joined with the last part of the original word.
+ When there are no positional parameters, "$$@@" and $$@@ expand to
nothing (i.e., they are removed).
## Expands to the number of positional parameters in decimal.
- ?? Expands to the exit status of the most recently executed fore-
+ ?? Expands to the exit status of the most recently executed fore-
ground pipeline.
- -- Expands to the current option flags as specified upon invoca-
- tion, by the sseett builtin command, or those set by the shell
+ -- Expands to the current option flags as specified upon invoca-
+ tion, by the sseett builtin command, or those set by the shell
itself (such as the --ii option).
- $$ Expands to the process ID of the shell. In a () subshell, it
- expands to the process ID of the current shell, not the sub-
+ $$ Expands to the process ID of the shell. In a () subshell, it
+ expands to the process ID of the current shell, not the sub-
shell.
- !! Expands to the process ID of the most recently executed back-
+ !! Expands to the process ID of the most recently executed back-
ground (asynchronous) command.
- 00 Expands to the name of the shell or shell script. This is set
+ 00 Expands to the name of the shell or shell script. This is set
at shell initialization. If bbaasshh is invoked with a file of com-
- mands, $$00 is set to the name of that file. If bbaasshh is started
- with the --cc option, then $$00 is set to the first argument after
- the string to be executed, if one is present. Otherwise, it is
- set to the file name used to invoke bbaasshh, as given by argument
+ mands, $$00 is set to the name of that file. If bbaasshh is started
+ with the --cc option, then $$00 is set to the first argument after
+ the string to be executed, if one is present. Otherwise, it is
+ set to the file name used to invoke bbaasshh, as given by argument
zero.
- __ At shell startup, set to the absolute pathname used to invoke
- the shell or shell script being executed as passed in the envi-
- ronment or argument list. Subsequently, expands to the last
- argument to the previous command, after expansion. Also set to
- the full pathname used to invoke each command executed and
+ __ At shell startup, set to the absolute pathname used to invoke
+ the shell or shell script being executed as passed in the envi-
+ ronment or argument list. Subsequently, expands to the last
+ argument to the previous command, after expansion. Also set to
+ the full pathname used to invoke each command executed and
placed in the environment exported to that command. When check-
- ing mail, this parameter holds the name of the mail file cur-
+ ing mail, this parameter holds the name of the mail file cur-
rently being checked.
SShheellll VVaarriiaabblleess
The following variables are set by the shell:
- BBAASSHH Expands to the full file name used to invoke this instance of
+ BBAASSHH Expands to the full file name used to invoke this instance of
bbaasshh.
BBAASSHHOOPPTTSS
- A colon-separated list of enabled shell options. Each word in
- the list is a valid argument for the --ss option to the sshhoopptt
+ A colon-separated list of enabled shell options. Each word in
+ the list is a valid argument for the --ss option to the sshhoopptt
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The options
- appearing in BBAASSHHOOPPTTSS are those reported as _o_n by sshhoopptt. If
- this variable is in the environment when bbaasshh starts up, each
- shell option in the list will be enabled before reading any
+ appearing in BBAASSHHOOPPTTSS are those reported as _o_n by sshhoopptt. If
+ this variable is in the environment when bbaasshh starts up, each
+ shell option in the list will be enabled before reading any
startup files. This variable is read-only.
BBAASSHHPPIIDD
- Expands to the process id of the current bbaasshh process. This
- differs from $$$$ under certain circumstances, such as subshells
+ Expands to the process id of the current bbaasshh process. This
+ differs from $$$$ under certain circumstances, such as subshells
that do not require bbaasshh to be re-initialized.
BBAASSHH__AALLIIAASSEESS
- An associative array variable whose members correspond to the
+ An associative array variable whose members correspond to the
internal list of aliases as maintained by the aalliiaass builtin Ele-
- ments added to this array appear in the alias list; unsetting
- array elements cause aliases to be removed from the alias list.
+ ments added to this array appear in the alias list; unsetting
+ array elements cause aliases to be removed from the alias list.
BBAASSHH__AARRGGCC
- An array variable whose values are the number of parameters in
+ An array variable whose values are the number of parameters in
each frame of the current bbaasshh execution call stack. The number
- of parameters to the current subroutine (shell function or
- script executed with .. or ssoouurrccee) is at the top of the stack.
- When a subroutine is executed, the number of parameters passed
+ of parameters to the current subroutine (shell function or
+ script executed with .. or ssoouurrccee) is at the top of the stack.
+ When a subroutine is executed, the number of parameters passed
is pushed onto BBAASSHH__AARRGGCC. The shell sets BBAASSHH__AARRGGCC only when in
- extended debugging mode (see the description of the eexxttddeebbuugg
+ extended debugging mode (see the description of the eexxttddeebbuugg
option to the sshhoopptt builtin below)
BBAASSHH__AARRGGVV
- An array variable containing all of the parameters in the cur-
+ An array variable containing all of the parameters in the cur-
rent bbaasshh execution call stack. The final parameter of the last
- subroutine call is at the top of the stack; the first parameter
+ subroutine call is at the top of the stack; the first parameter
of the initial call is at the bottom. When a subroutine is exe-
- cuted, the parameters supplied are pushed onto BBAASSHH__AARRGGVV. The
- shell sets BBAASSHH__AARRGGVV only when in extended debugging mode (see
- the description of the eexxttddeebbuugg option to the sshhoopptt builtin
+ cuted, the parameters supplied are pushed onto BBAASSHH__AARRGGVV. The
+ shell sets BBAASSHH__AARRGGVV only when in extended debugging mode (see
+ the description of the eexxttddeebbuugg option to the sshhoopptt builtin
below)
BBAASSHH__CCMMDDSS
- An associative array variable whose members correspond to the
- internal hash table of commands as maintained by the hhaasshh
+ An associative array variable whose members correspond to the
+ internal hash table of commands as maintained by the hhaasshh
builtin. Elements added to this array appear in the hash table;
- unsetting array elements cause commands to be removed from the
+ unsetting array elements cause commands to be removed from the
hash table.
BBAASSHH__CCOOMMMMAANNDD
- The command currently being executed or about to be executed,
+ The command currently being executed or about to be executed,
unless the shell is executing a command as the result of a trap,
- in which case it is the command executing at the time of the
+ in which case it is the command executing at the time of the
trap.
BBAASSHH__EEXXEECCUUTTIIOONN__SSTTRRIINNGG
The command argument to the --cc invocation option.
BBAASSHH__LLIINNEENNOO
- An array variable whose members are the line numbers in source
- files corresponding to each member of FFUUNNCCNNAAMMEE.
- $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}} is the line number in the source file where
- $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called (or $${{BBAASSHH__LLIINNEENNOO[[_$_i_-_1]]}} if refer-
- enced within another shell function). The corresponding source
- file name is $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}}. Use LLIINNEENNOO to obtain the cur-
+ An array variable whose members are the line numbers in source
+ files corresponding to each member of FFUUNNCCNNAAMMEE.
+ $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}} is the line number in the source file where
+ $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called (or $${{BBAASSHH__LLIINNEENNOO[[_$_i_-_1]]}} if refer-
+ enced within another shell function). The corresponding source
+ file name is $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}}. Use LLIINNEENNOO to obtain the cur-
rent line number.
BBAASSHH__RREEMMAATTCCHH
- An array variable whose members are assigned by the ==~~ binary
- operator to the [[[[ conditional command. The element with index
- 0 is the portion of the string matching the entire regular
- expression. The element with index _n is the portion of the
+ An array variable whose members are assigned by the ==~~ binary
+ operator to the [[[[ conditional command. The element with index
+ 0 is the portion of the string matching the entire regular
+ expression. The element with index _n is the portion of the
string matching the _nth parenthesized subexpression. This vari-
able is read-only.
BBAASSHH__SSOOUURRCCEE
- An array variable whose members are the source filenames corre-
+ An array variable whose members are the source filenames corre-
sponding to the elements in the FFUUNNCCNNAAMMEE array variable.
BBAASSHH__SSUUBBSSHHEELLLL
- Incremented by one each time a subshell or subshell environment
+ Incremented by one each time a subshell or subshell environment
is spawned. The initial value is 0.
BBAASSHH__VVEERRSSIINNFFOO
A readonly array variable whose members hold version information
- for this instance of bbaasshh. The values assigned to the array
+ for this instance of bbaasshh. The values assigned to the array
members are as follows:
- BBAASSHH__VVEERRSSIINNFFOO[[0]] The major version number (the _r_e_l_e_a_s_e).
- BBAASSHH__VVEERRSSIINNFFOO[[1]] The minor version number (the _v_e_r_s_i_o_n).
+ BBAASSHH__VVEERRSSIINNFFOO[[0]] The major version number (the _r_e_l_e_a_s_e).
+ BBAASSHH__VVEERRSSIINNFFOO[[1]] The minor version number (the _v_e_r_s_i_o_n).
BBAASSHH__VVEERRSSIINNFFOO[[2]] The patch level.
BBAASSHH__VVEERRSSIINNFFOO[[3]] The build version.
BBAASSHH__VVEERRSSIINNFFOO[[4]] The release status (e.g., _b_e_t_a_1).
BBAASSHH__VVEERRSSIINNFFOO[[5]] The value of MMAACCHHTTYYPPEE.
BBAASSHH__VVEERRSSIIOONN
- Expands to a string describing the version of this instance of
+ Expands to a string describing the version of this instance of
bbaasshh.
CCOOMMPP__CCWWOORRDD
- An index into $${{CCOOMMPP__WWOORRDDSS}} of the word containing the current
+ An index into $${{CCOOMMPP__WWOORRDDSS}} of the word containing the current
cursor position. This variable is available only in shell func-
- tions invoked by the programmable completion facilities (see
+ tions invoked by the programmable completion facilities (see
PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
CCOOMMPP__KKEEYY
@@ -788,116 +791,116 @@ PPAARRAAMMEETTEERRSS
rent completion function.
CCOOMMPP__LLIINNEE
- The current command line. This variable is available only in
- shell functions and external commands invoked by the pro-
- grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
+ The current command line. This variable is available only in
+ shell functions and external commands invoked by the pro-
+ grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
below).
CCOOMMPP__PPOOIINNTT
- The index of the current cursor position relative to the begin-
- ning of the current command. If the current cursor position is
+ The index of the current cursor position relative to the begin-
+ ning of the current command. If the current cursor position is
at the end of the current command, the value of this variable is
- equal to $${{##CCOOMMPP__LLIINNEE}}. This variable is available only in
- shell functions and external commands invoked by the pro-
- grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
+ equal to $${{##CCOOMMPP__LLIINNEE}}. This variable is available only in
+ shell functions and external commands invoked by the pro-
+ grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
below).
CCOOMMPP__TTYYPPEE
- Set to an integer value corresponding to the type of completion
- attempted that caused a completion function to be called: _T_A_B,
- for normal completion, _?, for listing completions after succes-
- sive tabs, _!, for listing alternatives on partial word comple-
- tion, _@, to list completions if the word is not unmodified, or
- _%, for menu completion. This variable is available only in
- shell functions and external commands invoked by the pro-
- grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
+ Set to an integer value corresponding to the type of completion
+ attempted that caused a completion function to be called: _T_A_B,
+ for normal completion, _?, for listing completions after succes-
+ sive tabs, _!, for listing alternatives on partial word comple-
+ tion, _@, to list completions if the word is not unmodified, or
+ _%, for menu completion. This variable is available only in
+ shell functions and external commands invoked by the pro-
+ grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
below).
CCOOMMPP__WWOORRDDBBRREEAAKKSS
- The set of characters that the rreeaaddlliinnee library treats as word
- separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS
- is unset, it loses its special properties, even if it is subse-
+ The set of characters that the rreeaaddlliinnee library treats as word
+ separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS
+ is unset, it loses its special properties, even if it is subse-
quently reset.
CCOOMMPP__WWOORRDDSS
- An array variable (see AArrrraayyss below) consisting of the individ-
- ual words in the current command line. The line is split into
- words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as
+ An array variable (see AArrrraayyss below) consisting of the individ-
+ ual words in the current command line. The line is split into
+ words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as
described above. This variable is available only in shell func-
- tions invoked by the programmable completion facilities (see
+ tions invoked by the programmable completion facilities (see
PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
DDIIRRSSTTAACCKK
An array variable (see AArrrraayyss below) containing the current con-
- tents of the directory stack. Directories appear in the stack
- in the order they are displayed by the ddiirrss builtin. Assigning
+ tents of the directory stack. Directories appear in the stack
+ in the order they are displayed by the ddiirrss builtin. Assigning
to members of this array variable may be used to modify directo-
- ries already in the stack, but the ppuusshhdd and ppooppdd builtins must
+ ries already in the stack, but the ppuusshhdd and ppooppdd builtins must
be used to add and remove directories. Assignment to this vari-
- able will not change the current directory. If DDIIRRSSTTAACCKK is
- unset, it loses its special properties, even if it is subse-
+ able will not change the current directory. If DDIIRRSSTTAACCKK is
+ unset, it loses its special properties, even if it is subse-
quently reset.
- EEUUIIDD Expands to the effective user ID of the current user, initial-
+ EEUUIIDD Expands to the effective user ID of the current user, initial-
ized at shell startup. This variable is readonly.
FFUUNNCCNNAAMMEE
- An array variable containing the names of all shell functions
+ An array variable containing the names of all shell functions
currently in the execution call stack. The element with index 0
is the name of any currently-executing shell function. The bot-
- tom-most element is "main". This variable exists only when a
- shell function is executing. Assignments to FFUUNNCCNNAAMMEE have no
- effect and return an error status. If FFUUNNCCNNAAMMEE is unset, it
- loses its special properties, even if it is subsequently reset.
-
- GGRROOUUPPSS An array variable containing the list of groups of which the
- current user is a member. Assignments to GGRROOUUPPSS have no effect
- and return an error status. If GGRROOUUPPSS is unset, it loses its
+ tom-most element is "main". This variable exists only when a
+ shell function is executing. Assignments to FFUUNNCCNNAAMMEE have no
+ effect and return an error status. If FFUUNNCCNNAAMMEE is unset, it
+ loses its special properties, even if it is subsequently reset.
+
+ GGRROOUUPPSS An array variable containing the list of groups of which the
+ current user is a member. Assignments to GGRROOUUPPSS have no effect
+ and return an error status. If GGRROOUUPPSS is unset, it loses its
special properties, even if it is subsequently reset.
HHIISSTTCCMMDD
The history number, or index in the history list, of the current
- command. If HHIISSTTCCMMDD is unset, it loses its special properties,
+ command. If HHIISSTTCCMMDD is unset, it loses its special properties,
even if it is subsequently reset.
HHOOSSTTNNAAMMEE
Automatically set to the name of the current host.
HHOOSSTTTTYYPPEE
- Automatically set to a string that uniquely describes the type
- of machine on which bbaasshh is executing. The default is system-
+ Automatically set to a string that uniquely describes the type
+ of machine on which bbaasshh is executing. The default is system-
dependent.
- LLIINNEENNOO Each time this parameter is referenced, the shell substitutes a
- decimal number representing the current sequential line number
- (starting with 1) within a script or function. When not in a
- script or function, the value substituted is not guaranteed to
+ LLIINNEENNOO Each time this parameter is referenced, the shell substitutes a
+ decimal number representing the current sequential line number
+ (starting with 1) within a script or function. When not in a
+ script or function, the value substituted is not guaranteed to
be meaningful. If LLIINNEENNOO is unset, it loses its special proper-
ties, even if it is subsequently reset.
MMAACCHHTTYYPPEE
- Automatically set to a string that fully describes the system
- type on which bbaasshh is executing, in the standard GNU _c_p_u_-_c_o_m_-
+ Automatically set to a string that fully describes the system
+ type on which bbaasshh is executing, in the standard GNU _c_p_u_-_c_o_m_-
_p_a_n_y_-_s_y_s_t_e_m format. The default is system-dependent.
OOLLDDPPWWDD The previous working directory as set by the ccdd command.
- OOPPTTAARRGG The value of the last option argument processed by the ggeettooppttss
+ OOPPTTAARRGG The value of the last option argument processed by the ggeettooppttss
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- OOPPTTIINNDD The index of the next argument to be processed by the ggeettooppttss
+ OOPPTTIINNDD The index of the next argument to be processed by the ggeettooppttss
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- OOSSTTYYPPEE Automatically set to a string that describes the operating sys-
- tem on which bbaasshh is executing. The default is system-depen-
+ OOSSTTYYPPEE Automatically set to a string that describes the operating sys-
+ tem on which bbaasshh is executing. The default is system-depen-
dent.
PPIIPPEESSTTAATTUUSS
- An array variable (see AArrrraayyss below) containing a list of exit
- status values from the processes in the most-recently-executed
+ An array variable (see AArrrraayyss below) containing a list of exit
+ status values from the processes in the most-recently-executed
foreground pipeline (which may contain only a single command).
- PPPPIIDD The process ID of the shell's parent. This variable is read-
+ PPPPIIDD The process ID of the shell's parent. This variable is read-
only.
PPWWDD The current working directory as set by the ccdd command.
@@ -905,27 +908,27 @@ PPAARRAAMMEETTEERRSS
RRAANNDDOOMM Each time this parameter is referenced, a random integer between
0 and 32767 is generated. The sequence of random numbers may be
initialized by assigning a value to RRAANNDDOOMM. If RRAANNDDOOMM is unset,
- it loses its special properties, even if it is subsequently
+ it loses its special properties, even if it is subsequently
reset.
- RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when
+ RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when
no arguments are supplied.
SSEECCOONNDDSS
- Each time this parameter is referenced, the number of seconds
- since shell invocation is returned. If a value is assigned to
- SSEECCOONNDDSS, the value returned upon subsequent references is the
- number of seconds since the assignment plus the value assigned.
+ Each time this parameter is referenced, the number of seconds
+ since shell invocation is returned. If a value is assigned to
+ SSEECCOONNDDSS, the value returned upon subsequent references is the
+ number of seconds since the assignment plus the value assigned.
If SSEECCOONNDDSS is unset, it loses its special properties, even if it
is subsequently reset.
SSHHEELLLLOOPPTTSS
- A colon-separated list of enabled shell options. Each word in
- the list is a valid argument for the --oo option to the sseett
+ A colon-separated list of enabled shell options. Each word in
+ the list is a valid argument for the --oo option to the sseett
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The options
- appearing in SSHHEELLLLOOPPTTSS are those reported as _o_n by sseett --oo. If
- this variable is in the environment when bbaasshh starts up, each
- shell option in the list will be enabled before reading any
+ appearing in SSHHEELLLLOOPPTTSS are those reported as _o_n by sseett --oo. If
+ this variable is in the environment when bbaasshh starts up, each
+ shell option in the list will be enabled before reading any
startup files. This variable is read-only.
SSHHLLVVLL Incremented by one each time an instance of bbaasshh is started.
@@ -933,218 +936,218 @@ PPAARRAAMMEETTEERRSS
UUIIDD Expands to the user ID of the current user, initialized at shell
startup. This variable is readonly.
- The following variables are used by the shell. In some cases, bbaasshh
+ The following variables are used by the shell. In some cases, bbaasshh
assigns a default value to a variable; these cases are noted below.
BBAASSHH__EENNVV
- If this parameter is set when bbaasshh is executing a shell script,
- its value is interpreted as a filename containing commands to
+ If this parameter is set when bbaasshh is executing a shell script,
+ its value is interpreted as a filename containing commands to
initialize the shell, as in _~_/_._b_a_s_h_r_c. The value of BBAASSHH__EENNVV is
- subjected to parameter expansion, command substitution, and
- arithmetic expansion before being interpreted as a file name.
+ subjected to parameter expansion, command substitution, and
+ arithmetic expansion before being interpreted as a file name.
PPAATTHH is not used to search for the resultant file name.
- CCDDPPAATTHH The search path for the ccdd command. This is a colon-separated
- list of directories in which the shell looks for destination
- directories specified by the ccdd command. A sample value is
+ CCDDPPAATTHH The search path for the ccdd command. This is a colon-separated
+ list of directories in which the shell looks for destination
+ directories specified by the ccdd command. A sample value is
".:~:/usr".
BBAASSHH__XXTTRRAACCEEFFDD
- If set to an integer corresponding to a valid file descriptor,
- bbaasshh will write the trace output generated when _s_e_t _-_x is
- enabled to that file descriptor. The file descriptor is closed
- when BBAASSHH__XXTTRRAACCEEFFDD is unset or assigned a new value. Unsetting
- BBAASSHH__XXTTRRAACCEEFFDD or assigning it the empty string causes the trace
- output to be sent to the standard error. Note that setting
+ If set to an integer corresponding to a valid file descriptor,
+ bbaasshh will write the trace output generated when _s_e_t _-_x is
+ enabled to that file descriptor. The file descriptor is closed
+ when BBAASSHH__XXTTRRAACCEEFFDD is unset or assigned a new value. Unsetting
+ BBAASSHH__XXTTRRAACCEEFFDD or assigning it the empty string causes the trace
+ output to be sent to the standard error. Note that setting
BBAASSHH__XXTTRRAACCEEFFDD to 2 (the standard error file descriptor) and then
unsetting it will result in the standard error being closed.
CCOOLLUUMMNNSS
- Used by the sseelleecctt builtin command to determine the terminal
- width when printing selection lists. Automatically set upon
+ Used by the sseelleecctt builtin command to determine the terminal
+ width when printing selection lists. Automatically set upon
receipt of a SIGWINCH.
CCOOMMPPRREEPPLLYY
An array variable from which bbaasshh reads the possible completions
- generated by a shell function invoked by the programmable com-
+ generated by a shell function invoked by the programmable com-
pletion facility (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
- EEMMAACCSS If bbaasshh finds this variable in the environment when the shell
- starts with value "t", it assumes that the shell is running in
+ EEMMAACCSS If bbaasshh finds this variable in the environment when the shell
+ starts with value "t", it assumes that the shell is running in
an emacs shell buffer and disables line editing.
FFCCEEDDIITT The default editor for the ffcc builtin command.
FFIIGGNNOORREE
- A colon-separated list of suffixes to ignore when performing
+ A colon-separated list of suffixes to ignore when performing
filename completion (see RREEAADDLLIINNEE below). A filename whose suf-
- fix matches one of the entries in FFIIGGNNOORREE is excluded from the
+ fix matches one of the entries in FFIIGGNNOORREE is excluded from the
list of matched filenames. A sample value is ".o:~".
GGLLOOBBIIGGNNOORREE
A colon-separated list of patterns defining the set of filenames
to be ignored by pathname expansion. If a filename matched by a
- pathname expansion pattern also matches one of the patterns in
+ pathname expansion pattern also matches one of the patterns in
GGLLOOBBIIGGNNOORREE, it is removed from the list of matches.
HHIISSTTCCOONNTTRROOLL
- A colon-separated list of values controlling how commands are
- saved on the history list. If the list of values includes
- _i_g_n_o_r_e_s_p_a_c_e, lines which begin with a ssppaaccee character are not
- saved in the history list. A value of _i_g_n_o_r_e_d_u_p_s causes lines
+ A colon-separated list of values controlling how commands are
+ saved on the history list. If the list of values includes
+ _i_g_n_o_r_e_s_p_a_c_e, lines which begin with a ssppaaccee character are not
+ saved in the history list. A value of _i_g_n_o_r_e_d_u_p_s causes lines
matching the previous history entry to not be saved. A value of
_i_g_n_o_r_e_b_o_t_h is shorthand for _i_g_n_o_r_e_s_p_a_c_e and _i_g_n_o_r_e_d_u_p_s. A value
of _e_r_a_s_e_d_u_p_s causes all previous lines matching the current line
- to be removed from the history list before that line is saved.
- Any value not in the above list is ignored. If HHIISSTTCCOONNTTRROOLL is
- unset, or does not include a valid value, all lines read by the
+ to be removed from the history list before that line is saved.
+ Any value not in the above list is ignored. If HHIISSTTCCOONNTTRROOLL is
+ unset, or does not include a valid value, all lines read by the
shell parser are saved on the history list, subject to the value
- of HHIISSTTIIGGNNOORREE. The second and subsequent lines of a multi-line
- compound command are not tested, and are added to the history
+ of HHIISSTTIIGGNNOORREE. The second and subsequent lines of a multi-line
+ compound command are not tested, and are added to the history
regardless of the value of HHIISSTTCCOONNTTRROOLL.
HHIISSTTFFIILLEE
The name of the file in which command history is saved (see HHIISS--
- TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset,
- the command history is not saved when an interactive shell
+ TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset,
+ the command history is not saved when an interactive shell
exits.
HHIISSTTFFIILLEESSIIZZEE
The maximum number of lines contained in the history file. When
- this variable is assigned a value, the history file is trun-
- cated, if necessary, by removing the oldest entries, to contain
- no more than that number of lines. The default value is 500.
+ this variable is assigned a value, the history file is trun-
+ cated, if necessary, by removing the oldest entries, to contain
+ no more than that number of lines. The default value is 500.
The history file is also truncated to this size after writing it
when an interactive shell exits.
HHIISSTTIIGGNNOORREE
- A colon-separated list of patterns used to decide which command
- lines should be saved on the history list. Each pattern is
- anchored at the beginning of the line and must match the com-
- plete line (no implicit `**' is appended). Each pattern is
- tested against the line after the checks specified by HHIISSTTCCOONN--
- TTRROOLL are applied. In addition to the normal shell pattern
+ A colon-separated list of patterns used to decide which command
+ lines should be saved on the history list. Each pattern is
+ anchored at the beginning of the line and must match the com-
+ plete line (no implicit `**' is appended). Each pattern is
+ tested against the line after the checks specified by HHIISSTTCCOONN--
+ TTRROOLL are applied. In addition to the normal shell pattern
matching characters, `&&' matches the previous history line. `&&'
- may be escaped using a backslash; the backslash is removed
+ may be escaped using a backslash; the backslash is removed
before attempting a match. The second and subsequent lines of a
multi-line compound command are not tested, and are added to the
history regardless of the value of HHIISSTTIIGGNNOORREE.
HHIISSTTSSIIZZEE
- The number of commands to remember in the command history (see
+ The number of commands to remember in the command history (see
HHIISSTTOORRYY below). The default value is 500.
HHIISSTTTTIIMMEEFFOORRMMAATT
- If this variable is set and not null, its value is used as a
+ If this variable is set and not null, its value is used as a
format string for _s_t_r_f_t_i_m_e(3) to print the time stamp associated
- with each history entry displayed by the hhiissttoorryy builtin. If
- this variable is set, time stamps are written to the history
- file so they may be preserved across shell sessions. This uses
- the history comment character to distinguish timestamps from
+ with each history entry displayed by the hhiissttoorryy builtin. If
+ this variable is set, time stamps are written to the history
+ file so they may be preserved across shell sessions. This uses
+ the history comment character to distinguish timestamps from
other history lines.
HHOOMMEE The home directory of the current user; the default argument for
the ccdd builtin command. The value of this variable is also used
when performing tilde expansion.
HHOOSSTTFFIILLEE
- Contains the name of a file in the same format as _/_e_t_c_/_h_o_s_t_s
+ Contains the name of a file in the same format as _/_e_t_c_/_h_o_s_t_s
that should be read when the shell needs to complete a hostname.
- The list of possible hostname completions may be changed while
- the shell is running; the next time hostname completion is
- attempted after the value is changed, bbaasshh adds the contents of
- the new file to the existing list. If HHOOSSTTFFIILLEE is set, but has
- no value, or does not name a readable file, bbaasshh attempts to
- read _/_e_t_c_/_h_o_s_t_s to obtain the list of possible hostname comple-
+ The list of possible hostname completions may be changed while
+ the shell is running; the next time hostname completion is
+ attempted after the value is changed, bbaasshh adds the contents of
+ the new file to the existing list. If HHOOSSTTFFIILLEE is set, but has
+ no value, or does not name a readable file, bbaasshh attempts to
+ read _/_e_t_c_/_h_o_s_t_s to obtain the list of possible hostname comple-
tions. When HHOOSSTTFFIILLEE is unset, the hostname list is cleared.
- IIFFSS The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word splitting
- after expansion and to split lines into words with the rreeaadd
+ IIFFSS The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word splitting
+ after expansion and to split lines into words with the rreeaadd
builtin command. The default value is ``<space><tab><new-
line>''.
IIGGNNOORREEEEOOFF
Controls the action of an interactive shell on receipt of an EEOOFF
character as the sole input. If set, the value is the number of
- consecutive EEOOFF characters which must be typed as the first
- characters on an input line before bbaasshh exits. If the variable
- exists but does not have a numeric value, or has no value, the
- default value is 10. If it does not exist, EEOOFF signifies the
+ consecutive EEOOFF characters which must be typed as the first
+ characters on an input line before bbaasshh exits. If the variable
+ exists but does not have a numeric value, or has no value, the
+ default value is 10. If it does not exist, EEOOFF signifies the
end of input to the shell.
IINNPPUUTTRRCC
- The filename for the rreeaaddlliinnee startup file, overriding the
+ The filename for the rreeaaddlliinnee startup file, overriding the
default of _~_/_._i_n_p_u_t_r_c (see RREEAADDLLIINNEE below).
- LLAANNGG Used to determine the locale category for any category not
+ LLAANNGG Used to determine the locale category for any category not
specifically selected with a variable starting with LLCC__.
- LLCC__AALLLL This variable overrides the value of LLAANNGG and any other LLCC__
+ LLCC__AALLLL This variable overrides the value of LLAANNGG and any other LLCC__
variable specifying a locale category.
LLCC__CCOOLLLLAATTEE
- This variable determines the collation order used when sorting
- the results of pathname expansion, and determines the behavior
- of range expressions, equivalence classes, and collating
+ This variable determines the collation order used when sorting
+ the results of pathname expansion, and determines the behavior
+ of range expressions, equivalence classes, and collating
sequences within pathname expansion and pattern matching.
LLCC__CCTTYYPPEE
- This variable determines the interpretation of characters and
- the behavior of character classes within pathname expansion and
+ This variable determines the interpretation of characters and
+ the behavior of character classes within pathname expansion and
pattern matching.
LLCC__MMEESSSSAAGGEESS
- This variable determines the locale used to translate double-
+ This variable determines the locale used to translate double-
quoted strings preceded by a $$.
LLCC__NNUUMMEERRIICC
- This variable determines the locale category used for number
+ This variable determines the locale category used for number
formatting.
- LLIINNEESS Used by the sseelleecctt builtin command to determine the column
- length for printing selection lists. Automatically set upon
+ LLIINNEESS Used by the sseelleecctt builtin command to determine the column
+ length for printing selection lists. Automatically set upon
receipt of a SIGWINCH.
- MMAAIILL If this parameter is set to a file name and the MMAAIILLPPAATTHH vari-
+ MMAAIILL If this parameter is set to a file name and the MMAAIILLPPAATTHH vari-
able is not set, bbaasshh informs the user of the arrival of mail in
the specified file.
MMAAIILLCCHHEECCKK
- Specifies how often (in seconds) bbaasshh checks for mail. The
- default is 60 seconds. When it is time to check for mail, the
- shell does so before displaying the primary prompt. If this
- variable is unset, or set to a value that is not a number
+ Specifies how often (in seconds) bbaasshh checks for mail. The
+ default is 60 seconds. When it is time to check for mail, the
+ shell does so before displaying the primary prompt. If this
+ variable is unset, or set to a value that is not a number
greater than or equal to zero, the shell disables mail checking.
MMAAIILLPPAATTHH
- A colon-separated list of file names to be checked for mail.
+ A colon-separated list of file names to be checked for mail.
The message to be printed when mail arrives in a particular file
- may be specified by separating the file name from the message
+ may be specified by separating the file name from the message
with a `?'. When used in the text of the message, $$__ expands to
the name of the current mailfile. Example:
MMAAIILLPPAATTHH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has
mail!"'
- BBaasshh supplies a default value for this variable, but the loca-
- tion of the user mail files that it uses is system dependent
+ BBaasshh supplies a default value for this variable, but the loca-
+ tion of the user mail files that it uses is system dependent
(e.g., /var/mail/$$UUSSEERR).
OOPPTTEERRRR If set to the value 1, bbaasshh displays error messages generated by
- the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a
+ the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
+ OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a
shell script is executed.
- PPAATTHH The search path for commands. It is a colon-separated list of
- directories in which the shell looks for commands (see CCOOMMMMAANNDD
- EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the
+ PPAATTHH The search path for commands. It is a colon-separated list of
+ directories in which the shell looks for commands (see CCOOMMMMAANNDD
+ EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the
value of PPAATTHH indicates the current directory. A null directory
- name may appear as two adjacent colons, or as an initial or
- trailing colon. The default path is system-dependent, and is
- set by the administrator who installs bbaasshh. A common value is
+ name may appear as two adjacent colons, or as an initial or
+ trailing colon. The default path is system-dependent, and is
+ set by the administrator who installs bbaasshh. A common value is
``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
PPOOSSIIXXLLYY__CCOORRRREECCTT
- If this variable is in the environment when bbaasshh starts, the
- shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if
- the ----ppoossiixx invocation option had been supplied. If it is set
- while the shell is running, bbaasshh enables _p_o_s_i_x _m_o_d_e, as if the
+ If this variable is in the environment when bbaasshh starts, the
+ shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if
+ the ----ppoossiixx invocation option had been supplied. If it is set
+ while the shell is running, bbaasshh enables _p_o_s_i_x _m_o_d_e, as if the
command _s_e_t _-_o _p_o_s_i_x had been executed.
PPRROOMMPPTT__CCOOMMMMAANNDD
If set, the value is executed as a command prior to issuing each
primary prompt.
PPRROOMMPPTT__DDIIRRTTRRIIMM
- If set to a number greater than zero, the value is used as the
+ If set to a number greater than zero, the value is used as the
number of trailing directory components to retain when expanding
- the \\ww and \\WW prompt string escapes (see PPRROOMMPPTTIINNGG below).
+ the \\ww and \\WW prompt string escapes (see PPRROOMMPPTTIINNGG below).
Characters removed are replaced with an ellipsis.
- PPSS11 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below)
- and used as the primary prompt string. The default value is
+ PPSS11 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below)
+ and used as the primary prompt string. The default value is
``\\ss--\\vv\\$$ ''.
- PPSS22 The value of this parameter is expanded as with PPSS11 and used as
+ PPSS22 The value of this parameter is expanded as with PPSS11 and used as
the secondary prompt string. The default is ``>> ''.
PPSS33 The value of this parameter is used as the prompt for the sseelleecctt
command (see SSHHEELLLL GGRRAAMMMMAARR above).
- PPSS44 The value of this parameter is expanded as with PPSS11 and the
- value is printed before each command bbaasshh displays during an
- execution trace. The first character of PPSS44 is replicated mul-
- tiple times, as necessary, to indicate multiple levels of indi-
+ PPSS44 The value of this parameter is expanded as with PPSS11 and the
+ value is printed before each command bbaasshh displays during an
+ execution trace. The first character of PPSS44 is replicated mul-
+ tiple times, as necessary, to indicate multiple levels of indi-
rection. The default is ``++ ''.
SSHHEELLLL The full pathname to the shell is kept in this environment vari-
- able. If it is not set when the shell starts, bbaasshh assigns to
+ able. If it is not set when the shell starts, bbaasshh assigns to
it the full pathname of the current user's login shell.
TTIIMMEEFFOORRMMAATT
- The value of this parameter is used as a format string specify-
- ing how the timing information for pipelines prefixed with the
- ttiimmee reserved word should be displayed. The %% character intro-
- duces an escape sequence that is expanded to a time value or
- other information. The escape sequences and their meanings are
+ The value of this parameter is used as a format string specify-
+ ing how the timing information for pipelines prefixed with the
+ ttiimmee reserved word should be displayed. The %% character intro-
+ duces an escape sequence that is expanded to a time value or
+ other information. The escape sequences and their meanings are
as follows; the braces denote optional portions.
%%%% A literal %%.
%%[[_p]][[ll]]RR The elapsed time in seconds.
@@ -1152,189 +1155,189 @@ PPAARRAAMMEETTEERRSS
%%[[_p]][[ll]]SS The number of CPU seconds spent in system mode.
%%PP The CPU percentage, computed as (%U + %S) / %R.
- The optional _p is a digit specifying the _p_r_e_c_i_s_i_o_n, the number
+ The optional _p is a digit specifying the _p_r_e_c_i_s_i_o_n, the number
of fractional digits after a decimal point. A value of 0 causes
no decimal point or fraction to be output. At most three places
- after the decimal point may be specified; values of _p greater
- than 3 are changed to 3. If _p is not specified, the value 3 is
+ after the decimal point may be specified; values of _p greater
+ than 3 are changed to 3. If _p is not specified, the value 3 is
used.
- The optional ll specifies a longer format, including minutes, of
- the form _M_Mm_S_S._F_Fs. The value of _p determines whether or not
+ The optional ll specifies a longer format, including minutes, of
+ the form _M_Mm_S_S._F_Fs. The value of _p determines whether or not
the fraction is included.
- If this variable is not set, bbaasshh acts as if it had the value
- $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss%%33llSS''. If the value is null, no
- timing information is displayed. A trailing newline is added
+ If this variable is not set, bbaasshh acts as if it had the value
+ $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss%%33llSS''. If the value is null, no
+ timing information is displayed. A trailing newline is added
when the format string is displayed.
- TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the
+ TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the
default timeout for the rreeaadd builtin. The sseelleecctt command termi-
nates if input does not arrive after TTMMOOUUTT seconds when input is
- coming from a terminal. In an interactive shell, the value is
- interpreted as the number of seconds to wait for input after
- issuing the primary prompt. BBaasshh terminates after waiting for
+ coming from a terminal. In an interactive shell, the value is
+ interpreted as the number of seconds to wait for input after
+ issuing the primary prompt. BBaasshh terminates after waiting for
that number of seconds if input does not arrive.
- TTMMPPDDIIRR If set, BBaasshh uses its value as the name of a directory in which
+ TTMMPPDDIIRR If set, BBaasshh uses its value as the name of a directory in which
BBaasshh creates temporary files for the shell's use.
aauuttoo__rreessuummee
This variable controls how the shell interacts with the user and
- job control. If this variable is set, single word simple com-
+ job control. If this variable is set, single word simple com-
mands without redirections are treated as candidates for resump-
tion of an existing stopped job. There is no ambiguity allowed;
- if there is more than one job beginning with the string typed,
- the job most recently accessed is selected. The _n_a_m_e of a
- stopped job, in this context, is the command line used to start
- it. If set to the value _e_x_a_c_t, the string supplied must match
- the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the
- string supplied needs to match a substring of the name of a
- stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo-
- gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set
- to any other value, the supplied string must be a prefix of a
+ if there is more than one job beginning with the string typed,
+ the job most recently accessed is selected. The _n_a_m_e of a
+ stopped job, in this context, is the command line used to start
+ it. If set to the value _e_x_a_c_t, the string supplied must match
+ the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the
+ string supplied needs to match a substring of the name of a
+ stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo-
+ gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set
+ to any other value, the supplied string must be a prefix of a
stopped job's name; this provides functionality analogous to the
%%_s_t_r_i_n_g job identifier.
hhiissttcchhaarrss
- The two or three characters which control history expansion and
+ The two or three characters which control history expansion and
tokenization (see HHIISSTTOORRYY EEXXPPAANNSSIIOONN below). The first character
- is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals
- the start of a history expansion, normally `!!'. The second
- character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as
- shorthand for re-running the previous command entered, substi-
- tuting one string for another in the command. The default is
- `^^'. The optional third character is the character which indi-
- cates that the remainder of the line is a comment when found as
- the first character of a word, normally `##'. The history com-
+ is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals
+ the start of a history expansion, normally `!!'. The second
+ character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as
+ shorthand for re-running the previous command entered, substi-
+ tuting one string for another in the command. The default is
+ `^^'. The optional third character is the character which indi-
+ cates that the remainder of the line is a comment when found as
+ the first character of a word, normally `##'. The history com-
ment character causes history substitution to be skipped for the
- remaining words on the line. It does not necessarily cause the
+ remaining words on the line. It does not necessarily cause the
shell parser to treat the rest of the line as a comment.
AArrrraayyss
- BBaasshh provides one-dimensional indexed and associative array variables.
- Any variable may be used as an indexed array; the ddeeccllaarree builtin will
- explicitly declare an array. There is no maximum limit on the size of
- an array, nor any requirement that members be indexed or assigned con-
- tiguously. Indexed arrays are referenced using integers (including
- arithmetic expressions) and are zero-based; associative arrays are
+ BBaasshh provides one-dimensional indexed and associative array variables.
+ Any variable may be used as an indexed array; the ddeeccllaarree builtin will
+ explicitly declare an array. There is no maximum limit on the size of
+ an array, nor any requirement that members be indexed or assigned con-
+ tiguously. Indexed arrays are referenced using integers (including
+ arithmetic expressions) and are zero-based; associative arrays are
referenced using arbitrary strings.
- An indexed array is created automatically if any variable is assigned
+ An indexed array is created automatically if any variable is assigned
to using the syntax _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e. The _s_u_b_s_c_r_i_p_t is treated as
an arithmetic expression that must evaluate to a number greater than or
- equal to zero. To explicitly declare an indexed array, use ddeeccllaarree --aa
+ equal to zero. To explicitly declare an indexed array, use ddeeccllaarree --aa
_n_a_m_e (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). ddeeccllaarree --aa _n_a_m_e[[_s_u_b_s_c_r_i_p_t]] is
also accepted; the _s_u_b_s_c_r_i_p_t is ignored.
Associative arrays are created using ddeeccllaarree --AA _n_a_m_e.
Attributes may be specified for an array variable using the ddeeccllaarree and
- rreeaaddoonnllyy builtins. Each attribute applies to all members of an array.
+ rreeaaddoonnllyy builtins. Each attribute applies to all members of an array.
- Arrays are assigned to using compound assignments of the form
- _n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_-
- _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require the bracket
- and subscript. When assigning to indexed arrays, if the optional
- brackets and subscript are supplied, that index is assigned to; other-
+ Arrays are assigned to using compound assignments of the form
+ _n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_-
+ _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require the bracket
+ and subscript. When assigning to indexed arrays, if the optional
+ brackets and subscript are supplied, that index is assigned to; other-
wise the index of the element assigned is the last index assigned to by
the statement plus one. Indexing starts at zero.
When assigning to an associative array, the subscript is required.
- This syntax is also accepted by the ddeeccllaarree builtin. Individual array
- elements may be assigned to using the _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax
+ This syntax is also accepted by the ddeeccllaarree builtin. Individual array
+ elements may be assigned to using the _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax
introduced above.
- Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.
+ Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.
The braces are required to avoid conflicts with pathname expansion. If
- _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These
- subscripts differ only when the word appears within double quotes. If
+ _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These
+ subscripts differ only when the word appears within double quotes. If
the word is double-quoted, ${_n_a_m_e[*]} expands to a single word with the
- value of each array member separated by the first character of the IIFFSS
+ value of each array member separated by the first character of the IIFFSS
special variable, and ${_n_a_m_e[@]} expands each element of _n_a_m_e to a sep-
- arate word. When there are no array members, ${_n_a_m_e[@]} expands to
- nothing. If the double-quoted expansion occurs within a word, the
- expansion of the first parameter is joined with the beginning part of
- the original word, and the expansion of the last parameter is joined
- with the last part of the original word. This is analogous to the
- expansion of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss
- above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_-
- _s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele-
- ments in the array. Referencing an array variable without a subscript
+ arate word. When there are no array members, ${_n_a_m_e[@]} expands to
+ nothing. If the double-quoted expansion occurs within a word, the
+ expansion of the first parameter is joined with the beginning part of
+ the original word, and the expansion of the last parameter is joined
+ with the last part of the original word. This is analogous to the
+ expansion of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss
+ above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_-
+ _s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele-
+ ments in the array. Referencing an array variable without a subscript
is equivalent to referencing the array with a subscript of 0.
- An array variable is considered set if a subscript has been assigned a
+ An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
- The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t]
- destroys the array element at index _s_u_b_s_c_r_i_p_t. Care must be taken to
- avoid unwanted side effects caused by pathname expansion. uunnsseett _n_a_m_e,
- where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is **
+ The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t]
+ destroys the array element at index _s_u_b_s_c_r_i_p_t. Care must be taken to
+ avoid unwanted side effects caused by pathname expansion. uunnsseett _n_a_m_e,
+ where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is **
or @@, removes the entire array.
- The ddeeccllaarree, llooccaall, and rreeaaddoonnllyy builtins each accept a --aa option to
- specify an indexed array and a --AA option to specify an associative
- array. The rreeaadd builtin accepts a --aa option to assign a list of words
+ The ddeeccllaarree, llooccaall, and rreeaaddoonnllyy builtins each accept a --aa option to
+ specify an indexed array and a --AA option to specify an associative
+ array. The rreeaadd builtin accepts a --aa option to assign a list of words
read from the standard input to an array. The sseett and ddeeccllaarree builtins
- display array values in a way that allows them to be reused as assign-
+ display array values in a way that allows them to be reused as assign-
ments.
EEXXPPAANNSSIIOONN
Expansion is performed on the command line after it has been split into
- words. There are seven kinds of expansion performed: _b_r_a_c_e _e_x_p_a_n_s_i_o_n,
- _t_i_l_d_e _e_x_p_a_n_s_i_o_n, _p_a_r_a_m_e_t_e_r _a_n_d _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_-
+ words. There are seven kinds of expansion performed: _b_r_a_c_e _e_x_p_a_n_s_i_o_n,
+ _t_i_l_d_e _e_x_p_a_n_s_i_o_n, _p_a_r_a_m_e_t_e_r _a_n_d _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_-
_t_i_o_n, _a_r_i_t_h_m_e_t_i_c _e_x_p_a_n_s_i_o_n, _w_o_r_d _s_p_l_i_t_t_i_n_g, and _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n.
- The order of expansions is: brace expansion, tilde expansion, parame-
- ter, variable and arithmetic expansion and command substitution (done
+ The order of expansions is: brace expansion, tilde expansion, parame-
+ ter, variable and arithmetic expansion and command substitution (done
in a left-to-right fashion), word splitting, and pathname expansion.
On systems that can support it, there is an additional expansion avail-
able: _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n.
Only brace expansion, word splitting, and pathname expansion can change
- the number of words of the expansion; other expansions expand a single
- word to a single word. The only exceptions to this are the expansions
+ the number of words of the expansion; other expansions expand a single
+ word to a single word. The only exceptions to this are the expansions
of "$$@@" and "$${{_n_a_m_e[[@@]]}}" as explained above (see PPAARRAAMMEETTEERRSS).
BBrraaccee EExxppaannssiioonn
_B_r_a_c_e _e_x_p_a_n_s_i_o_n is a mechanism by which arbitrary strings may be gener-
- ated. This mechanism is similar to _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n, but the file-
+ ated. This mechanism is similar to _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n, but the file-
names generated need not exist. Patterns to be brace expanded take the
form of an optional _p_r_e_a_m_b_l_e, followed by either a series of comma-sep-
- arated strings or a sequence expression between a pair of braces, fol-
- lowed by an optional _p_o_s_t_s_c_r_i_p_t. The preamble is prefixed to each
+ arated strings or a sequence expression between a pair of braces, fol-
+ lowed by an optional _p_o_s_t_s_c_r_i_p_t. The preamble is prefixed to each
string contained within the braces, and the postscript is then appended
to each resulting string, expanding left to right.
- Brace expansions may be nested. The results of each expanded string
- are not sorted; left to right order is preserved. For example,
+ Brace expansions may be nested. The results of each expanded string
+ are not sorted; left to right order is preserved. For example,
a{{d,c,b}}e expands into `ade ace abe'.
- A sequence expression takes the form {{_x...._y[[...._i_n_c_r]]}}, where _x and _y are
- either integers or single characters, and _i_n_c_r, an optional increment,
- is an integer. When integers are supplied, the expression expands to
- each number between _x and _y, inclusive. Supplied integers may be pre-
- fixed with _0 to force each term to have the same width. When either _x
- or _y begins with a zero, the shell attempts to force all generated
- terms to contain the same number of digits, zero-padding where neces-
- sary. When characters are supplied, the expression expands to each
+ A sequence expression takes the form {{_x...._y[[...._i_n_c_r]]}}, where _x and _y are
+ either integers or single characters, and _i_n_c_r, an optional increment,
+ is an integer. When integers are supplied, the expression expands to
+ each number between _x and _y, inclusive. Supplied integers may be pre-
+ fixed with _0 to force each term to have the same width. When either _x
+ or _y begins with a zero, the shell attempts to force all generated
+ terms to contain the same number of digits, zero-padding where neces-
+ sary. When characters are supplied, the expression expands to each
character lexicographically between _x and _y, inclusive. Note that both
- _x and _y must be of the same type. When the increment is supplied, it
- is used as the difference between each term. The default increment is
+ _x and _y must be of the same type. When the increment is supplied, it
+ is used as the difference between each term. The default increment is
1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any char-
- acters special to other expansions are preserved in the result. It is
- strictly textual. BBaasshh does not apply any syntactic interpretation to
+ acters special to other expansions are preserved in the result. It is
+ strictly textual. BBaasshh does not apply any syntactic interpretation to
the context of the expansion or the text between the braces.
- A correctly-formed brace expansion must contain unquoted opening and
- closing braces, and at least one unquoted comma or a valid sequence
- expression. Any incorrectly formed brace expansion is left unchanged.
+ A correctly-formed brace expansion must contain unquoted opening and
+ closing braces, and at least one unquoted comma or a valid sequence
+ expression. Any incorrectly formed brace expansion is left unchanged.
A {{ or ,, may be quoted with a backslash to prevent its being considered
- part of a brace expression. To avoid conflicts with parameter expan-
+ part of a brace expression. To avoid conflicts with parameter expan-
sion, the string $${{ is not considered eligible for brace expansion.
This construct is typically used as shorthand when the common prefix of
@@ -1344,36 +1347,36 @@ EEXXPPAANNSSIIOONN
or
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
- Brace expansion introduces a slight incompatibility with historical
- versions of sshh. sshh does not treat opening or closing braces specially
- when they appear as part of a word, and preserves them in the output.
- BBaasshh removes braces from words as a consequence of brace expansion.
- For example, a word entered to sshh as _f_i_l_e_{_1_,_2_} appears identically in
- the output. The same word is output as _f_i_l_e_1 _f_i_l_e_2 after expansion by
- bbaasshh. If strict compatibility with sshh is desired, start bbaasshh with the
+ Brace expansion introduces a slight incompatibility with historical
+ versions of sshh. sshh does not treat opening or closing braces specially
+ when they appear as part of a word, and preserves them in the output.
+ BBaasshh removes braces from words as a consequence of brace expansion.
+ For example, a word entered to sshh as _f_i_l_e_{_1_,_2_} appears identically in
+ the output. The same word is output as _f_i_l_e_1 _f_i_l_e_2 after expansion by
+ bbaasshh. If strict compatibility with sshh is desired, start bbaasshh with the
++BB option or disable brace expansion with the ++BB option to the sseett com-
mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
TTiillddee EExxppaannssiioonn
- If a word begins with an unquoted tilde character (`~~'), all of the
- characters preceding the first unquoted slash (or all characters, if
- there is no unquoted slash) are considered a _t_i_l_d_e_-_p_r_e_f_i_x. If none of
- the characters in the tilde-prefix are quoted, the characters in the
- tilde-prefix following the tilde are treated as a possible _l_o_g_i_n _n_a_m_e.
- If this login name is the null string, the tilde is replaced with the
- value of the shell parameter HHOOMMEE. If HHOOMMEE is unset, the home direc-
- tory of the user executing the shell is substituted instead. Other-
- wise, the tilde-prefix is replaced with the home directory associated
+ If a word begins with an unquoted tilde character (`~~'), all of the
+ characters preceding the first unquoted slash (or all characters, if
+ there is no unquoted slash) are considered a _t_i_l_d_e_-_p_r_e_f_i_x. If none of
+ the characters in the tilde-prefix are quoted, the characters in the
+ tilde-prefix following the tilde are treated as a possible _l_o_g_i_n _n_a_m_e.
+ If this login name is the null string, the tilde is replaced with the
+ value of the shell parameter HHOOMMEE. If HHOOMMEE is unset, the home direc-
+ tory of the user executing the shell is substituted instead. Other-
+ wise, the tilde-prefix is replaced with the home directory associated
with the specified login name.
- If the tilde-prefix is a `~+', the value of the shell variable PPWWDD
+ If the tilde-prefix is a `~+', the value of the shell variable PPWWDD
replaces the tilde-prefix. If the tilde-prefix is a `~-', the value of
- the shell variable OOLLDDPPWWDD, if it is set, is substituted. If the char-
- acters following the tilde in the tilde-prefix consist of a number _N,
- optionally prefixed by a `+' or a `-', the tilde-prefix is replaced
+ the shell variable OOLLDDPPWWDD, if it is set, is substituted. If the char-
+ acters following the tilde in the tilde-prefix consist of a number _N,
+ optionally prefixed by a `+' or a `-', the tilde-prefix is replaced
with the corresponding element from the directory stack, as it would be
displayed by the ddiirrss builtin invoked with the tilde-prefix as an argu-
- ment. If the characters following the tilde in the tilde-prefix con-
+ ment. If the characters following the tilde in the tilde-prefix con-
sist of a number without a leading `+' or `-', `+' is assumed.
If the login name is invalid, or the tilde expansion fails, the word is
@@ -1381,172 +1384,172 @@ EEXXPPAANNSSIIOONN
Each variable assignment is checked for unquoted tilde-prefixes immedi-
ately following a :: or the first ==. In these cases, tilde expansion is
- also performed. Consequently, one may use file names with tildes in
- assignments to PPAATTHH, MMAAIILLPPAATTHH, and CCDDPPAATTHH, and the shell assigns the
+ also performed. Consequently, one may use file names with tildes in
+ assignments to PPAATTHH, MMAAIILLPPAATTHH, and CCDDPPAATTHH, and the shell assigns the
expanded value.
PPaarraammeetteerr EExxppaannssiioonn
The `$$' character introduces parameter expansion, command substitution,
- or arithmetic expansion. The parameter name or symbol to be expanded
- may be enclosed in braces, which are optional but serve to protect the
- variable to be expanded from characters immediately following it which
+ or arithmetic expansion. The parameter name or symbol to be expanded
+ may be enclosed in braces, which are optional but serve to protect the
+ variable to be expanded from characters immediately following it which
could be interpreted as part of the name.
- When braces are used, the matching ending brace is the first `}}' not
- escaped by a backslash or within a quoted string, and not within an
+ When braces are used, the matching ending brace is the first `}}' not
+ escaped by a backslash or within a quoted string, and not within an
embedded arithmetic expansion, command substitution, or parameter
expansion.
${_p_a_r_a_m_e_t_e_r}
- The value of _p_a_r_a_m_e_t_e_r is substituted. The braces are required
- when _p_a_r_a_m_e_t_e_r is a positional parameter with more than one
+ The value of _p_a_r_a_m_e_t_e_r is substituted. The braces are required
+ when _p_a_r_a_m_e_t_e_r is a positional parameter with more than one
digit, or when _p_a_r_a_m_e_t_e_r is followed by a character which is not
to be interpreted as part of its name.
- If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point, a level of
- variable indirection is introduced. BBaasshh uses the value of the vari-
- able formed from the rest of _p_a_r_a_m_e_t_e_r as the name of the variable;
- this variable is then expanded and that value is used in the rest of
- the substitution, rather than the value of _p_a_r_a_m_e_t_e_r itself. This is
- known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. The exceptions to this are the expansions
- of ${!_p_r_e_f_i_x*} and ${!!_n_a_m_e[_@]} described below. The exclamation point
- must immediately follow the left brace in order to introduce indirec-
- tion.
+ If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point (!!), a
+ level of variable indirection is introduced. BBaasshh uses the value of
+ the variable formed from the rest of _p_a_r_a_m_e_t_e_r as the name of the vari-
+ able; this variable is then expanded and that value is used in the rest
+ of the substitution, rather than the value of _p_a_r_a_m_e_t_e_r itself. This
+ is known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. The exceptions to this are the expan-
+ sions of ${!_p_r_e_f_i_x*} and ${!!_n_a_m_e[_@]} described below. The exclamation
+ point must immediately follow the left brace in order to introduce
+ indirection.
In each of the cases below, _w_o_r_d is subject to tilde expansion, parame-
ter expansion, command substitution, and arithmetic expansion.
- When not performing substring expansion, using the forms documented
- below, bbaasshh tests for a parameter that is unset or null. Omitting the
+ When not performing substring expansion, using the forms documented
+ below, bbaasshh tests for a parameter that is unset or null. Omitting the
colon results in a test only for a parameter that is unset.
${_p_a_r_a_m_e_t_e_r::--_w_o_r_d}
- UUssee DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expan-
- sion of _w_o_r_d is substituted. Otherwise, the value of _p_a_r_a_m_e_t_e_r
+ UUssee DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expan-
+ sion of _w_o_r_d is substituted. Otherwise, the value of _p_a_r_a_m_e_t_e_r
is substituted.
${_p_a_r_a_m_e_t_e_r::==_w_o_r_d}
- AAssssiiggnn DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the
+ AAssssiiggnn DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the
expansion of _w_o_r_d is assigned to _p_a_r_a_m_e_t_e_r. The value of _p_a_r_a_m_-
- _e_t_e_r is then substituted. Positional parameters and special
+ _e_t_e_r is then substituted. Positional parameters and special
parameters may not be assigned to in this way.
${_p_a_r_a_m_e_t_e_r::??_w_o_r_d}
- DDiissppllaayy EErrrroorr iiff NNuullll oorr UUnnsseett. If _p_a_r_a_m_e_t_e_r is null or unset,
- the expansion of _w_o_r_d (or a message to that effect if _w_o_r_d is
- not present) is written to the standard error and the shell, if
+ DDiissppllaayy EErrrroorr iiff NNuullll oorr UUnnsseett. If _p_a_r_a_m_e_t_e_r is null or unset,
+ the expansion of _w_o_r_d (or a message to that effect if _w_o_r_d is
+ not present) is written to the standard error and the shell, if
it is not interactive, exits. Otherwise, the value of _p_a_r_a_m_e_t_e_r
is substituted.
${_p_a_r_a_m_e_t_e_r::++_w_o_r_d}
- UUssee AAlltteerrnnaattee VVaalluuee. If _p_a_r_a_m_e_t_e_r is null or unset, nothing is
+ UUssee AAlltteerrnnaattee VVaalluuee. If _p_a_r_a_m_e_t_e_r is null or unset, nothing is
substituted, otherwise the expansion of _w_o_r_d is substituted.
${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t}
${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t::_l_e_n_g_t_h}
- SSuubbssttrriinngg EExxppaannssiioonn.. Expands to up to _l_e_n_g_t_h characters of
- _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_s_e_t. If
- _l_e_n_g_t_h is omitted, expands to the substring of _p_a_r_a_m_e_t_e_r start-
+ SSuubbssttrriinngg EExxppaannssiioonn.. Expands to up to _l_e_n_g_t_h characters of
+ _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_s_e_t. If
+ _l_e_n_g_t_h is omitted, expands to the substring of _p_a_r_a_m_e_t_e_r start-
ing at the character specified by _o_f_f_s_e_t. _l_e_n_g_t_h and _o_f_f_s_e_t are
- arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below).
- _l_e_n_g_t_h must evaluate to a number greater than or equal to zero.
- If _o_f_f_s_e_t evaluates to a number less than zero, the value is
- used as an offset from the end of the value of _p_a_r_a_m_e_t_e_r. If
- _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h positional parameters
+ arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below).
+ _l_e_n_g_t_h must evaluate to a number greater than or equal to zero.
+ If _o_f_f_s_e_t evaluates to a number less than zero, the value is
+ used as an offset from the end of the value of _p_a_r_a_m_e_t_e_r. If
+ _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h positional parameters
beginning at _o_f_f_s_e_t. If _p_a_r_a_m_e_t_e_r is an indexed array name sub-
- scripted by @ or *, the result is the _l_e_n_g_t_h members of the
+ scripted by @ or *, the result is the _l_e_n_g_t_h members of the
array beginning with ${_p_a_r_a_m_e_t_e_r[_o_f_f_s_e_t]}. A negative _o_f_f_s_e_t is
- taken relative to one greater than the maximum index of the
- specified array. Substring expansion applied to an associative
- array produces undefined results. Note that a negative offset
- must be separated from the colon by at least one space to avoid
- being confused with the :- expansion. Substring indexing is
- zero-based unless the positional parameters are used, in which
- case the indexing starts at 1 by default. If _o_f_f_s_e_t is 0, and
- the positional parameters are used, $$00 is prefixed to the list.
+ taken relative to one greater than the maximum index of the
+ specified array. Substring expansion applied to an associative
+ array produces undefined results. Note that a negative offset
+ must be separated from the colon by at least one space to avoid
+ being confused with the :- expansion. Substring indexing is
+ zero-based unless the positional parameters are used, in which
+ case the indexing starts at 1 by default. If _o_f_f_s_e_t is 0, and
+ the positional parameters are used, $$00 is prefixed to the list.
${!!_p_r_e_f_i_x**}
${!!_p_r_e_f_i_x@@}
- NNaammeess mmaattcchhiinngg pprreeffiixx.. Expands to the names of variables whose
+ NNaammeess mmaattcchhiinngg pprreeffiixx.. Expands to the names of variables whose
names begin with _p_r_e_f_i_x, separated by the first character of the
- IIFFSS special variable. When _@ is used and the expansion appears
- within double quotes, each variable name expands to a separate
+ IIFFSS special variable. When _@ is used and the expansion appears
+ within double quotes, each variable name expands to a separate
word.
${!!_n_a_m_e[_@]}
${!!_n_a_m_e[_*]}
- LLiisstt ooff aarrrraayy kkeeyyss.. If _n_a_m_e is an array variable, expands to
- the list of array indices (keys) assigned in _n_a_m_e. If _n_a_m_e is
- not an array, expands to 0 if _n_a_m_e is set and null otherwise.
- When _@ is used and the expansion appears within double quotes,
+ LLiisstt ooff aarrrraayy kkeeyyss.. If _n_a_m_e is an array variable, expands to
+ the list of array indices (keys) assigned in _n_a_m_e. If _n_a_m_e is
+ not an array, expands to 0 if _n_a_m_e is set and null otherwise.
+ When _@ is used and the expansion appears within double quotes,
each key expands to a separate word.
${##_p_a_r_a_m_e_t_e_r}
- PPaarraammeetteerr lleennggtthh.. The length in characters of the value of
- _p_a_r_a_m_e_t_e_r is substituted. If _p_a_r_a_m_e_t_e_r is ** or @@, the value
- substituted is the number of positional parameters. If _p_a_r_a_m_e_-
- _t_e_r is an array name subscripted by ** or @@, the value substi-
+ PPaarraammeetteerr lleennggtthh.. The length in characters of the value of
+ _p_a_r_a_m_e_t_e_r is substituted. If _p_a_r_a_m_e_t_e_r is ** or @@, the value
+ substituted is the number of positional parameters. If _p_a_r_a_m_e_-
+ _t_e_r is an array name subscripted by ** or @@, the value substi-
tuted is the number of elements in the array.
${_p_a_r_a_m_e_t_e_r##_w_o_r_d}
${_p_a_r_a_m_e_t_e_r####_w_o_r_d}
RReemmoovvee mmaattcchhiinngg pprreeffiixx ppaatttteerrnn.. The _w_o_r_d is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
- the beginning of the value of _p_a_r_a_m_e_t_e_r, then the result of the
- expansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest
- matching pattern (the ``##'' case) or the longest matching pat-
- tern (the ``####'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the
- pattern removal operation is applied to each positional parame-
+ the beginning of the value of _p_a_r_a_m_e_t_e_r, then the result of the
+ expansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest
+ matching pattern (the ``##'' case) or the longest matching pat-
+ tern (the ``####'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the
+ pattern removal operation is applied to each positional parame-
ter in turn, and the expansion is the resultant list. If _p_a_r_a_m_-
- _e_t_e_r is an array variable subscripted with @@ or **, the pattern
- removal operation is applied to each member of the array in
+ _e_t_e_r is an array variable subscripted with @@ or **, the pattern
+ removal operation is applied to each member of the array in
turn, and the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r%%_w_o_r_d}
${_p_a_r_a_m_e_t_e_r%%%%_w_o_r_d}
RReemmoovvee mmaattcchhiinngg ssuuffffiixx ppaatttteerrnn.. The _w_o_r_d is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
- a trailing portion of the expanded value of _p_a_r_a_m_e_t_e_r, then the
- result of the expansion is the expanded value of _p_a_r_a_m_e_t_e_r with
- the shortest matching pattern (the ``%%'' case) or the longest
- matching pattern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@
- or **, the pattern removal operation is applied to each posi-
- tional parameter in turn, and the expansion is the resultant
- list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or
- **, the pattern removal operation is applied to each member of
+ a trailing portion of the expanded value of _p_a_r_a_m_e_t_e_r, then the
+ result of the expansion is the expanded value of _p_a_r_a_m_e_t_e_r with
+ the shortest matching pattern (the ``%%'' case) or the longest
+ matching pattern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@
+ or **, the pattern removal operation is applied to each posi-
+ tional parameter in turn, and the expansion is the resultant
+ list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or
+ **, the pattern removal operation is applied to each member of
the array in turn, and the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r//_p_a_t_t_e_r_n//_s_t_r_i_n_g}
PPaatttteerrnn ssuubbssttiittuuttiioonn.. The _p_a_t_t_e_r_n is expanded to produce a pat-
- tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and
- the longest match of _p_a_t_t_e_r_n against its value is replaced with
- _s_t_r_i_n_g. If _p_a_t_t_e_r_n begins with //, all matches of _p_a_t_t_e_r_n are
- replaced with _s_t_r_i_n_g. Normally only the first match is
+ tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and
+ the longest match of _p_a_t_t_e_r_n against its value is replaced with
+ _s_t_r_i_n_g. If _p_a_t_t_e_r_n begins with //, all matches of _p_a_t_t_e_r_n are
+ replaced with _s_t_r_i_n_g. Normally only the first match is
replaced. If _p_a_t_t_e_r_n begins with ##, it must match at the begin-
ning of the expanded value of _p_a_r_a_m_e_t_e_r. If _p_a_t_t_e_r_n begins with
- %%, it must match at the end of the expanded value of _p_a_r_a_m_e_t_e_r.
+ %%, it must match at the end of the expanded value of _p_a_r_a_m_e_t_e_r.
If _s_t_r_i_n_g is null, matches of _p_a_t_t_e_r_n are deleted and the // fol-
lowing _p_a_t_t_e_r_n may be omitted. If _p_a_r_a_m_e_t_e_r is @@ or **, the sub-
- stitution operation is applied to each positional parameter in
- turn, and the expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is
- an array variable subscripted with @@ or **, the substitution
- operation is applied to each member of the array in turn, and
+ stitution operation is applied to each positional parameter in
+ turn, and the expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is
+ an array variable subscripted with @@ or **, the substitution
+ operation is applied to each member of the array in turn, and
the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r^^_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r^^^^_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r,,_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r,,,,_p_a_t_t_e_r_n}
- CCaassee mmooddiiffiiccaattiioonn.. This expansion modifies the case of alpha-
- betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro-
- duce a pattern just as in pathname expansion. The ^^ operator
- converts lowercase letters matching _p_a_t_t_e_r_n to uppercase; the ,,
- operator converts matching uppercase letters to lowercase. The
- ^^^^ and ,,,, expansions convert each matched character in the
- expanded value; the ^^ and ,, expansions match and convert only
+ CCaassee mmooddiiffiiccaattiioonn.. This expansion modifies the case of alpha-
+ betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro-
+ duce a pattern just as in pathname expansion. The ^^ operator
+ converts lowercase letters matching _p_a_t_t_e_r_n to uppercase; the ,,
+ operator converts matching uppercase letters to lowercase. The
+ ^^^^ and ,,,, expansions convert each matched character in the
+ expanded value; the ^^ and ,, expansions match and convert only
the first character in the expanded value.. If _p_a_t_t_e_r_n is omit-
- ted, it is treated like a ??, which matches every character. If
- _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is applied
- to each positional parameter in turn, and the expansion is the
- resultant list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted
- with @@ or **, the case modification operation is applied to each
- member of the array in turn, and the expansion is the resultant
+ ted, it is treated like a ??, which matches every character. If
+ _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is applied
+ to each positional parameter in turn, and the expansion is the
+ resultant list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted
+ with @@ or **, the case modification operation is applied to each
+ member of the array in turn, and the expansion is the resultant
list.
CCoommmmaanndd SSuubbssttiittuuttiioonn
@@ -1559,160 +1562,160 @@ EEXXPPAANNSSIIOONN
``_c_o_m_m_a_n_d``
BBaasshh performs the expansion by executing _c_o_m_m_a_n_d and replacing the com-
- mand substitution with the standard output of the command, with any
+ mand substitution with the standard output of the command, with any
trailing newlines deleted. Embedded newlines are not deleted, but they
- may be removed during word splitting. The command substitution $$((ccaatt
+ may be removed during word splitting. The command substitution $$((ccaatt
_f_i_l_e)) can be replaced by the equivalent but faster $$((<< _f_i_l_e)).
- When the old-style backquote form of substitution is used, backslash
- retains its literal meaning except when followed by $$, ``, or \\. The
+ When the old-style backquote form of substitution is used, backslash
+ retains its literal meaning except when followed by $$, ``, or \\. The
first backquote not preceded by a backslash terminates the command sub-
- stitution. When using the $(_c_o_m_m_a_n_d) form, all characters between the
+ stitution. When using the $(_c_o_m_m_a_n_d) form, all characters between the
parentheses make up the command; none are treated specially.
Command substitutions may be nested. To nest when using the backquoted
form, escape the inner backquotes with backslashes.
- If the substitution appears within double quotes, word splitting and
+ If the substitution appears within double quotes, word splitting and
pathname expansion are not performed on the results.
AArriitthhmmeettiicc EExxppaannssiioonn
- Arithmetic expansion allows the evaluation of an arithmetic expression
- and the substitution of the result. The format for arithmetic expan-
+ Arithmetic expansion allows the evaluation of an arithmetic expression
+ and the substitution of the result. The format for arithmetic expan-
sion is:
$$((((_e_x_p_r_e_s_s_i_o_n))))
- The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double quotes, but a
- double quote inside the parentheses is not treated specially. All
+ The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double quotes, but a
+ double quote inside the parentheses is not treated specially. All
tokens in the expression undergo parameter expansion, string expansion,
- command substitution, and quote removal. Arithmetic expansions may be
+ command substitution, and quote removal. Arithmetic expansions may be
nested.
- The evaluation is performed according to the rules listed below under
+ The evaluation is performed according to the rules listed below under
AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If _e_x_p_r_e_s_s_i_o_n is invalid, bbaasshh prints a message
indicating failure and no substitution occurs.
PPrroocceessss SSuubbssttiittuuttiioonn
- _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support named pipes
- (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. It takes the form
- of <<((_l_i_s_t)) or >>((_l_i_s_t)). The process _l_i_s_t is run with its input or out-
+ _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support named pipes
+ (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. It takes the form
+ of <<((_l_i_s_t)) or >>((_l_i_s_t)). The process _l_i_s_t is run with its input or out-
put connected to a _F_I_F_O or some file in //ddeevv//ffdd. The name of this file
- is passed as an argument to the current command as the result of the
- expansion. If the >>((_l_i_s_t)) form is used, writing to the file will pro-
- vide input for _l_i_s_t. If the <<((_l_i_s_t)) form is used, the file passed as
+ is passed as an argument to the current command as the result of the
+ expansion. If the >>((_l_i_s_t)) form is used, writing to the file will pro-
+ vide input for _l_i_s_t. If the <<((_l_i_s_t)) form is used, the file passed as
an argument should be read to obtain the output of _l_i_s_t.
- When available, process substitution is performed simultaneously with
- parameter and variable expansion, command substitution, and arithmetic
+ When available, process substitution is performed simultaneously with
+ parameter and variable expansion, command substitution, and arithmetic
expansion.
WWoorrdd SSpplliittttiinngg
- The shell scans the results of parameter expansion, command substitu-
- tion, and arithmetic expansion that did not occur within double quotes
+ The shell scans the results of parameter expansion, command substitu-
+ tion, and arithmetic expansion that did not occur within double quotes
for _w_o_r_d _s_p_l_i_t_t_i_n_g.
- The shell treats each character of IIFFSS as a delimiter, and splits the
+ The shell treats each character of IIFFSS as a delimiter, and splits the
results of the other expansions into words on these characters. If IIFFSS
- is unset, or its value is exactly <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default,
- then sequences of <<ssppaaccee>>, <<ttaabb>>, and <<nneewwlliinnee>> at the beginning and
- end of the results of the previous expansions are ignored, and any
- sequence of IIFFSS characters not at the beginning or end serves to
- delimit words. If IIFFSS has a value other than the default, then
+ is unset, or its value is exactly <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default,
+ then sequences of <<ssppaaccee>>, <<ttaabb>>, and <<nneewwlliinnee>> at the beginning and
+ end of the results of the previous expansions are ignored, and any
+ sequence of IIFFSS characters not at the beginning or end serves to
+ delimit words. If IIFFSS has a value other than the default, then
sequences of the whitespace characters ssppaaccee and ttaabb are ignored at the
- beginning and end of the word, as long as the whitespace character is
- in the value of IIFFSS (an IIFFSS whitespace character). Any character in
- IIFFSS that is not IIFFSS whitespace, along with any adjacent IIFFSS whitespace
- characters, delimits a field. A sequence of IIFFSS whitespace characters
- is also treated as a delimiter. If the value of IIFFSS is null, no word
+ beginning and end of the word, as long as the whitespace character is
+ in the value of IIFFSS (an IIFFSS whitespace character). Any character in
+ IIFFSS that is not IIFFSS whitespace, along with any adjacent IIFFSS whitespace
+ characters, delimits a field. A sequence of IIFFSS whitespace characters
+ is also treated as a delimiter. If the value of IIFFSS is null, no word
splitting occurs.
- Explicit null arguments ("""" or '''') are retained. Unquoted implicit
+ Explicit null arguments ("""" or '''') are retained. Unquoted implicit
null arguments, resulting from the expansion of parameters that have no
- values, are removed. If a parameter with no value is expanded within
+ values, are removed. If a parameter with no value is expanded within
double quotes, a null argument results and is retained.
Note that if no expansion occurs, no splitting is performed.
PPaatthhnnaammee EExxppaannssiioonn
- After word splitting, unless the --ff option has been set, bbaasshh scans
- each word for the characters **, ??, and [[. If one of these characters
- appears, then the word is regarded as a _p_a_t_t_e_r_n, and replaced with an
- alphabetically sorted list of file names matching the pattern. If no
- matching file names are found, and the shell option nnuullllgglloobb is not
- enabled, the word is left unchanged. If the nnuullllgglloobb option is set,
- and no matches are found, the word is removed. If the ffaaiillgglloobb shell
- option is set, and no matches are found, an error message is printed
- and the command is not executed. If the shell option nnooccaasseegglloobb is
- enabled, the match is performed without regard to the case of alpha-
- betic characters. When a pattern is used for pathname expansion, the
- character ````..'''' at the start of a name or immediately following a
- slash must be matched explicitly, unless the shell option ddoottgglloobb is
- set. When matching a pathname, the slash character must always be
- matched explicitly. In other cases, the ````..'''' character is not
- treated specially. See the description of sshhoopptt below under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS for a description of the nnooccaasseegglloobb, nnuullllgglloobb, ffaaiill--
+ After word splitting, unless the --ff option has been set, bbaasshh scans
+ each word for the characters **, ??, and [[. If one of these characters
+ appears, then the word is regarded as a _p_a_t_t_e_r_n, and replaced with an
+ alphabetically sorted list of file names matching the pattern. If no
+ matching file names are found, and the shell option nnuullllgglloobb is not
+ enabled, the word is left unchanged. If the nnuullllgglloobb option is set,
+ and no matches are found, the word is removed. If the ffaaiillgglloobb shell
+ option is set, and no matches are found, an error message is printed
+ and the command is not executed. If the shell option nnooccaasseegglloobb is
+ enabled, the match is performed without regard to the case of alpha-
+ betic characters. When a pattern is used for pathname expansion, the
+ character ````..'''' at the start of a name or immediately following a
+ slash must be matched explicitly, unless the shell option ddoottgglloobb is
+ set. When matching a pathname, the slash character must always be
+ matched explicitly. In other cases, the ````..'''' character is not
+ treated specially. See the description of sshhoopptt below under SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS for a description of the nnooccaasseegglloobb, nnuullllgglloobb, ffaaiill--
gglloobb, and ddoottgglloobb shell options.
- The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file
- names matching a _p_a_t_t_e_r_n. If GGLLOOBBIIGGNNOORREE is set, each matching file
- name that also matches one of the patterns in GGLLOOBBIIGGNNOORREE is removed
+ The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file
+ names matching a _p_a_t_t_e_r_n. If GGLLOOBBIIGGNNOORREE is set, each matching file
+ name that also matches one of the patterns in GGLLOOBBIIGGNNOORREE is removed
from the list of matches. The file names ````..'''' and ````....'''' are always
- ignored when GGLLOOBBIIGGNNOORREE is set and not null. However, setting GGLLOOBBIIGG--
- NNOORREE to a non-null value has the effect of enabling the ddoottgglloobb shell
+ ignored when GGLLOOBBIIGGNNOORREE is set and not null. However, setting GGLLOOBBIIGG--
+ NNOORREE to a non-null value has the effect of enabling the ddoottgglloobb shell
option, so all other file names beginning with a ````..'''' will match. To
- get the old behavior of ignoring file names beginning with a ````..'''',
- make ````..**'''' one of the patterns in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is
+ get the old behavior of ignoring file names beginning with a ````..'''',
+ make ````..**'''' one of the patterns in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is
disabled when GGLLOOBBIIGGNNOORREE is unset.
PPaatttteerrnn MMaattcchhiinngg
Any character that appears in a pattern, other than the special pattern
- characters described below, matches itself. The NUL character may not
- occur in a pattern. A backslash escapes the following character; the
- escaping backslash is discarded when matching. The special pattern
+ characters described below, matches itself. The NUL character may not
+ occur in a pattern. A backslash escapes the following character; the
+ escaping backslash is discarded when matching. The special pattern
characters must be quoted if they are to be matched literally.
The special pattern characters have the following meanings:
- ** Matches any string, including the null string. When the gglloobb--
+ ** Matches any string, including the null string. When the gglloobb--
ssttaarr shell option is enabled, and ** is used in a pathname expan-
- sion context, two adjacent **s used as a single pattern will
+ sion context, two adjacent **s used as a single pattern will
match all files and zero or more directories and subdirectories.
- If followed by a //, two adjacent **s will match only directories
+ If followed by a //, two adjacent **s will match only directories
and subdirectories.
?? Matches any single character.
- [[......]] Matches any one of the enclosed characters. A pair of charac-
+ [[......]] Matches any one of the enclosed characters. A pair of charac-
ters separated by a hyphen denotes a _r_a_n_g_e _e_x_p_r_e_s_s_i_o_n; any char-
- acter that sorts between those two characters, inclusive, using
- the current locale's collating sequence and character set, is
- matched. If the first character following the [[ is a !! or a ^^
- then any character not enclosed is matched. The sorting order
- of characters in range expressions is determined by the current
- locale and the value of the LLCC__CCOOLLLLAATTEE shell variable, if set.
- A -- may be matched by including it as the first or last charac-
+ acter that sorts between those two characters, inclusive, using
+ the current locale's collating sequence and character set, is
+ matched. If the first character following the [[ is a !! or a ^^
+ then any character not enclosed is matched. The sorting order
+ of characters in range expressions is determined by the current
+ locale and the value of the LLCC__CCOOLLLLAATTEE shell variable, if set.
+ A -- may be matched by including it as the first or last charac-
ter in the set. A ]] may be matched by including it as the first
character in the set.
- Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using the
- syntax [[::_c_l_a_s_s::]], where _c_l_a_s_s is one of the following classes
+ Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using the
+ syntax [[::_c_l_a_s_s::]], where _c_l_a_s_s is one of the following classes
defined in the POSIX standard:
- aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt ppuunncctt
+ aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt ppuunncctt
ssppaaccee uuppppeerr wwoorrdd xxddiiggiitt
A character class matches any character belonging to that class.
- The wwoorrdd character class matches letters, digits, and the char-
+ The wwoorrdd character class matches letters, digits, and the char-
acter _.
- Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified using the
- syntax [[==_c==]], which matches all characters with the same colla-
- tion weight (as defined by the current locale) as the character
+ Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified using the
+ syntax [[==_c==]], which matches all characters with the same colla-
+ tion weight (as defined by the current locale) as the character
_c.
Within [[ and ]], the syntax [[.._s_y_m_b_o_l..]] matches the collating sym-
bol _s_y_m_b_o_l.
If the eexxttgglloobb shell option is enabled using the sshhoopptt builtin, several
- extended pattern matching operators are recognized. In the following
+ extended pattern matching operators are recognized. In the following
description, a _p_a_t_t_e_r_n_-_l_i_s_t is a list of one or more patterns separated
by a ||. Composite patterns may be formed using one or more of the fol-
lowing sub-patterns:
@@ -1730,55 +1733,55 @@ EEXXPPAANNSSIIOONN
QQuuoottee RReemmoovvaall
After the preceding expansions, all unquoted occurrences of the charac-
- ters \\, '', and "" that did not result from one of the above expansions
+ ters \\, '', and "" that did not result from one of the above expansions
are removed.
RREEDDIIRREECCTTIIOONN
- Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d
- using a special notation interpreted by the shell. Redirection may
- also be used to open and close files for the current shell execution
+ Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d
+ using a special notation interpreted by the shell. Redirection may
+ also be used to open and close files for the current shell execution
environment. The following redirection operators may precede or appear
anywhere within a _s_i_m_p_l_e _c_o_m_m_a_n_d or may follow a _c_o_m_m_a_n_d. Redirections
are processed in the order they appear, from left to right.
- Each redirection that may be preceded by a file descriptor number may
+ Each redirection that may be preceded by a file descriptor number may
instead be preceded by a word of the form {_v_a_r_n_a_m_e}. In this case, for
each redirection operator except >&- and <&-, the shell will allocate a
- file descriptor greater than 10 and assign it to _v_a_r_n_a_m_e. If >&- or
- <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines the file
+ file descriptor greater than 10 and assign it to _v_a_r_n_a_m_e. If >&- or
+ <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines the file
descriptor to close.
- In the following descriptions, if the file descriptor number is omit-
- ted, and the first character of the redirection operator is <<, the re-
- direction refers to the standard input (file descriptor 0). If the
- first character of the redirection operator is >>, the redirection
+ In the following descriptions, if the file descriptor number is omit-
+ ted, and the first character of the redirection operator is <<, the re-
+ direction refers to the standard input (file descriptor 0). If the
+ first character of the redirection operator is >>, the redirection
refers to the standard output (file descriptor 1).
- The word following the redirection operator in the following descrip-
- tions, unless otherwise noted, is subjected to brace expansion, tilde
+ The word following the redirection operator in the following descrip-
+ tions, unless otherwise noted, is subjected to brace expansion, tilde
expansion, parameter expansion, command substitution, arithmetic expan-
- sion, quote removal, pathname expansion, and word splitting. If it
+ sion, quote removal, pathname expansion, and word splitting. If it
expands to more than one word, bbaasshh reports an error.
- Note that the order of redirections is significant. For example, the
+ Note that the order of redirections is significant. For example, the
command
ls >> dirlist 2>>&&1
- directs both standard output and standard error to the file _d_i_r_l_i_s_t,
+ directs both standard output and standard error to the file _d_i_r_l_i_s_t,
while the command
ls 2>>&&1 >> dirlist
- directs only the standard output to file _d_i_r_l_i_s_t, because the standard
- error was duplicated from the standard output before the standard out-
+ directs only the standard output to file _d_i_r_l_i_s_t, because the standard
+ error was duplicated from the standard output before the standard out-
put was redirected to _d_i_r_l_i_s_t.
BBaasshh handles several filenames specially when they are used in redirec-
tions, as described in the following table:
//ddeevv//ffdd//_f_d
- If _f_d is a valid integer, file descriptor _f_d is dupli-
+ If _f_d is a valid integer, file descriptor _f_d is dupli-
cated.
//ddeevv//ssttddiinn
File descriptor 0 is duplicated.
@@ -1788,22 +1791,22 @@ RREEDDIIRREECCTTIIOONN
File descriptor 2 is duplicated.
//ddeevv//ttccpp//_h_o_s_t//_p_o_r_t
If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t
- is an integer port number or service name, bbaasshh attempts
+ is an integer port number or service name, bbaasshh attempts
to open a TCP connection to the corresponding socket.
//ddeevv//uuddpp//_h_o_s_t//_p_o_r_t
If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t
- is an integer port number or service name, bbaasshh attempts
+ is an integer port number or service name, bbaasshh attempts
to open a UDP connection to the corresponding socket.
A failure to open or create a file causes the redirection to fail.
- Redirections using file descriptors greater than 9 should be used with
- care, as they may conflict with file descriptors the shell uses inter-
+ Redirections using file descriptors greater than 9 should be used with
+ care, as they may conflict with file descriptors the shell uses inter-
nally.
RReeddiirreeccttiinngg IInnppuutt
Redirection of input causes the file whose name results from the expan-
- sion of _w_o_r_d to be opened for reading on file descriptor _n, or the
+ sion of _w_o_r_d to be opened for reading on file descriptor _n, or the
standard input (file descriptor 0) if _n is not specified.
The general format for redirecting input is:
@@ -1811,27 +1814,27 @@ RREEDDIIRREECCTTIIOONN
[_n]<<_w_o_r_d
RReeddiirreeccttiinngg OOuuttppuutt
- Redirection of output causes the file whose name results from the
+ Redirection of output causes the file whose name results from the
expansion of _w_o_r_d to be opened for writing on file descriptor _n, or the
standard output (file descriptor 1) if _n is not specified. If the file
- does not exist it is created; if it does exist it is truncated to zero
+ does not exist it is created; if it does exist it is truncated to zero
size.
The general format for redirecting output is:
[_n]>>_w_o_r_d
- If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett
- builtin has been enabled, the redirection will fail if the file whose
- name results from the expansion of _w_o_r_d exists and is a regular file.
+ If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett
+ builtin has been enabled, the redirection will fail if the file whose
+ name results from the expansion of _w_o_r_d exists and is a regular file.
If the redirection operator is >>||, or the redirection operator is >> and
the nnoocclloobbbbeerr option to the sseett builtin command is not enabled, the re-
direction is attempted even if the file named by _w_o_r_d exists.
AAppppeennddiinngg RReeddiirreecctteedd OOuuttppuutt
- Redirection of output in this fashion causes the file whose name
- results from the expansion of _w_o_r_d to be opened for appending on file
- descriptor _n, or the standard output (file descriptor 1) if _n is not
+ Redirection of output in this fashion causes the file whose name
+ results from the expansion of _w_o_r_d to be opened for appending on file
+ descriptor _n, or the standard output (file descriptor 1) if _n is not
specified. If the file does not exist it is created.
The general format for appending output is:
@@ -1840,11 +1843,11 @@ RREEDDIIRREECCTTIIOONN
RReeddiirreeccttiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr
- This construct allows both the standard output (file descriptor 1) and
- the standard error output (file descriptor 2) to be redirected to the
+ This construct allows both the standard output (file descriptor 1) and
+ the standard error output (file descriptor 2) to be redirected to the
file whose name is the expansion of _w_o_r_d.
- There are two formats for redirecting standard output and standard
+ There are two formats for redirecting standard output and standard
error:
&&>>_w_o_r_d
@@ -1858,8 +1861,8 @@ RREEDDIIRREECCTTIIOONN
AAppppeennddiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr
- This construct allows both the standard output (file descriptor 1) and
- the standard error output (file descriptor 2) to be appended to the
+ This construct allows both the standard output (file descriptor 1) and
+ the standard error output (file descriptor 2) to be appended to the
file whose name is the expansion of _w_o_r_d.
The format for appending standard output and standard error is:
@@ -1871,9 +1874,9 @@ RREEDDIIRREECCTTIIOONN
>>>>_w_o_r_d 2>>&&1
HHeerree DDooccuummeennttss
- This type of redirection instructs the shell to read input from the
+ This type of redirection instructs the shell to read input from the
current source until a line containing only _d_e_l_i_m_i_t_e_r (with no trailing
- blanks) is seen. All of the lines read up to that point are then used
+ blanks) is seen. All of the lines read up to that point are then used
as the standard input for a command.
The format of here-documents is:
@@ -1882,18 +1885,18 @@ RREEDDIIRREECCTTIIOONN
_h_e_r_e_-_d_o_c_u_m_e_n_t
_d_e_l_i_m_i_t_e_r
- No parameter expansion, command substitution, arithmetic expansion, or
+ No parameter expansion, command substitution, arithmetic expansion, or
pathname expansion is performed on _w_o_r_d. If any characters in _w_o_r_d are
- quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal on _w_o_r_d, and the
- lines in the here-document are not expanded. If _w_o_r_d is unquoted, all
- lines of the here-document are subjected to parameter expansion, com-
- mand substitution, and arithmetic expansion. In the latter case, the
- character sequence \\<<nneewwlliinnee>> is ignored, and \\ must be used to quote
+ quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal on _w_o_r_d, and the
+ lines in the here-document are not expanded. If _w_o_r_d is unquoted, all
+ lines of the here-document are subjected to parameter expansion, com-
+ mand substitution, and arithmetic expansion. In the latter case, the
+ character sequence \\<<nneewwlliinnee>> is ignored, and \\ must be used to quote
the characters \\, $$, and ``.
If the redirection operator is <<<<--, then all leading tab characters are
- stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This
- allows here-documents within shell scripts to be indented in a natural
+ stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This
+ allows here-documents within shell scripts to be indented in a natural
fashion.
HHeerree SSttrriinnggss
@@ -1909,20 +1912,20 @@ RREEDDIIRREECCTTIIOONN
[_n]<<&&_w_o_r_d
is used to duplicate input file descriptors. If _w_o_r_d expands to one or
- more digits, the file descriptor denoted by _n is made to be a copy of
- that file descriptor. If the digits in _w_o_r_d do not specify a file
- descriptor open for input, a redirection error occurs. If _w_o_r_d evalu-
- ates to --, file descriptor _n is closed. If _n is not specified, the
+ more digits, the file descriptor denoted by _n is made to be a copy of
+ that file descriptor. If the digits in _w_o_r_d do not specify a file
+ descriptor open for input, a redirection error occurs. If _w_o_r_d evalu-
+ ates to --, file descriptor _n is closed. If _n is not specified, the
standard input (file descriptor 0) is used.
The operator
[_n]>>&&_w_o_r_d
- is used similarly to duplicate output file descriptors. If _n is not
- specified, the standard output (file descriptor 1) is used. If the
- digits in _w_o_r_d do not specify a file descriptor open for output, a re-
- direction error occurs. As a special case, if _n is omitted, and _w_o_r_d
+ is used similarly to duplicate output file descriptors. If _n is not
+ specified, the standard output (file descriptor 1) is used. If the
+ digits in _w_o_r_d do not specify a file descriptor open for output, a re-
+ direction error occurs. As a special case, if _n is omitted, and _w_o_r_d
does not expand to one or more digits, the standard output and standard
error are redirected as described previously.
@@ -1931,7 +1934,7 @@ RREEDDIIRREECCTTIIOONN
[_n]<<&&_d_i_g_i_t--
- moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
+ moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
input (file descriptor 0) if _n is not specified. _d_i_g_i_t is closed after
being duplicated to _n.
@@ -1939,7 +1942,7 @@ RREEDDIIRREECCTTIIOONN
[_n]>>&&_d_i_g_i_t--
- moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
+ moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
output (file descriptor 1) if _n is not specified.
OOppeenniinngg FFiillee DDeessccrriippttoorrss ffoorr RReeaaddiinngg aanndd WWrriittiinngg
@@ -1947,111 +1950,111 @@ RREEDDIIRREECCTTIIOONN
[_n]<<>>_w_o_r_d
- causes the file whose name is the expansion of _w_o_r_d to be opened for
- both reading and writing on file descriptor _n, or on file descriptor 0
+ causes the file whose name is the expansion of _w_o_r_d to be opened for
+ both reading and writing on file descriptor _n, or on file descriptor 0
if _n is not specified. If the file does not exist, it is created.
AALLIIAASSEESS
- _A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as
- the first word of a simple command. The shell maintains a list of
- aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin
- commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The first word of each
- simple command, if unquoted, is checked to see if it has an alias. If
- so, that word is replaced by the text of the alias. The characters //,
- $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters
+ _A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as
+ the first word of a simple command. The shell maintains a list of
+ aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin
+ commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The first word of each
+ simple command, if unquoted, is checked to see if it has an alias. If
+ so, that word is replaced by the text of the alias. The characters //,
+ $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters
listed above may not appear in an alias name. The replacement text may
- contain any valid shell input, including shell metacharacters. The
- first word of the replacement text is tested for aliases, but a word
- that is identical to an alias being expanded is not expanded a second
- time. This means that one may alias llss to llss --FF, for instance, and
- bbaasshh does not try to recursively expand the replacement text. If the
- last character of the alias value is a _b_l_a_n_k, then the next command
+ contain any valid shell input, including shell metacharacters. The
+ first word of the replacement text is tested for aliases, but a word
+ that is identical to an alias being expanded is not expanded a second
+ time. This means that one may alias llss to llss --FF, for instance, and
+ bbaasshh does not try to recursively expand the replacement text. If the
+ last character of the alias value is a _b_l_a_n_k, then the next command
word following the alias is also checked for alias expansion.
Aliases are created and listed with the aalliiaass command, and removed with
the uunnaalliiaass command.
- There is no mechanism for using arguments in the replacement text. If
- arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
+ There is no mechanism for using arguments in the replacement text. If
+ arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
below).
- Aliases are not expanded when the shell is not interactive, unless the
- eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
+ Aliases are not expanded when the shell is not interactive, unless the
+ eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- The rules concerning the definition and use of aliases are somewhat
- confusing. BBaasshh always reads at least one complete line of input
- before executing any of the commands on that line. Aliases are
- expanded when a command is read, not when it is executed. Therefore,
- an alias definition appearing on the same line as another command does
- not take effect until the next line of input is read. The commands
+ The rules concerning the definition and use of aliases are somewhat
+ confusing. BBaasshh always reads at least one complete line of input
+ before executing any of the commands on that line. Aliases are
+ expanded when a command is read, not when it is executed. Therefore,
+ an alias definition appearing on the same line as another command does
+ not take effect until the next line of input is read. The commands
following the alias definition on that line are not affected by the new
- alias. This behavior is also an issue when functions are executed.
- Aliases are expanded when a function definition is read, not when the
- function is executed, because a function definition is itself a com-
+ alias. This behavior is also an issue when functions are executed.
+ Aliases are expanded when a function definition is read, not when the
+ function is executed, because a function definition is itself a com-
pound command. As a consequence, aliases defined in a function are not
- available until after that function is executed. To be safe, always
- put alias definitions on a separate line, and do not use aalliiaass in com-
+ available until after that function is executed. To be safe, always
+ put alias definitions on a separate line, and do not use aalliiaass in com-
pound commands.
For almost every purpose, aliases are superseded by shell functions.
FFUUNNCCTTIIOONNSS
- A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
- stores a series of commands for later execution. When the name of a
- shell function is used as a simple command name, the list of commands
+ A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
+ stores a series of commands for later execution. When the name of a
+ shell function is used as a simple command name, the list of commands
associated with that function name is executed. Functions are executed
- in the context of the current shell; no new process is created to
- interpret them (contrast this with the execution of a shell script).
- When a function is executed, the arguments to the function become the
+ in the context of the current shell; no new process is created to
+ interpret them (contrast this with the execution of a shell script).
+ When a function is executed, the arguments to the function become the
positional parameters during its execution. The special parameter ## is
- updated to reflect the change. Special parameter 0 is unchanged. The
- first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
+ updated to reflect the change. Special parameter 0 is unchanged. The
+ first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
tion while the function is executing.
- All other aspects of the shell execution environment are identical
+ All other aspects of the shell execution environment are identical
between a function and its caller with these exceptions: the DDEEBBUUGG and
- RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
- given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
- below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
- builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
- traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
+ RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
+ given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
+ below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
+ builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
+ traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
option has been enabled.
- Variables local to the function may be declared with the llooccaall builtin
+ Variables local to the function may be declared with the llooccaall builtin
command. Ordinarily, variables and their values are shared between the
function and its caller.
- If the builtin command rreettuurrnn is executed in a function, the function
- completes and execution resumes with the next command after the func-
- tion call. Any command associated with the RREETTUURRNN trap is executed
+ If the builtin command rreettuurrnn is executed in a function, the function
+ completes and execution resumes with the next command after the func-
+ tion call. Any command associated with the RREETTUURRNN trap is executed
before execution resumes. When a function completes, the values of the
- positional parameters and the special parameter ## are restored to the
+ positional parameters and the special parameter ## are restored to the
values they had prior to the function's execution.
- Function names and definitions may be listed with the --ff option to the
+ Function names and definitions may be listed with the --ff option to the
ddeeccllaarree or ttyyppeesseett builtin commands. The --FF option to ddeeccllaarree or ttyyppee--
- sseett will list the function names only (and optionally the source file
- and line number, if the eexxttddeebbuugg shell option is enabled). Functions
- may be exported so that subshells automatically have them defined with
- the --ff option to the eexxppoorrtt builtin. A function definition may be
- deleted using the --ff option to the uunnsseett builtin. Note that shell
+ sseett will list the function names only (and optionally the source file
+ and line number, if the eexxttddeebbuugg shell option is enabled). Functions
+ may be exported so that subshells automatically have them defined with
+ the --ff option to the eexxppoorrtt builtin. A function definition may be
+ deleted using the --ff option to the uunnsseett builtin. Note that shell
functions and variables with the same name may result in multiple iden-
- tically-named entries in the environment passed to the shell's chil-
+ tically-named entries in the environment passed to the shell's chil-
dren. Care should be taken in cases where this may cause a problem.
- Functions may be recursive. No limit is imposed on the number of
+ Functions may be recursive. No limit is imposed on the number of
recursive calls.
AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
- The shell allows arithmetic expressions to be evaluated, under certain
- circumstances (see the lleett and ddeeccllaarree builtin commands and AArriitthhmmeettiicc
- EExxppaannssiioonn). Evaluation is done in fixed-width integers with no check
- for overflow, though division by 0 is trapped and flagged as an error.
- The operators and their precedence, associativity, and values are the
- same as in the C language. The following list of operators is grouped
- into levels of equal-precedence operators. The levels are listed in
+ The shell allows arithmetic expressions to be evaluated, under certain
+ circumstances (see the lleett and ddeeccllaarree builtin commands and AArriitthhmmeettiicc
+ EExxppaannssiioonn). Evaluation is done in fixed-width integers with no check
+ for overflow, though division by 0 is trapped and flagged as an error.
+ The operators and their precedence, associativity, and values are the
+ same as in the C language. The following list of operators is grouped
+ into levels of equal-precedence operators. The levels are listed in
order of decreasing precedence.
_i_d++++ _i_d----
@@ -2079,39 +2082,39 @@ AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
_e_x_p_r_1 ,, _e_x_p_r_2
comma
- Shell variables are allowed as operands; parameter expansion is per-
+ Shell variables are allowed as operands; parameter expansion is per-
formed before the expression is evaluated. Within an expression, shell
- variables may also be referenced by name without using the parameter
- expansion syntax. A shell variable that is null or unset evaluates to
+ variables may also be referenced by name without using the parameter
+ expansion syntax. A shell variable that is null or unset evaluates to
0 when referenced by name without using the parameter expansion syntax.
- The value of a variable is evaluated as an arithmetic expression when
- it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r
+ The value of a variable is evaluated as an arithmetic expression when
+ it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r
attribute using ddeeccllaarree --ii is assigned a value. A null value evaluates
- to 0. A shell variable need not have its integer attribute turned on
+ to 0. A shell variable need not have its integer attribute turned on
to be used in an expression.
Constants with a leading 0 are interpreted as octal numbers. A leading
- 0x or 0X denotes hexadecimal. Otherwise, numbers take the form
- [_b_a_s_e_#]n, where _b_a_s_e is a decimal number between 2 and 64 representing
+ 0x or 0X denotes hexadecimal. Otherwise, numbers take the form
+ [_b_a_s_e_#]n, where _b_a_s_e is a decimal number between 2 and 64 representing
the arithmetic base, and _n is a number in that base. If _b_a_s_e_# is omit-
- ted, then base 10 is used. The digits greater than 9 are represented
- by the lowercase letters, the uppercase letters, @, and _, in that
- order. If _b_a_s_e is less than or equal to 36, lowercase and uppercase
+ ted, then base 10 is used. The digits greater than 9 are represented
+ by the lowercase letters, the uppercase letters, @, and _, in that
+ order. If _b_a_s_e is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10 and
35.
- Operators are evaluated in order of precedence. Sub-expressions in
- parentheses are evaluated first and may override the precedence rules
+ Operators are evaluated in order of precedence. Sub-expressions in
+ parentheses are evaluated first and may override the precedence rules
above.
CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
- Conditional expressions are used by the [[[[ compound command and the
- tteesstt and [[ builtin commands to test file attributes and perform string
- and arithmetic comparisons. Expressions are formed from the following
- unary or binary primaries. If any _f_i_l_e argument to one of the pri-
+ Conditional expressions are used by the [[[[ compound command and the
+ tteesstt and [[ builtin commands to test file attributes and perform string
+ and arithmetic comparisons. Expressions are formed from the following
+ unary or binary primaries. If any _f_i_l_e argument to one of the pri-
maries is of the form _/_d_e_v_/_f_d_/_n, then file descriptor _n is checked. If
- the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n,
- _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively,
+ the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n,
+ _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively,
is checked.
Unless otherwise specified, primaries that operate on files follow sym-
@@ -2158,20 +2161,20 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
--SS _f_i_l_e
True if _f_i_l_e exists and is a socket.
--NN _f_i_l_e
- True if _f_i_l_e exists and has been modified since it was last
+ True if _f_i_l_e exists and has been modified since it was last
read.
_f_i_l_e_1 -nntt _f_i_l_e_2
- True if _f_i_l_e_1 is newer (according to modification date) than
+ True if _f_i_l_e_1 is newer (according to modification date) than
_f_i_l_e_2, or if _f_i_l_e_1 exists and _f_i_l_e_2 does not.
_f_i_l_e_1 -oott _f_i_l_e_2
- True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1
+ True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1
does not.
_f_i_l_e_1 --eeff _f_i_l_e_2
- True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num-
+ True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num-
bers.
--oo _o_p_t_n_a_m_e
- True if shell option _o_p_t_n_a_m_e is enabled. See the list of
- options under the description of the --oo option to the sseett
+ True if shell option _o_p_t_n_a_m_e is enabled. See the list of
+ options under the description of the --oo option to the sseett
builtin below.
--zz _s_t_r_i_n_g
True if the length of _s_t_r_i_n_g is zero.
@@ -2193,107 +2196,107 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
True if _s_t_r_i_n_g_1 sorts after _s_t_r_i_n_g_2 lexicographically.
_a_r_g_1 OOPP _a_r_g_2
- OOPP is one of --eeqq, --nnee, --lltt, --llee, --ggtt, or --ggee. These arithmetic
- binary operators return true if _a_r_g_1 is equal to, not equal to,
- less than, less than or equal to, greater than, or greater than
- or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive
+ OOPP is one of --eeqq, --nnee, --lltt, --llee, --ggtt, or --ggee. These arithmetic
+ binary operators return true if _a_r_g_1 is equal to, not equal to,
+ less than, less than or equal to, greater than, or greater than
+ or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive
or negative integers.
SSIIMMPPLLEE CCOOMMMMAANNDD EEXXPPAANNSSIIOONN
- When a simple command is executed, the shell performs the following
+ When a simple command is executed, the shell performs the following
expansions, assignments, and redirections, from left to right.
- 1. The words that the parser has marked as variable assignments
- (those preceding the command name) and redirections are saved
+ 1. The words that the parser has marked as variable assignments
+ (those preceding the command name) and redirections are saved
for later processing.
- 2. The words that are not variable assignments or redirections are
- expanded. If any words remain after expansion, the first word
- is taken to be the name of the command and the remaining words
+ 2. The words that are not variable assignments or redirections are
+ expanded. If any words remain after expansion, the first word
+ is taken to be the name of the command and the remaining words
are the arguments.
3. Redirections are performed as described above under RREEDDIIRREECCTTIIOONN.
4. The text after the == in each variable assignment undergoes tilde
expansion, parameter expansion, command substitution, arithmetic
- expansion, and quote removal before being assigned to the vari-
+ expansion, and quote removal before being assigned to the vari-
able.
If no command name results, the variable assignments affect the current
- shell environment. Otherwise, the variables are added to the environ-
- ment of the executed command and do not affect the current shell envi-
- ronment. If any of the assignments attempts to assign a value to a
- readonly variable, an error occurs, and the command exits with a non-
+ shell environment. Otherwise, the variables are added to the environ-
+ ment of the executed command and do not affect the current shell envi-
+ ronment. If any of the assignments attempts to assign a value to a
+ readonly variable, an error occurs, and the command exits with a non-
zero status.
- If no command name results, redirections are performed, but do not
- affect the current shell environment. A redirection error causes the
+ If no command name results, redirections are performed, but do not
+ affect the current shell environment. A redirection error causes the
command to exit with a non-zero status.
- If there is a command name left after expansion, execution proceeds as
- described below. Otherwise, the command exits. If one of the expan-
- sions contained a command substitution, the exit status of the command
- is the exit status of the last command substitution performed. If
+ If there is a command name left after expansion, execution proceeds as
+ described below. Otherwise, the command exits. If one of the expan-
+ sions contained a command substitution, the exit status of the command
+ is the exit status of the last command substitution performed. If
there were no command substitutions, the command exits with a status of
zero.
CCOOMMMMAANNDD EEXXEECCUUTTIIOONN
- After a command has been split into words, if it results in a simple
- command and an optional list of arguments, the following actions are
+ After a command has been split into words, if it results in a simple
+ command and an optional list of arguments, the following actions are
taken.
- If the command name contains no slashes, the shell attempts to locate
- it. If there exists a shell function by that name, that function is
- invoked as described above in FFUUNNCCTTIIOONNSS. If the name does not match a
- function, the shell searches for it in the list of shell builtins. If
+ If the command name contains no slashes, the shell attempts to locate
+ it. If there exists a shell function by that name, that function is
+ invoked as described above in FFUUNNCCTTIIOONNSS. If the name does not match a
+ function, the shell searches for it in the list of shell builtins. If
a match is found, that builtin is invoked.
- If the name is neither a shell function nor a builtin, and contains no
- slashes, bbaasshh searches each element of the PPAATTHH for a directory con-
- taining an executable file by that name. BBaasshh uses a hash table to
- remember the full pathnames of executable files (see hhaasshh under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A full search of the directories in PPAATTHH is
- performed only if the command is not found in the hash table. If the
+ If the name is neither a shell function nor a builtin, and contains no
+ slashes, bbaasshh searches each element of the PPAATTHH for a directory con-
+ taining an executable file by that name. BBaasshh uses a hash table to
+ remember the full pathnames of executable files (see hhaasshh under SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A full search of the directories in PPAATTHH is
+ performed only if the command is not found in the hash table. If the
search is unsuccessful, the shell searches for a defined shell function
named ccoommmmaanndd__nnoott__ffoouunndd__hhaannddllee. If that function exists, it is invoked
- with the original command and the original command's arguments as its
- arguments, and the function's exit status becomes the exit status of
- the shell. If that function is not defined, the shell prints an error
+ with the original command and the original command's arguments as its
+ arguments, and the function's exit status becomes the exit status of
+ the shell. If that function is not defined, the shell prints an error
message and returns an exit status of 127.
- If the search is successful, or if the command name contains one or
+ If the search is successful, or if the command name contains one or
more slashes, the shell executes the named program in a separate execu-
tion environment. Argument 0 is set to the name given, and the remain-
ing arguments to the command are set to the arguments given, if any.
- If this execution fails because the file is not in executable format,
- and the file is not a directory, it is assumed to be a _s_h_e_l_l _s_c_r_i_p_t, a
- file containing shell commands. A subshell is spawned to execute it.
- This subshell reinitializes itself, so that the effect is as if a new
- shell had been invoked to handle the script, with the exception that
- the locations of commands remembered by the parent (see hhaasshh below
+ If this execution fails because the file is not in executable format,
+ and the file is not a directory, it is assumed to be a _s_h_e_l_l _s_c_r_i_p_t, a
+ file containing shell commands. A subshell is spawned to execute it.
+ This subshell reinitializes itself, so that the effect is as if a new
+ shell had been invoked to handle the script, with the exception that
+ the locations of commands remembered by the parent (see hhaasshh below
under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS) are retained by the child.
- If the program is a file beginning with ##!!, the remainder of the first
- line specifies an interpreter for the program. The shell executes the
+ If the program is a file beginning with ##!!, the remainder of the first
+ line specifies an interpreter for the program. The shell executes the
specified interpreter on operating systems that do not handle this exe-
cutable format themselves. The arguments to the interpreter consist of
- a single optional argument following the interpreter name on the first
- line of the program, followed by the name of the program, followed by
+ a single optional argument following the interpreter name on the first
+ line of the program, followed by the name of the program, followed by
the command arguments, if any.
CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
- The shell has an _e_x_e_c_u_t_i_o_n _e_n_v_i_r_o_n_m_e_n_t, which consists of the follow-
+ The shell has an _e_x_e_c_u_t_i_o_n _e_n_v_i_r_o_n_m_e_n_t, which consists of the follow-
ing:
- +o open files inherited by the shell at invocation, as modified by
+ +o open files inherited by the shell at invocation, as modified by
redirections supplied to the eexxeecc builtin
- +o the current working directory as set by ccdd, ppuusshhdd, or ppooppdd, or
+ +o the current working directory as set by ccdd, ppuusshhdd, or ppooppdd, or
inherited by the shell at invocation
- +o the file creation mode mask as set by uummaasskk or inherited from
+ +o the file creation mode mask as set by uummaasskk or inherited from
the shell's parent
+o current traps set by ttrraapp
@@ -2301,242 +2304,242 @@ CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENN
+o shell parameters that are set by variable assignment or with sseett
or inherited from the shell's parent in the environment
- +o shell functions defined during execution or inherited from the
+ +o shell functions defined during execution or inherited from the
shell's parent in the environment
- +o options enabled at invocation (either by default or with com-
+ +o options enabled at invocation (either by default or with com-
mand-line arguments) or by sseett
+o options enabled by sshhoopptt
+o shell aliases defined with aalliiaass
- +o various process IDs, including those of background jobs, the
+ +o various process IDs, including those of background jobs, the
value of $$$$, and the value of $$PPPPIIDD
- When a simple command other than a builtin or shell function is to be
- executed, it is invoked in a separate execution environment that con-
- sists of the following. Unless otherwise noted, the values are inher-
+ When a simple command other than a builtin or shell function is to be
+ executed, it is invoked in a separate execution environment that con-
+ sists of the following. Unless otherwise noted, the values are inher-
ited from the shell.
- +o the shell's open files, plus any modifications and additions
+ +o the shell's open files, plus any modifications and additions
specified by redirections to the command
+o the current working directory
+o the file creation mode mask
- +o shell variables and functions marked for export, along with
+ +o shell variables and functions marked for export, along with
variables exported for the command, passed in the environment
+o traps caught by the shell are reset to the values inherited from
the shell's parent, and traps ignored by the shell are ignored
- A command invoked in this separate environment cannot affect the
+ A command invoked in this separate environment cannot affect the
shell's execution environment.
- Command substitution, commands grouped with parentheses, and asynchro-
+ Command substitution, commands grouped with parentheses, and asynchro-
nous commands are invoked in a subshell environment that is a duplicate
- of the shell environment, except that traps caught by the shell are
+ of the shell environment, except that traps caught by the shell are
reset to the values that the shell inherited from its parent at invoca-
tion. Builtin commands that are invoked as part of a pipeline are also
executed in a subshell environment. Changes made to the subshell envi-
ronment cannot affect the shell's execution environment.
Subshells spawned to execute command substitutions inherit the value of
- the --ee option from the parent shell. When not in posix mode, Bash
+ the --ee option from the parent shell. When not in posix mode, Bash
clears the --ee option in such subshells.
- If a command is followed by a && and job control is not active, the
- default standard input for the command is the empty file _/_d_e_v_/_n_u_l_l.
- Otherwise, the invoked command inherits the file descriptors of the
+ If a command is followed by a && and job control is not active, the
+ default standard input for the command is the empty file _/_d_e_v_/_n_u_l_l.
+ Otherwise, the invoked command inherits the file descriptors of the
calling shell as modified by redirections.
EENNVVIIRROONNMMEENNTT
- When a program is invoked it is given an array of strings called the
+ When a program is invoked it is given an array of strings called the
_e_n_v_i_r_o_n_m_e_n_t. This is a list of _n_a_m_e-_v_a_l_u_e pairs, of the form
_n_a_m_e=_v_a_l_u_e.
- The shell provides several ways to manipulate the environment. On
+ The shell provides several ways to manipulate the environment. On
invocation, the shell scans its own environment and creates a parameter
- for each name found, automatically marking it for _e_x_p_o_r_t to child pro-
- cesses. Executed commands inherit the environment. The eexxppoorrtt and
- ddeeccllaarree --xx commands allow parameters and functions to be added to and
+ for each name found, automatically marking it for _e_x_p_o_r_t to child pro-
+ cesses. Executed commands inherit the environment. The eexxppoorrtt and
+ ddeeccllaarree --xx commands allow parameters and functions to be added to and
deleted from the environment. If the value of a parameter in the envi-
- ronment is modified, the new value becomes part of the environment,
- replacing the old. The environment inherited by any executed command
- consists of the shell's initial environment, whose values may be modi-
- fied in the shell, less any pairs removed by the uunnsseett command, plus
+ ronment is modified, the new value becomes part of the environment,
+ replacing the old. The environment inherited by any executed command
+ consists of the shell's initial environment, whose values may be modi-
+ fied in the shell, less any pairs removed by the uunnsseett command, plus
any additions via the eexxppoorrtt and ddeeccllaarree --xx commands.
- The environment for any _s_i_m_p_l_e _c_o_m_m_a_n_d or function may be augmented
- temporarily by prefixing it with parameter assignments, as described
+ The environment for any _s_i_m_p_l_e _c_o_m_m_a_n_d or function may be augmented
+ temporarily by prefixing it with parameter assignments, as described
above in PPAARRAAMMEETTEERRSS. These assignment statements affect only the envi-
ronment seen by that command.
- If the --kk option is set (see the sseett builtin command below), then _a_l_l
- parameter assignments are placed in the environment for a command, not
+ If the --kk option is set (see the sseett builtin command below), then _a_l_l
+ parameter assignments are placed in the environment for a command, not
just those that precede the command name.
- When bbaasshh invokes an external command, the variable __ is set to the
- full file name of the command and passed to that command in its envi-
+ When bbaasshh invokes an external command, the variable __ is set to the
+ full file name of the command and passed to that command in its envi-
ronment.
EEXXIITT SSTTAATTUUSS
- The exit status of an executed command is the value returned by the
+ The exit status of an executed command is the value returned by the
_w_a_i_t_p_i_d system call or equivalent function. Exit statuses fall between
- 0 and 255, though, as explained below, the shell may use values above
+ 0 and 255, though, as explained below, the shell may use values above
125 specially. Exit statuses from shell builtins and compound commands
- are also limited to this range. Under certain circumstances, the shell
+ are also limited to this range. Under certain circumstances, the shell
will use special values to indicate specific failure modes.
For the shell's purposes, a command which exits with a zero exit status
- has succeeded. An exit status of zero indicates success. A non-zero
- exit status indicates failure. When a command terminates on a fatal
+ has succeeded. An exit status of zero indicates success. A non-zero
+ exit status indicates failure. When a command terminates on a fatal
signal _N, bbaasshh uses the value of 128+_N as the exit status.
- If a command is not found, the child process created to execute it
- returns a status of 127. If a command is found but is not executable,
+ If a command is not found, the child process created to execute it
+ returns a status of 127. If a command is found but is not executable,
the return status is 126.
If a command fails because of an error during expansion or redirection,
the exit status is greater than zero.
- Shell builtin commands return a status of 0 (_t_r_u_e) if successful, and
- non-zero (_f_a_l_s_e) if an error occurs while they execute. All builtins
+ Shell builtin commands return a status of 0 (_t_r_u_e) if successful, and
+ non-zero (_f_a_l_s_e) if an error occurs while they execute. All builtins
return an exit status of 2 to indicate incorrect usage.
- BBaasshh itself returns the exit status of the last command executed,
- unless a syntax error occurs, in which case it exits with a non-zero
+ BBaasshh itself returns the exit status of the last command executed,
+ unless a syntax error occurs, in which case it exits with a non-zero
value. See also the eexxiitt builtin command below.
SSIIGGNNAALLSS
- When bbaasshh is interactive, in the absence of any traps, it ignores
+ When bbaasshh is interactive, in the absence of any traps, it ignores
SSIIGGTTEERRMM (so that kkiillll 00 does not kill an interactive shell), and SSIIGGIINNTT
- is caught and handled (so that the wwaaiitt builtin is interruptible). In
- all cases, bbaasshh ignores SSIIGGQQUUIITT. If job control is in effect, bbaasshh
+ is caught and handled (so that the wwaaiitt builtin is interruptible). In
+ all cases, bbaasshh ignores SSIIGGQQUUIITT. If job control is in effect, bbaasshh
ignores SSIIGGTTTTIINN, SSIIGGTTTTOOUU, and SSIIGGTTSSTTPP.
Non-builtin commands run by bbaasshh have signal handlers set to the values
- inherited by the shell from its parent. When job control is not in
- effect, asynchronous commands ignore SSIIGGIINNTT and SSIIGGQQUUIITT in addition to
- these inherited handlers. Commands run as a result of command substi-
+ inherited by the shell from its parent. When job control is not in
+ effect, asynchronous commands ignore SSIIGGIINNTT and SSIIGGQQUUIITT in addition to
+ these inherited handlers. Commands run as a result of command substi-
tution ignore the keyboard-generated job control signals SSIIGGTTTTIINN, SSIIGGTT--
TTOOUU, and SSIIGGTTSSTTPP.
- The shell exits by default upon receipt of a SSIIGGHHUUPP. Before exiting,
- an interactive shell resends the SSIIGGHHUUPP to all jobs, running or
+ The shell exits by default upon receipt of a SSIIGGHHUUPP. Before exiting,
+ an interactive shell resends the SSIIGGHHUUPP to all jobs, running or
stopped. Stopped jobs are sent SSIIGGCCOONNTT to ensure that they receive the
- SSIIGGHHUUPP. To prevent the shell from sending the signal to a particular
- job, it should be removed from the jobs table with the ddiissoowwnn builtin
- (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) or marked to not receive SSIIGGHHUUPP
+ SSIIGGHHUUPP. To prevent the shell from sending the signal to a particular
+ job, it should be removed from the jobs table with the ddiissoowwnn builtin
+ (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) or marked to not receive SSIIGGHHUUPP
using ddiissoowwnn --hh.
- If the hhuuppoonneexxiitt shell option has been set with sshhoopptt, bbaasshh sends a
+ If the hhuuppoonneexxiitt shell option has been set with sshhoopptt, bbaasshh sends a
SSIIGGHHUUPP to all jobs when an interactive login shell exits.
- If bbaasshh is waiting for a command to complete and receives a signal for
+ If bbaasshh is waiting for a command to complete and receives a signal for
which a trap has been set, the trap will not be executed until the com-
- mand completes. When bbaasshh is waiting for an asynchronous command via
- the wwaaiitt builtin, the reception of a signal for which a trap has been
+ mand completes. When bbaasshh is waiting for an asynchronous command via
+ the wwaaiitt builtin, the reception of a signal for which a trap has been
set will cause the wwaaiitt builtin to return immediately with an exit sta-
tus greater than 128, immediately after which the trap is executed.
JJOOBB CCOONNTTRROOLL
- _J_o_b _c_o_n_t_r_o_l refers to the ability to selectively stop (_s_u_s_p_e_n_d) the
+ _J_o_b _c_o_n_t_r_o_l refers to the ability to selectively stop (_s_u_s_p_e_n_d) the
execution of processes and continue (_r_e_s_u_m_e) their execution at a later
- point. A user typically employs this facility via an interactive
- interface supplied jointly by the operating system kernel's terminal
+ point. A user typically employs this facility via an interactive
+ interface supplied jointly by the operating system kernel's terminal
driver and bbaasshh.
- The shell associates a _j_o_b with each pipeline. It keeps a table of
- currently executing jobs, which may be listed with the jjoobbss command.
- When bbaasshh starts a job asynchronously (in the _b_a_c_k_g_r_o_u_n_d), it prints a
+ The shell associates a _j_o_b with each pipeline. It keeps a table of
+ currently executing jobs, which may be listed with the jjoobbss command.
+ When bbaasshh starts a job asynchronously (in the _b_a_c_k_g_r_o_u_n_d), it prints a
line that looks like:
[1] 25647
indicating that this job is job number 1 and that the process ID of the
last process in the pipeline associated with this job is 25647. All of
- the processes in a single pipeline are members of the same job. BBaasshh
+ the processes in a single pipeline are members of the same job. BBaasshh
uses the _j_o_b abstraction as the basis for job control.
- To facilitate the implementation of the user interface to job control,
+ To facilitate the implementation of the user interface to job control,
the operating system maintains the notion of a _c_u_r_r_e_n_t _t_e_r_m_i_n_a_l _p_r_o_c_e_s_s
_g_r_o_u_p _I_D. Members of this process group (processes whose process group
ID is equal to the current terminal process group ID) receive keyboard-
- generated signals such as SSIIGGIINNTT. These processes are said to be in
- the _f_o_r_e_g_r_o_u_n_d. _B_a_c_k_g_r_o_u_n_d processes are those whose process group ID
+ generated signals such as SSIIGGIINNTT. These processes are said to be in
+ the _f_o_r_e_g_r_o_u_n_d. _B_a_c_k_g_r_o_u_n_d processes are those whose process group ID
differs from the terminal's; such processes are immune to keyboard-gen-
erated signals. Only foreground processes are allowed to read from or,
- if the user so specifies with stty tostop, write to the terminal.
- Background processes which attempt to read from (write to when stty
- tostop is in effect) the terminal are sent a SSIIGGTTTTIINN ((SSIIGGTTTTOOUU)) signal
- by the kernel's terminal driver, which, unless caught, suspends the
+ if the user so specifies with stty tostop, write to the terminal.
+ Background processes which attempt to read from (write to when stty
+ tostop is in effect) the terminal are sent a SSIIGGTTTTIINN ((SSIIGGTTTTOOUU)) signal
+ by the kernel's terminal driver, which, unless caught, suspends the
process.
- If the operating system on which bbaasshh is running supports job control,
+ If the operating system on which bbaasshh is running supports job control,
bbaasshh contains facilities to use it. Typing the _s_u_s_p_e_n_d character (typ-
ically ^^ZZ, Control-Z) while a process is running causes that process to
- be stopped and returns control to bbaasshh. Typing the _d_e_l_a_y_e_d _s_u_s_p_e_n_d
- character (typically ^^YY, Control-Y) causes the process to be stopped
- when it attempts to read input from the terminal, and control to be
- returned to bbaasshh. The user may then manipulate the state of this job,
- using the bbgg command to continue it in the background, the ffgg command
+ be stopped and returns control to bbaasshh. Typing the _d_e_l_a_y_e_d _s_u_s_p_e_n_d
+ character (typically ^^YY, Control-Y) causes the process to be stopped
+ when it attempts to read input from the terminal, and control to be
+ returned to bbaasshh. The user may then manipulate the state of this job,
+ using the bbgg command to continue it in the background, the ffgg command
to continue it in the foreground, or the kkiillll command to kill it. A ^^ZZ
takes effect immediately, and has the additional side effect of causing
pending output and typeahead to be discarded.
There are a number of ways to refer to a job in the shell. The charac-
- ter %% introduces a job specification (_j_o_b_s_p_e_c). Job number _n may be
+ ter %% introduces a job specification (_j_o_b_s_p_e_c). Job number _n may be
referred to as %%nn. A job may also be referred to using a prefix of the
name used to start it, or using a substring that appears in its command
- line. For example, %%ccee refers to a stopped ccee job. If a prefix
- matches more than one job, bbaasshh reports an error. Using %%??ccee, on the
- other hand, refers to any job containing the string ccee in its command
- line. If the substring matches more than one job, bbaasshh reports an
- error. The symbols %%%% and %%++ refer to the shell's notion of the _c_u_r_-
- _r_e_n_t _j_o_b, which is the last job stopped while it was in the foreground
+ line. For example, %%ccee refers to a stopped ccee job. If a prefix
+ matches more than one job, bbaasshh reports an error. Using %%??ccee, on the
+ other hand, refers to any job containing the string ccee in its command
+ line. If the substring matches more than one job, bbaasshh reports an
+ error. The symbols %%%% and %%++ refer to the shell's notion of the _c_u_r_-
+ _r_e_n_t _j_o_b, which is the last job stopped while it was in the foreground
or started in the background. The _p_r_e_v_i_o_u_s _j_o_b may be referenced using
%%--. If there is only a single job, %%++ and %%-- can both be used to refer
- to that job. In output pertaining to jobs (e.g., the output of the
+ to that job. In output pertaining to jobs (e.g., the output of the
jjoobbss command), the current job is always flagged with a ++, and the pre-
- vious job with a --. A single % (with no accompanying job specifica-
+ vious job with a --. A single % (with no accompanying job specifica-
tion) also refers to the current job.
- Simply naming a job can be used to bring it into the foreground: %%11 is
- a synonym for ````ffgg %%11'''', bringing job 1 from the background into the
- foreground. Similarly, ````%%11 &&'''' resumes job 1 in the background,
+ Simply naming a job can be used to bring it into the foreground: %%11 is
+ a synonym for ````ffgg %%11'''', bringing job 1 from the background into the
+ foreground. Similarly, ````%%11 &&'''' resumes job 1 in the background,
equivalent to ````bbgg %%11''''.
- The shell learns immediately whenever a job changes state. Normally,
+ The shell learns immediately whenever a job changes state. Normally,
bbaasshh waits until it is about to print a prompt before reporting changes
- in a job's status so as to not interrupt any other output. If the --bb
+ in a job's status so as to not interrupt any other output. If the --bb
option to the sseett builtin command is enabled, bbaasshh reports such changes
- immediately. Any trap on SSIIGGCCHHLLDD is executed for each child that
+ immediately. Any trap on SSIIGGCCHHLLDD is executed for each child that
exits.
- If an attempt to exit bbaasshh is made while jobs are stopped (or, if the
- cchheecckkjjoobbss shell option has been enabled using the sshhoopptt builtin, run-
+ If an attempt to exit bbaasshh is made while jobs are stopped (or, if the
+ cchheecckkjjoobbss shell option has been enabled using the sshhoopptt builtin, run-
ning), the shell prints a warning message, and, if the cchheecckkjjoobbss option
- is enabled, lists the jobs and their statuses. The jjoobbss command may
- then be used to inspect their status. If a second attempt to exit is
- made without an intervening command, the shell does not print another
+ is enabled, lists the jobs and their statuses. The jjoobbss command may
+ then be used to inspect their status. If a second attempt to exit is
+ made without an intervening command, the shell does not print another
warning, and any stopped jobs are terminated.
PPRROOMMPPTTIINNGG
When executing interactively, bbaasshh displays the primary prompt PPSS11 when
- it is ready to read a command, and the secondary prompt PPSS22 when it
- needs more input to complete a command. BBaasshh allows these prompt
- strings to be customized by inserting a number of backslash-escaped
+ it is ready to read a command, and the secondary prompt PPSS22 when it
+ needs more input to complete a command. BBaasshh allows these prompt
+ strings to be customized by inserting a number of backslash-escaped
special characters that are decoded as follows:
\\aa an ASCII bell character (07)
- \\dd the date in "Weekday Month Date" format (e.g., "Tue May
+ \\dd the date in "Weekday Month Date" format (e.g., "Tue May
26")
\\DD{{_f_o_r_m_a_t}}
- the _f_o_r_m_a_t is passed to _s_t_r_f_t_i_m_e(3) and the result is
- inserted into the prompt string; an empty _f_o_r_m_a_t results
+ the _f_o_r_m_a_t is passed to _s_t_r_f_t_i_m_e(3) and the result is
+ inserted into the prompt string; an empty _f_o_r_m_a_t results
in a locale-specific time representation. The braces are
required
\\ee an ASCII escape character (033)
@@ -2546,7 +2549,7 @@ PPRROOMMPPTTIINNGG
\\ll the basename of the shell's terminal device name
\\nn newline
\\rr carriage return
- \\ss the name of the shell, the basename of $$00 (the portion
+ \\ss the name of the shell, the basename of $$00 (the portion
following the final slash)
\\tt the current time in 24-hour HH:MM:SS format
\\TT the current time in 12-hour HH:MM:SS format
@@ -2555,7 +2558,7 @@ PPRROOMMPPTTIINNGG
\\uu the username of the current user
\\vv the version of bbaasshh (e.g., 2.00)
\\VV the release of bbaasshh, version + patch level (e.g., 2.00.0)
- \\ww the current working directory, with $$HHOOMMEE abbreviated
+ \\ww the current working directory, with $$HHOOMMEE abbreviated
with a tilde (uses the $$PPRROOMMPPTT__DDIIRRTTRRIIMM variable)
\\WW the basename of the current working directory, with $$HHOOMMEE
abbreviated with a tilde
@@ -2564,66 +2567,66 @@ PPRROOMMPPTTIINNGG
\\$$ if the effective UID is 0, a ##, otherwise a $$
\\_n_n_n the character corresponding to the octal number _n_n_n
\\\\ a backslash
- \\[[ begin a sequence of non-printing characters, which could
- be used to embed a terminal control sequence into the
+ \\[[ begin a sequence of non-printing characters, which could
+ be used to embed a terminal control sequence into the
prompt
\\]] end a sequence of non-printing characters
- The command number and the history number are usually different: the
- history number of a command is its position in the history list, which
- may include commands restored from the history file (see HHIISSTTOORRYY
- below), while the command number is the position in the sequence of
- commands executed during the current shell session. After the string
- is decoded, it is expanded via parameter expansion, command substitu-
- tion, arithmetic expansion, and quote removal, subject to the value of
- the pprroommppttvvaarrss shell option (see the description of the sshhoopptt command
+ The command number and the history number are usually different: the
+ history number of a command is its position in the history list, which
+ may include commands restored from the history file (see HHIISSTTOORRYY
+ below), while the command number is the position in the sequence of
+ commands executed during the current shell session. After the string
+ is decoded, it is expanded via parameter expansion, command substitu-
+ tion, arithmetic expansion, and quote removal, subject to the value of
+ the pprroommppttvvaarrss shell option (see the description of the sshhoopptt command
under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
RREEAADDLLIINNEE
- This is the library that handles reading input when using an interac-
+ This is the library that handles reading input when using an interac-
tive shell, unless the ----nnooeeddiittiinngg option is given at shell invocation.
Line editing is also used when using the --ee option to the rreeaadd builtin.
By default, the line editing commands are similar to those of emacs. A
vi-style line editing interface is also available. Line editing can be
- enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett
- builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing
- after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the
+ enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett
+ builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing
+ after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the
sseett builtin.
RReeaaddlliinnee NNoottaattiioonn
In this section, the emacs-style notation is used to denote keystrokes.
- Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi-
- larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key-
- boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key
+ Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi-
+ larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key-
+ boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key
then the _x key. This makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x
- means ESC-Control-_x, or press the Escape key then hold the Control key
+ means ESC-Control-_x, or press the Escape key then hold the Control key
while pressing the _x key.)
Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which normally act as
- a repeat count. Sometimes, however, it is the sign of the argument
- that is significant. Passing a negative argument to a command that
- acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
- act in a backward direction. Commands whose behavior with arguments
+ a repeat count. Sometimes, however, it is the sign of the argument
+ that is significant. Passing a negative argument to a command that
+ acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
+ act in a backward direction. Commands whose behavior with arguments
deviates from this are noted below.
- When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
+ When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a
_k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one
unit, which can be yanked all at once. Commands which do not kill text
separate the chunks of text on the kill ring.
RReeaaddlliinnee IInniittiiaalliizzaattiioonn
- Readline is customized by putting commands in an initialization file
- (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
- the IINNPPUUTTRRCC variable. If that variable is unset, the default is
- _~_/_._i_n_p_u_t_r_c. When a program which uses the readline library starts up,
+ Readline is customized by putting commands in an initialization file
+ (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
+ the IINNPPUUTTRRCC variable. If that variable is unset, the default is
+ _~_/_._i_n_p_u_t_r_c. When a program which uses the readline library starts up,
the initialization file is read, and the key bindings and variables are
- set. There are only a few basic constructs allowed in the readline
- initialization file. Blank lines are ignored. Lines beginning with a
- ## are comments. Lines beginning with a $$ indicate conditional con-
+ set. There are only a few basic constructs allowed in the readline
+ initialization file. Blank lines are ignored. Lines beginning with a
+ ## are comments. Lines beginning with a $$ indicate conditional con-
structs. Other lines denote key bindings and variable settings.
- The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other
+ The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other
programs that use this library may add their own commands and bindings.
For example, placing
@@ -2631,19 +2634,19 @@ RREEAADDLLIINNEE
M-Control-u: universal-argument
or
C-Meta-u: universal-argument
- into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
+ into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
_s_a_l_-_a_r_g_u_m_e_n_t.
- The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L,
+ The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L,
_E_S_C, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and _T_A_B.
- In addition to command names, readline allows keys to be bound to a
+ In addition to command names, readline allows keys to be bound to a
string that is inserted when the key is pressed (a _m_a_c_r_o).
RReeaaddlliinnee KKeeyy BBiinnddiinnggss
- The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
- All that is required is the name of the command or the text of a macro
- and a key sequence to which it should be bound. The name may be speci-
+ The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
+ All that is required is the name of the command or the text of a macro
+ and a key sequence to which it should be bound. The name may be speci-
fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or
_C_o_n_t_r_o_l_- prefixes, or as a key sequence.
@@ -2654,15 +2657,15 @@ RREEAADDLLIINNEE
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
- _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
- run the macro expressed on the right hand side (that is, to insert the
+ In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
+ _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
+ run the macro expressed on the right hand side (that is, to insert the
text ``> output'' into the line).
- In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
- from kkeeyynnaammee above in that strings denoting an entire key sequence may
- be specified by placing the sequence within double quotes. Some GNU
- Emacs style key escapes can be used, as in the following example, but
+ In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
+ from kkeeyynnaammee above in that strings denoting an entire key sequence may
+ be specified by placing the sequence within double quotes. Some GNU
+ Emacs style key escapes can be used, as in the following example, but
the symbolic character names are not recognized.
"\C-u": universal-argument
@@ -2670,7 +2673,7 @@ RREEAADDLLIINNEE
"\e[11~": "Function Key 1"
In this example, _C_-_u is again bound to the function uunniivveerrssaall--aarrgguummeenntt.
- _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
+ _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
bound to insert the text ``Function Key 1''.
The full set of GNU Emacs style escape sequences is
@@ -2681,7 +2684,7 @@ RREEAADDLLIINNEE
\\"" literal "
\\'' literal '
- In addition to the GNU Emacs style escape sequences, a second set of
+ In addition to the GNU Emacs style escape sequences, a second set of
backslash escapes is available:
\\aa alert (bell)
\\bb backspace
@@ -2691,20 +2694,20 @@ RREEAADDLLIINNEE
\\rr carriage return
\\tt horizontal tab
\\vv vertical tab
- \\_n_n_n the eight-bit character whose value is the octal value
+ \\_n_n_n the eight-bit character whose value is the octal value
_n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
When entering the text of a macro, single or double quotes must be used
to indicate a macro definition. Unquoted text is assumed to be a func-
- tion name. In the macro body, the backslash escapes described above
- are expanded. Backslash will quote any other character in the macro
+ tion name. In the macro body, the backslash escapes described above
+ are expanded. Backslash will quote any other character in the macro
text, including " and '.
- BBaasshh allows the current readline key bindings to be displayed or modi-
- fied with the bbiinndd builtin command. The editing mode may be switched
- during interactive use by using the --oo option to the sseett builtin com-
+ BBaasshh allows the current readline key bindings to be displayed or modi-
+ fied with the bbiinndd builtin command. The editing mode may be switched
+ during interactive use by using the --oo option to the sseett builtin com-
mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
RReeaaddlliinnee VVaarriiaabblleess
@@ -2714,182 +2717,186 @@ RREEAADDLLIINNEE
sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
- Except where noted, readline variables can take the values OOnn or OOffff
- (without regard to case). Unrecognized variable names are ignored.
- When a variable value is read, empty or null values, "on" (case-insen-
+ Except where noted, readline variables can take the values OOnn or OOffff
+ (without regard to case). Unrecognized variable names are ignored.
+ When a variable value is read, empty or null values, "on" (case-insen-
sitive), and "1" are equivalent to OOnn. All other values are equivalent
to OOffff. The variables and their default values are:
bbeellll--ssttyyllee ((aauuddiibbllee))
- Controls what happens when readline wants to ring the terminal
+ Controls what happens when readline wants to ring the terminal
bell. If set to nnoonnee, readline never rings the bell. If set to
- vviissiibbllee, readline uses a visible bell if one is available. If
+ vviissiibbllee, readline uses a visible bell if one is available. If
set to aauuddiibbllee, readline attempts to ring the terminal's bell.
bbiinndd--ttttyy--ssppeecciiaall--cchhaarrss ((OOnn))
- If set to OOnn, readline attempts to bind the control characters
+ If set to OOnn, readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their read-
line equivalents.
ccoommmmeenntt--bbeeggiinn ((````##''''))
- The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
+ The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
command is executed. This command is bound to MM--## in emacs mode
and to ## in vi command mode.
ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
If set to OOnn, readline performs filename matching and completion
in a case-insensitive fashion.
ccoommpplleettiioonn--pprreeffiixx--ddiissppllaayy--lleennggtthh ((00))
- The length in characters of the common prefix of a list of pos-
- sible completions that is displayed without modification. When
- set to a value greater than zero, common prefixes longer than
- this value are replaced with an ellipsis when displaying possi-
+ The length in characters of the common prefix of a list of pos-
+ sible completions that is displayed without modification. When
+ set to a value greater than zero, common prefixes longer than
+ this value are replaced with an ellipsis when displaying possi-
ble completions.
ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about viewing the num-
- ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
- ttiioonnss command. It may be set to any integer value greater than
- or equal to zero. If the number of possible completions is
+ This determines when the user is queried about viewing the num-
+ ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
+ ttiioonnss command. It may be set to any integer value greater than
+ or equal to zero. If the number of possible completions is
greater than or equal to the value of this variable, the user is
- asked whether or not he wishes to view them; otherwise they are
+ asked whether or not he wishes to view them; otherwise they are
simply listed on the terminal.
ccoonnvveerrtt--mmeettaa ((OOnn))
- If set to OOnn, readline will convert characters with the eighth
+ If set to OOnn, readline will convert characters with the eighth
bit set to an ASCII key sequence by stripping the eighth bit and
- prefixing an escape character (in effect, using escape as the
+ prefixing an escape character (in effect, using escape as the
_m_e_t_a _p_r_e_f_i_x).
ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
If set to OOnn, readline will inhibit word completion. Completion
- characters will be inserted into the line as if they had been
+ characters will be inserted into the line as if they had been
mapped to sseellff--iinnsseerrtt.
eeddiittiinngg--mmooddee ((eemmaaccss))
Controls whether readline begins with a set of key bindings sim-
ilar to _e_m_a_c_s or _v_i. eeddiittiinngg--mmooddee can be set to either eemmaaccss or
vvii.
eecchhoo--ccoonnttrrooll--cchhaarraacctteerrss ((OOnn))
- When set to OOnn, on operating systems that indicate they support
+ When set to OOnn, on operating systems that indicate they support
it, readline echoes a character corresponding to a signal gener-
ated from the keyboard.
eennaabbllee--kkeeyyppaadd ((OOffff))
When set to OOnn, readline will try to enable the application key-
- pad when it is called. Some systems need this to enable the
+ pad when it is called. Some systems need this to enable the
arrow keys.
+ eennaabbllee--mmeettaa--kkeeyy ((OOnn))
+ When set to OOnn, readline will try to enable any meta modifier
+ key the terminal claims to support when it is called. On many
+ terminals, the meta key is used to send eight-bit characters.
eexxppaanndd--ttiillddee ((OOffff))
- If set to oonn, tilde expansion is performed when readline
+ If set to oonn, tilde expansion is performed when readline
attempts word completion.
hhiissttoorryy--pprreesseerrvvee--ppooiinntt ((OOffff))
- If set to oonn, the history code attempts to place point at the
- same location on each history line retrieved with pprreevviioouuss--hhiiss--
+ If set to oonn, the history code attempts to place point at the
+ same location on each history line retrieved with pprreevviioouuss--hhiiss--
ttoorryy or nneexxtt--hhiissttoorryy.
hhiissttoorryy--ssiizzee ((00))
- Set the maximum number of history entries saved in the history
+ Set the maximum number of history entries saved in the history
list. If set to zero, the number of entries in the history list
is not limited.
hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
- When set to OOnn, makes readline use a single line for display,
+ When set to OOnn, makes readline use a single line for display,
scrolling the input horizontally on a single screen line when it
- becomes longer than the screen width rather than wrapping to a
+ becomes longer than the screen width rather than wrapping to a
new line.
iinnppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will enable eight-bit input (that is, it
- will not strip the high bit from the characters it reads),
+ If set to OOnn, readline will enable eight-bit input (that is, it
+ will not strip the high bit from the characters it reads),
regardless of what the terminal claims it can support. The name
mmeettaa--ffllaagg is a synonym for this variable.
iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[CC--JJ''''))
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a com-
- mand. If this variable has not been given a value, the charac-
+ The string of characters that should terminate an incremental
+ search without subsequently executing the character as a com-
+ mand. If this variable has not been given a value, the charac-
ters _E_S_C and _C_-_J will terminate an incremental search.
kkeeyymmaapp ((eemmaaccss))
- Set the current readline keymap. The set of valid keymap names
- is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_-
- _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
- equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the
+ Set the current readline keymap. The set of valid keymap names
+ is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_-
+ _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
+ equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the
value of eeddiittiinngg--mmooddee also affects the default keymap.
mmaarrkk--ddiirreeccttoorriieess ((OOnn))
If set to OOnn, completed directory names have a slash appended.
mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
- If set to OOnn, history lines that have been modified are dis-
+ If set to OOnn, history lines that have been modified are dis-
played with a preceding asterisk (**).
mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff))
If set to OOnn, completed names which are symbolic links to direc-
- tories have a slash appended (subject to the value of
+ tories have a slash appended (subject to the value of
mmaarrkk--ddiirreeccttoorriieess).
mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn))
- This variable, when set to OOnn, causes readline to match files
- whose names begin with a `.' (hidden files) when performing
- filename completion, unless the leading `.' is supplied by the
+ This variable, when set to OOnn, causes readline to match files
+ whose names begin with a `.' (hidden files) when performing
+ filename completion, unless the leading `.' is supplied by the
user in the filename to be completed.
oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with the eighth
+ If set to OOnn, readline will display characters with the eighth
bit set directly rather than as a meta-prefixed escape sequence.
ppaaggee--ccoommpplleettiioonnss ((OOnn))
- If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
+ If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
play a screenful of possible completions at a time.
pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
- If set to OOnn, readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down the
+ If set to OOnn, readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down the
screen.
rreevveerrtt--aallll--aatt--nneewwlliinnee ((OOffff))
- If set to oonn, readline will undo all changes to history lines
+ If set to oonn, readline will undo all changes to history lines
before returning when aacccceepptt--lliinnee is executed. By default, his-
- tory lines may be modified and retain individual undo lists
+ tory lines may be modified and retain individual undo lists
across calls to rreeaaddlliinnee.
sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
- This alters the default behavior of the completion functions.
+ This alters the default behavior of the completion functions.
If set to oonn, words which have more than one possible completion
- cause the matches to be listed immediately instead of ringing
+ cause the matches to be listed immediately instead of ringing
the bell.
sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff))
- This alters the default behavior of the completion functions in
+ This alters the default behavior of the completion functions in
a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to oonn, words
- which have more than one possible completion without any possi-
- ble partial completion (the possible completions don't share a
- common prefix) cause the matches to be listed immediately
+ which have more than one possible completion without any possi-
+ ble partial completion (the possible completions don't share a
+ common prefix) cause the matches to be listed immediately
instead of ringing the bell.
sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff))
- If set to OOnn, this alters the default completion behavior when
- inserting a single match into the line. It's only active when
- performing completion in the middle of a word. If enabled,
- readline does not insert characters from the completion that
- match characters after point in the word being completed, so
+ If set to OOnn, this alters the default completion behavior when
+ inserting a single match into the line. It's only active when
+ performing completion in the middle of a word. If enabled,
+ readline does not insert characters from the completion that
+ match characters after point in the word being completed, so
portions of the word following the cursor are not duplicated.
vviissiibbllee--ssttaattss ((OOffff))
- If set to OOnn, a character denoting a file's type as reported by
- _s_t_a_t(2) is appended to the filename when listing possible com-
+ If set to OOnn, a character denoting a file's type as reported by
+ _s_t_a_t(2) is appended to the filename when listing possible com-
pletions.
RReeaaddlliinnee CCoonnddiittiioonnaall CCoonnssttrruuccttss
- Readline implements a facility similar in spirit to the conditional
- compilation features of the C preprocessor which allows key bindings
- and variable settings to be performed as the result of tests. There
+ Readline implements a facility similar in spirit to the conditional
+ compilation features of the C preprocessor which allows key bindings
+ and variable settings to be performed as the result of tests. There
are four parser directives used.
- $$iiff The $$iiff construct allows bindings to be made based on the edit-
- ing mode, the terminal being used, or the application using
- readline. The text of the test extends to the end of the line;
+ $$iiff The $$iiff construct allows bindings to be made based on the edit-
+ ing mode, the terminal being used, or the application using
+ readline. The text of the test extends to the end of the line;
no characters are required to isolate it.
- mmooddee The mmooddee== form of the $$iiff directive is used to test
- whether readline is in emacs or vi mode. This may be
- used in conjunction with the sseett kkeeyymmaapp command, for
- instance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
- _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
+ mmooddee The mmooddee== form of the $$iiff directive is used to test
+ whether readline is in emacs or vi mode. This may be
+ used in conjunction with the sseett kkeeyymmaapp command, for
+ instance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
+ _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
emacs mode.
- tteerrmm The tteerrmm== form may be used to include terminal-specific
+ tteerrmm The tteerrmm== form may be used to include terminal-specific
key bindings, perhaps to bind the key sequences output by
the terminal's function keys. The word on the right side
of the == is tested against the both full name of the ter-
- minal and the portion of the terminal name before the
- first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d,
+ minal and the portion of the terminal name before the
+ first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d,
for instance.
aapppplliiccaattiioonn
The aapppplliiccaattiioonn construct is used to include application-
specific settings. Each program using the readline
- library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
+ library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
file can test for a particular value. This could be used
- to bind key sequences to functions useful for a specific
- program. For instance, the following command adds a key
- sequence that quotes the current or previous word in
+ to bind key sequences to functions useful for a specific
+ program. For instance, the following command adds a key
+ sequence that quotes the current or previous word in
Bash:
$$iiff Bash
@@ -2904,51 +2911,51 @@ RREEAADDLLIINNEE
test fails.
$$iinncclluuddee
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the follow-
+ This directive takes a single filename as an argument and reads
+ commands and bindings from that file. For example, the follow-
ing directive would read _/_e_t_c_/_i_n_p_u_t_r_c:
$$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
SSeeaarrcchhiinngg
- Readline provides commands for searching through the command history
+ Readline provides commands for searching through the command history
(see HHIISSTTOORRYY below) for lines containing a specified string. There are
two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_t_a_l.
- Incremental searches begin before the user has finished typing the
- search string. As each character of the search string is typed, read-
+ Incremental searches begin before the user has finished typing the
+ search string. As each character of the search string is typed, read-
line displays the next entry from the history matching the string typed
- so far. An incremental search requires only as many characters as
- needed to find the desired history entry. The characters present in
- the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an
+ so far. An incremental search requires only as many characters as
+ needed to find the desired history entry. The characters present in
+ the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an
incremental search. If that variable has not been assigned a value the
- Escape and Control-J characters will terminate an incremental search.
- Control-G will abort an incremental search and restore the original
- line. When the search is terminated, the history entry containing the
+ Escape and Control-J characters will terminate an incremental search.
+ Control-G will abort an incremental search and restore the original
+ line. When the search is terminated, the history entry containing the
search string becomes the current line.
- To find other matching entries in the history list, type Control-S or
- Control-R as appropriate. This will search backward or forward in the
- history for the next entry matching the search string typed so far.
- Any other key sequence bound to a readline command will terminate the
- search and execute that command. For instance, a _n_e_w_l_i_n_e will termi-
+ To find other matching entries in the history list, type Control-S or
+ Control-R as appropriate. This will search backward or forward in the
+ history for the next entry matching the search string typed so far.
+ Any other key sequence bound to a readline command will terminate the
+ search and execute that command. For instance, a _n_e_w_l_i_n_e will termi-
nate the search and accept the line, thereby executing the command from
the history list.
Readline remembers the last incremental search string. If two Control-
- Rs are typed without any intervening characters defining a new search
+ Rs are typed without any intervening characters defining a new search
string, any remembered search string is used.
- Non-incremental searches read the entire search string before starting
- to search for matching history lines. The search string may be typed
+ Non-incremental searches read the entire search string before starting
+ to search for matching history lines. The search string may be typed
by the user or be part of the contents of the current line.
RReeaaddlliinnee CCoommmmaanndd NNaammeess
- The following is a list of the names of the commands and the default
+ The following is a list of the names of the commands and the default
key sequences to which they are bound. Command names without an accom-
panying key sequence are unbound by default. In the following descrip-
- tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to
- a cursor position saved by the sseett--mmaarrkk command. The text between the
+ tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to
+ a cursor position saved by the sseett--mmaarrkk command. The text between the
point and mark is referred to as the _r_e_g_i_o_n.
CCoommmmaannddss ffoorr MMoovviinngg
@@ -2964,17 +2971,17 @@ RREEAADDLLIINNEE
Move forward to the end of the next word. Words are composed of
alphanumeric characters (letters and digits).
bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are composed of alphanumeric characters (letters and digits).
sshheellll--ffoorrwwaarrdd--wwoorrdd
- Move forward to the end of the next word. Words are delimited
+ Move forward to the end of the next word. Words are delimited
by non-quoted shell metacharacters.
sshheellll--bbaacckkwwaarrdd--wwoorrdd
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are delimited by non-quoted shell metacharacters.
cclleeaarr--ssccrreeeenn ((CC--ll))
- Clear the screen leaving the current line at the top of the
- screen. With an argument, refresh the current line without
+ Clear the screen leaving the current line at the top of the
+ screen. With an argument, refresh the current line without
clearing the screen.
rreeddrraaww--ccuurrrreenntt--lliinnee
Refresh the current line.
@@ -2982,132 +2989,132 @@ RREEAADDLLIINNEE
CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
Accept the line regardless of where the cursor is. If this line
- is non-empty, add it to the history list according to the state
- of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history
+ is non-empty, add it to the history list according to the state
+ of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history
line, then restore the history line to its original state.
pprreevviioouuss--hhiissttoorryy ((CC--pp))
Fetch the previous command from the history list, moving back in
the list.
nneexxtt--hhiissttoorryy ((CC--nn))
- Fetch the next command from the history list, moving forward in
+ Fetch the next command from the history list, moving forward in
the list.
bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
Move to the first line in the history.
eenndd--ooff--hhiissttoorryy ((MM-->>))
- Move to the end of the input history, i.e., the line currently
+ Move to the end of the input history, i.e., the line currently
being entered.
rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental
+ Search backward starting at the current line and moving `up'
+ through the history as necessary. This is an incremental
search.
ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
- Search forward starting at the current line and moving `down'
- through the history as necessary. This is an incremental
+ Search forward starting at the current line and moving `down'
+ through the history as necessary. This is an incremental
search.
nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp))
Search backward through the history starting at the current line
- using a non-incremental search for a string supplied by the
+ using a non-incremental search for a string supplied by the
user.
nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn))
- Search forward through the history using a non-incremental
+ Search forward through the history using a non-incremental
search for a string supplied by the user.
hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
+ Search forward through the history for the string of characters
+ between the start of the current line and the point. This is a
non-incremental search.
hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
+ between the start of the current line and the point. This is a
non-incremental search.
yyaannkk--nntthh--aarrgg ((MM--CC--yy))
- Insert the first argument to the previous command (usually the
+ Insert the first argument to the previous command (usually the
second word on the previous line) at point. With an argument _n,
- insert the _nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument
+ insert the _nth word from the previous command (the words in the
+ previous command begin with word 0). A negative argument
inserts the _nth word from the end of the previous command. Once
- the argument _n is computed, the argument is extracted as if the
+ the argument _n is computed, the argument is extracted as if the
"!_n" history expansion had been specified.
yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command (the last word
- of the previous history entry). With an argument, behave
- exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg
- move back through the history list, inserting the last argument
+ Insert the last argument to the previous command (the last word
+ of the previous history entry). With an argument, behave
+ exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg
+ move back through the history list, inserting the last argument
of each line in turn. The history expansion facilities are used
- to extract the last argument, as if the "!$" history expansion
+ to extract the last argument, as if the "!$" history expansion
had been specified.
sshheellll--eexxppaanndd--lliinnee ((MM--CC--ee))
Expand the line as the shell does. This performs alias and his-
tory expansion as well as all of the shell word expansions. See
- HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history expansion.
+ HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history expansion.
hhiissttoorryy--eexxppaanndd--lliinnee ((MM--^^))
- Perform history expansion on the current line. See HHIISSTTOORRYY
+ Perform history expansion on the current line. See HHIISSTTOORRYY
EEXXPPAANNSSIIOONN below for a description of history expansion.
mmaaggiicc--ssppaaccee
- Perform history expansion on the current line and insert a
+ Perform history expansion on the current line and insert a
space. See HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history
expansion.
aalliiaass--eexxppaanndd--lliinnee
- Perform alias expansion on the current line. See AALLIIAASSEESS above
+ Perform alias expansion on the current line. See AALLIIAASSEESS above
for a description of alias expansion.
hhiissttoorryy--aanndd--aalliiaass--eexxppaanndd--lliinnee
Perform history and alias expansion on the current line.
iinnsseerrtt--llaasstt--aarrgguummeenntt ((MM--..,, MM--__))
A synonym for yyaannkk--llaasstt--aarrgg.
ooppeerraattee--aanndd--ggeett--nneexxtt ((CC--oo))
- Accept the current line for execution and fetch the next line
- relative to the current line from the history for editing. Any
+ Accept the current line for execution and fetch the next line
+ relative to the current line from the history for editing. Any
argument is ignored.
eeddiitt--aanndd--eexxeeccuuttee--ccoommmmaanndd ((CC--xxCC--ee))
- Invoke an editor on the current command line, and execute the
- result as shell commands. BBaasshh attempts to invoke $$VVIISSUUAALL,
+ Invoke an editor on the current command line, and execute the
+ result as shell commands. BBaasshh attempts to invoke $$VVIISSUUAALL,
$$EEDDIITTOORR, and _e_m_a_c_s as the editor, in that order.
CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
ddeelleettee--cchhaarr ((CC--dd))
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
+ Delete the character at point. If point is at the beginning of
+ the line, there are no characters in the line, and the last
character typed was not bound to ddeelleettee--cchhaarr, then return EEOOFF.
bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
- Delete the character behind the cursor. When given a numeric
+ Delete the character behind the cursor. When given a numeric
argument, save the deleted text on the kill ring.
ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr
- Delete the character under the cursor, unless the cursor is at
+ Delete the character under the cursor, unless the cursor is at
the end of the line, in which case the character behind the cur-
sor is deleted.
qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
- Add the next character typed to the line verbatim. This is how
+ Add the next character typed to the line verbatim. This is how
to insert characters like CC--qq, for example.
ttaabb--iinnsseerrtt ((CC--vv TTAABB))
Insert a tab character.
sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
Insert the character typed.
ttrraannssppoossee--cchhaarrss ((CC--tt))
- Drag the character before point forward over the character at
- point, moving point forward as well. If point is at the end of
- the line, then this transposes the two characters before point.
+ Drag the character before point forward over the character at
+ point, moving point forward as well. If point is at the end of
+ the line, then this transposes the two characters before point.
Negative arguments have no effect.
ttrraannssppoossee--wwoorrddss ((MM--tt))
- Drag the word before point past the word after point, moving
- point over that word as well. If point is at the end of the
+ Drag the word before point past the word after point, moving
+ point over that word as well. If point is at the end of the
line, this transposes the last two words on the line.
uuppccaassee--wwoorrdd ((MM--uu))
- Uppercase the current (or following) word. With a negative
+ Uppercase the current (or following) word. With a negative
argument, uppercase the previous word, but do not move point.
ddoowwnnccaassee--wwoorrdd ((MM--ll))
- Lowercase the current (or following) word. With a negative
+ Lowercase the current (or following) word. With a negative
argument, lowercase the previous word, but do not move point.
ccaappiittaalliizzee--wwoorrdd ((MM--cc))
- Capitalize the current (or following) word. With a negative
+ Capitalize the current (or following) word. With a negative
argument, capitalize the previous word, but do not move point.
oovveerrwwrriittee--mmooddee
- Toggle overwrite mode. With an explicit positive numeric argu-
+ Toggle overwrite mode. With an explicit positive numeric argu-
ment, switches to overwrite mode. With an explicit non-positive
numeric argument, switches to insert mode. This command affects
- only eemmaaccss mode; vvii mode does overwrite differently. Each call
+ only eemmaaccss mode; vvii mode does overwrite differently. Each call
to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In overwrite mode, charac-
- ters bound to sseellff--iinnsseerrtt replace the text at point rather than
- pushing the text to the right. Characters bound to bbaacckk--
- wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a
+ ters bound to sseellff--iinnsseerrtt replace the text at point rather than
+ pushing the text to the right. Characters bound to bbaacckk--
+ wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a
space. By default, this command is unbound.
KKiilllliinngg aanndd YYaannkkiinngg
@@ -3116,31 +3123,31 @@ RREEAADDLLIINNEE
bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
Kill backward to the beginning of the line.
uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
- Kill backward from point to the beginning of the line. The
+ Kill backward from point to the beginning of the line. The
killed text is saved on the kill-ring.
kkiillll--wwhhoollee--lliinnee
- Kill all characters on the current line, no matter where point
+ Kill all characters on the current line, no matter where point
is.
kkiillll--wwoorrdd ((MM--dd))
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point to the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by ffoorrwwaarrdd--wwoorrdd.
bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by bbaacckkwwaarrdd--wwoorrdd.
sshheellll--kkiillll--wwoorrdd ((MM--dd))
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point to the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by sshheellll--ffoorrwwaarrdd--wwoorrdd.
sshheellll--bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by sshheellll--bbaacckkwwaarrdd--wwoorrdd.
uunniixx--wwoorrdd--rruubboouutt ((CC--ww))
- Kill the word behind point, using white space as a word bound-
+ Kill the word behind point, using white space as a word bound-
ary. The killed text is saved on the kill-ring.
uunniixx--ffiilleennaammee--rruubboouutt
- Kill the word behind point, using white space and the slash
- character as the word boundaries. The killed text is saved on
+ Kill the word behind point, using white space and the slash
+ character as the word boundaries. The killed text is saved on
the kill-ring.
ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
Delete all spaces and tabs around point.
@@ -3149,65 +3156,65 @@ RREEAADDLLIINNEE
ccooppyy--rreeggiioonn--aass--kkiillll
Copy the text in the region to the kill buffer.
ccooppyy--bbaacckkwwaarrdd--wwoorrdd
- Copy the word before point to the kill buffer. The word bound-
+ Copy the word before point to the kill buffer. The word bound-
aries are the same as bbaacckkwwaarrdd--wwoorrdd.
ccooppyy--ffoorrwwaarrdd--wwoorrdd
- Copy the word following point to the kill buffer. The word
+ Copy the word following point to the kill buffer. The word
boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
yyaannkk ((CC--yy))
Yank the top of the kill ring into the buffer at point.
yyaannkk--ppoopp ((MM--yy))
- Rotate the kill ring, and yank the new top. Only works follow-
+ Rotate the kill ring, and yank the new top. Only works follow-
ing yyaannkk or yyaannkk--ppoopp.
NNuummeerriicc AArrgguummeennttss
ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----))
- Add this digit to the argument already accumulating, or start a
+ Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
uunniivveerrssaall--aarrgguummeenntt
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is fol-
- lowed by digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the
- numeric argument, but is otherwise ignored. As a special case,
- if this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argu-
+ This is another way to specify an argument. If this command is
+ followed by one or more digits, optionally with a leading minus
+ sign, those digits define the argument. If the command is fol-
+ lowed by digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the
+ numeric argument, but is otherwise ignored. As a special case,
+ if this command is immediately followed by a character that is
+ neither a digit or minus sign, the argument count for the next
+ command is multiplied by four. The argument count is initially
+ one, so executing this function the first time makes the argu-
ment count four, a second time makes the argument count sixteen,
and so on.
CCoommpplleettiinngg
ccoommpplleettee ((TTAABB))
- Attempt to perform completion on the text before point. BBaasshh
+ Attempt to perform completion on the text before point. BBaasshh
attempts completion treating the text as a variable (if the text
- begins with $$), username (if the text begins with ~~), hostname
- (if the text begins with @@), or command (including aliases and
+ begins with $$), username (if the text begins with ~~), hostname
+ (if the text begins with @@), or command (including aliases and
functions) in turn. If none of these produces a match, filename
completion is attempted.
ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
List the possible completions of the text before point.
iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
- Insert all completions of the text before point that would have
+ Insert all completions of the text before point that would have
been generated by ppoossssiibbllee--ccoommpplleettiioonnss.
mmeennuu--ccoommpplleettee
- Similar to ccoommpplleettee, but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of mmeennuu--ccoommpplleettee steps through the list of possible
- completions, inserting each match in turn. At the end of the
+ Similar to ccoommpplleettee, but replaces the word to be completed with
+ a single match from the list of possible completions. Repeated
+ execution of mmeennuu--ccoommpplleettee steps through the list of possible
+ completions, inserting each match in turn. At the end of the
list of completions, the bell is rung (subject to the setting of
bbeellll--ssttyyllee) and the original text is restored. An argument of _n
- moves _n positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to TTAABB, but is unbound by
+ moves _n positions forward in the list of matches; a negative
+ argument may be used to move backward through the list. This
+ command is intended to be bound to TTAABB, but is unbound by
default.cc
mmeennuu--ccoommpplleettee--kkrrdd
- Identicwwal to mmeennuu--ccoommpplleettee, but moves backward through the list
- of possible completions, as if mmeennuu--ccoommpplleettee had been given a
+ Identicwwal to mmeennuu--ccoommpplleettee, but moves backward through the list
+ of possible completions, as if mmeennuu--ccoommpplleettee had been given a
negative argument. This command is unbound by default.
ddeelleettee--cchhaarr--oorr--lliisstt
- Deletes the character under the cursor if not at the beginning
- or end of the line (like ddeelleettee--cchhaarr). If at the end of the
+ Deletes the character under the cursor if not at the beginning
+ or end of the line (like ddeelleettee--cchhaarr). If at the end of the
line, behaves identically to ppoossssiibbllee--ccoommpplleettiioonnss. This command
is unbound by default.
ccoommpplleettee--ffiilleennaammee ((MM--//))
@@ -3216,213 +3223,213 @@ RREEAADDLLIINNEE
List the possible completions of the text before point, treating
it as a filename.
ccoommpplleettee--uusseerrnnaammee ((MM--~~))
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
username.
ppoossssiibbllee--uusseerrnnaammee--ccoommpplleettiioonnss ((CC--xx ~~))
List the possible completions of the text before point, treating
it as a username.
ccoommpplleettee--vvaarriiaabbllee ((MM--$$))
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
shell variable.
ppoossssiibbllee--vvaarriiaabbllee--ccoommpplleettiioonnss ((CC--xx $$))
List the possible completions of the text before point, treating
it as a shell variable.
ccoommpplleettee--hhoossttnnaammee ((MM--@@))
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
hostname.
ppoossssiibbllee--hhoossttnnaammee--ccoommpplleettiioonnss ((CC--xx @@))
List the possible completions of the text before point, treating
it as a hostname.
ccoommpplleettee--ccoommmmaanndd ((MM--!!))
- Attempt completion on the text before point, treating it as a
- command name. Command completion attempts to match the text
- against aliases, reserved words, shell functions, shell
+ Attempt completion on the text before point, treating it as a
+ command name. Command completion attempts to match the text
+ against aliases, reserved words, shell functions, shell
builtins, and finally executable filenames, in that order.
ppoossssiibbllee--ccoommmmaanndd--ccoommpplleettiioonnss ((CC--xx !!))
List the possible completions of the text before point, treating
it as a command name.
ddyynnaammiicc--ccoommpplleettee--hhiissttoorryy ((MM--TTAABB))
- Attempt completion on the text before point, comparing the text
- against lines from the history list for possible completion
+ Attempt completion on the text before point, comparing the text
+ against lines from the history list for possible completion
matches.
ddaabbbbrreevv--eexxppaanndd
- Attempt menu completion on the text before point, comparing the
+ Attempt menu completion on the text before point, comparing the
text against lines from the history list for possible completion
matches.
ccoommpplleettee--iinnttoo--bbrraacceess ((MM--{{))
Perform filename completion and insert the list of possible com-
- pletions enclosed within braces so the list is available to the
+ pletions enclosed within braces so the list is available to the
shell (see BBrraaccee EExxppaannssiioonn above).
KKeeyybbooaarrdd MMaaccrrooss
ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
- Begin saving the characters typed into the current keyboard
+ Begin saving the characters typed into the current keyboard
macro.
eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
Stop saving the characters typed into the current keyboard macro
and store the definition.
ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
- Re-execute the last keyboard macro defined, by making the char-
+ Re-execute the last keyboard macro defined, by making the char-
acters in the macro appear as if typed at the keyboard.
MMiisscceellllaanneeoouuss
rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
- Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
+ Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
bindings or variable assignments found there.
aabboorrtt ((CC--gg))
- Abort the current editing command and ring the terminal's bell
+ Abort the current editing command and ring the terminal's bell
(subject to the setting of bbeellll--ssttyyllee).
ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......))
- If the metafied character _x is lowercase, run the command that
+ If the metafied character _x is lowercase, run the command that
is bound to the corresponding uppercase character.
pprreeffiixx--mmeettaa ((EESSCC))
Metafy the next character typed. EESSCC ff is equivalent to MMeettaa--ff.
uunnddoo ((CC--__,, CC--xx CC--uu))
Incremental undo, separately remembered for each line.
rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like executing the
- uunnddoo command enough times to return the line to its initial
+ Undo all changes made to this line. This is like executing the
+ uunnddoo command enough times to return the line to its initial
state.
ttiillddee--eexxppaanndd ((MM--&&))
Perform tilde expansion on the current word.
sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
- Set the mark to the point. If a numeric argument is supplied,
+ Set the mark to the point. If a numeric argument is supplied,
the mark is set to that position.
eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx))
- Swap the point with the mark. The current cursor position is
- set to the saved position, and the old cursor position is saved
+ Swap the point with the mark. The current cursor position is
+ set to the saved position, and the old cursor position is saved
as the mark.
cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous occur-
+ that character. A negative count searches for previous occur-
rences.
cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
- A character is read and point is moved to the previous occur-
- rence of that character. A negative count searches for subse-
+ A character is read and point is moved to the previous occur-
+ rence of that character. A negative count searches for subse-
quent occurrences.
sskkiipp--ccssii--sseeqquueennccee (())
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. Such sequences begin
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
+ sequence is bound to "\[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
This is unbound by default, but usually bound to ESC-[.
iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the readline ccoomm--
- mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
+ Without a numeric argument, the value of the readline ccoomm--
+ mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
line. If a numeric argument is supplied, this command acts as a
- toggle: if the characters at the beginning of the line do not
- match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
+ toggle: if the characters at the beginning of the line do not
+ match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
wise the characters in ccoommmmeenntt--bbeeggiinn are deleted from the begin-
- ning of the line. In either case, the line is accepted as if a
- newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
- causes this command to make the current line a shell comment.
- If a numeric argument causes the comment character to be
+ ning of the line. In either case, the line is accepted as if a
+ newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
+ causes this command to make the current line a shell comment.
+ If a numeric argument causes the comment character to be
removed, the line will be executed by the shell.
gglloobb--ccoommpplleettee--wwoorrdd ((MM--gg))
- The word before point is treated as a pattern for pathname
- expansion, with an asterisk implicitly appended. This pattern
- is used to generate a list of matching file names for possible
+ The word before point is treated as a pattern for pathname
+ expansion, with an asterisk implicitly appended. This pattern
+ is used to generate a list of matching file names for possible
completions.
gglloobb--eexxppaanndd--wwoorrdd ((CC--xx **))
- The word before point is treated as a pattern for pathname
- expansion, and the list of matching file names is inserted,
- replacing the word. If a numeric argument is supplied, an
+ The word before point is treated as a pattern for pathname
+ expansion, and the list of matching file names is inserted,
+ replacing the word. If a numeric argument is supplied, an
asterisk is appended before pathname expansion.
gglloobb--lliisstt--eexxppaannssiioonnss ((CC--xx gg))
- The list of expansions that would have been generated by
- gglloobb--eexxppaanndd--wwoorrdd is displayed, and the line is redrawn. If a
- numeric argument is supplied, an asterisk is appended before
+ The list of expansions that would have been generated by
+ gglloobb--eexxppaanndd--wwoorrdd is displayed, and the line is redrawn. If a
+ numeric argument is supplied, an asterisk is appended before
pathname expansion.
dduummpp--ffuunnccttiioonnss
- Print all of the functions and their key bindings to the read-
+ Print all of the functions and their key bindings to the read-
line output stream. If a numeric argument is supplied, the out-
- put is formatted in such a way that it can be made part of an
+ put is formatted in such a way that it can be made part of an
_i_n_p_u_t_r_c file.
dduummpp--vvaarriiaabblleess
Print all of the settable readline variables and their values to
- the readline output stream. If a numeric argument is supplied,
- the output is formatted in such a way that it can be made part
+ the readline output stream. If a numeric argument is supplied,
+ the output is formatted in such a way that it can be made part
of an _i_n_p_u_t_r_c file.
dduummpp--mmaaccrrooss
- Print all of the readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
+ Print all of the readline key sequences bound to macros and the
+ strings they output. If a numeric argument is supplied, the
output is formatted in such a way that it can be made part of an
_i_n_p_u_t_r_c file.
ddiissppllaayy--sshheellll--vveerrssiioonn ((CC--xx CC--vv))
- Display version information about the current instance of bbaasshh.
+ Display version information about the current instance of bbaasshh.
PPrrooggrraammmmaabbllee CCoommpplleettiioonn
- When word completion is attempted for an argument to a command for
- which a completion specification (a _c_o_m_p_s_p_e_c) has been defined using
- the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the pro-
+ When word completion is attempted for an argument to a command for
+ which a completion specification (a _c_o_m_p_s_p_e_c) has been defined using
+ the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the pro-
grammable completion facilities are invoked.
- First, the command name is identified. If the command word is the
- empty string (completion attempted at the beginning of an empty line),
- any compspec defined with the --EE option to ccoommpplleettee is used. If a
- compspec has been defined for that command, the compspec is used to
+ First, the command name is identified. If the command word is the
+ empty string (completion attempted at the beginning of an empty line),
+ any compspec defined with the --EE option to ccoommpplleettee is used. If a
+ compspec has been defined for that command, the compspec is used to
generate the list of possible completions for the word. If the command
- word is a full pathname, a compspec for the full pathname is searched
- for first. If no compspec is found for the full pathname, an attempt
- is made to find a compspec for the portion following the final slash.
- If those searches to not result in a compspec, any compspec defined
+ word is a full pathname, a compspec for the full pathname is searched
+ for first. If no compspec is found for the full pathname, an attempt
+ is made to find a compspec for the portion following the final slash.
+ If those searches to not result in a compspec, any compspec defined
with the --DD option to ccoommpplleettee is used as the default.
- Once a compspec has been found, it is used to generate the list of
- matching words. If a compspec is not found, the default bbaasshh comple-
+ Once a compspec has been found, it is used to generate the list of
+ matching words. If a compspec is not found, the default bbaasshh comple-
tion as described above under CCoommpplleettiinngg is performed.
- First, the actions specified by the compspec are used. Only matches
- which are prefixed by the word being completed are returned. When the
- --ff or --dd option is used for filename or directory name completion, the
+ First, the actions specified by the compspec are used. Only matches
+ which are prefixed by the word being completed are returned. When the
+ --ff or --dd option is used for filename or directory name completion, the
shell variable FFIIGGNNOORREE is used to filter the matches.
- Any completions specified by a pathname expansion pattern to the --GG
+ Any completions specified by a pathname expansion pattern to the --GG
option are generated next. The words generated by the pattern need not
- match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not
+ match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not
used to filter the matches, but the FFIIGGNNOORREE variable is used.
- Next, the string specified as the argument to the --WW option is consid-
- ered. The string is first split using the characters in the IIFFSS spe-
- cial variable as delimiters. Shell quoting is honored. Each word is
- then expanded using brace expansion, tilde expansion, parameter and
- variable expansion, command substitution, and arithmetic expansion, as
+ Next, the string specified as the argument to the --WW option is consid-
+ ered. The string is first split using the characters in the IIFFSS spe-
+ cial variable as delimiters. Shell quoting is honored. Each word is
+ then expanded using brace expansion, tilde expansion, parameter and
+ variable expansion, command substitution, and arithmetic expansion, as
described above under EEXXPPAANNSSIIOONN. The results are split using the rules
described above under WWoorrdd SSpplliittttiinngg. The results of the expansion are
prefix-matched against the word being completed, and the matching words
become the possible completions.
- After these matches have been generated, any shell function or command
- specified with the --FF and --CC options is invoked. When the command or
+ After these matches have been generated, any shell function or command
+ specified with the --FF and --CC options is invoked. When the command or
function is invoked, the CCOOMMPP__LLIINNEE, CCOOMMPP__PPOOIINNTT, CCOOMMPP__KKEEYY, and CCOOMMPP__TTYYPPEE
variables are assigned values as described above under SShheellll VVaarriiaabblleess.
- If a shell function is being invoked, the CCOOMMPP__WWOORRDDSS and CCOOMMPP__CCWWOORRDD
- variables are also set. When the function or command is invoked, the
- first argument is the name of the command whose arguments are being
- completed, the second argument is the word being completed, and the
- third argument is the word preceding the word being completed on the
- current command line. No filtering of the generated completions
- against the word being completed is performed; the function or command
+ If a shell function is being invoked, the CCOOMMPP__WWOORRDDSS and CCOOMMPP__CCWWOORRDD
+ variables are also set. When the function or command is invoked, the
+ first argument is the name of the command whose arguments are being
+ completed, the second argument is the word being completed, and the
+ third argument is the word preceding the word being completed on the
+ current command line. No filtering of the generated completions
+ against the word being completed is performed; the function or command
has complete freedom in generating the matches.
- Any function specified with --FF is invoked first. The function may use
- any of the shell facilities, including the ccoommppggeenn builtin described
- below, to generate the matches. It must put the possible completions
+ Any function specified with --FF is invoked first. The function may use
+ any of the shell facilities, including the ccoommppggeenn builtin described
+ below, to generate the matches. It must put the possible completions
in the CCOOMMPPRREEPPLLYY array variable.
- Next, any command specified with the --CC option is invoked in an envi-
- ronment equivalent to command substitution. It should print a list of
- completions, one per line, to the standard output. Backslash may be
+ Next, any command specified with the --CC option is invoked in an envi-
+ ronment equivalent to command substitution. It should print a list of
+ completions, one per line, to the standard output. Backslash may be
used to escape a newline, if necessary.
- After all of the possible completions are generated, any filter speci-
- fied with the --XX option is applied to the list. The filter is a pat-
- tern as used for pathname expansion; a && in the pattern is replaced
- with the text of the word being completed. A literal && may be escaped
- with a backslash; the backslash is removed before attempting a match.
- Any completion that matches the pattern will be removed from the list.
+ After all of the possible completions are generated, any filter speci-
+ fied with the --XX option is applied to the list. The filter is a pat-
+ tern as used for pathname expansion; a && in the pattern is replaced
+ with the text of the word being completed. A literal && may be escaped
+ with a backslash; the backslash is removed before attempting a match.
+ Any completion that matches the pattern will be removed from the list.
A leading !! negates the pattern; in this case any completion not match-
ing the pattern will be removed.
@@ -3430,44 +3437,44 @@ RREEAADDLLIINNEE
added to each member of the completion list, and the result is returned
to the readline completion code as the list of possible completions.
- If the previously-applied actions do not generate any matches, and the
- --oo ddiirrnnaammeess option was supplied to ccoommpplleettee when the compspec was
+ If the previously-applied actions do not generate any matches, and the
+ --oo ddiirrnnaammeess option was supplied to ccoommpplleettee when the compspec was
defined, directory name completion is attempted.
- If the --oo pplluussddiirrss option was supplied to ccoommpplleettee when the compspec
+ If the --oo pplluussddiirrss option was supplied to ccoommpplleettee when the compspec
was defined, directory name completion is attempted and any matches are
added to the results of the other actions.
- By default, if a compspec is found, whatever it generates is returned
- to the completion code as the full set of possible completions. The
+ By default, if a compspec is found, whatever it generates is returned
+ to the completion code as the full set of possible completions. The
default bbaasshh completions are not attempted, and the readline default of
filename completion is disabled. If the --oo bbaasshhddeeffaauulltt option was sup-
- plied to ccoommpplleettee when the compspec was defined, the bbaasshh default com-
+ plied to ccoommpplleettee when the compspec was defined, the bbaasshh default com-
pletions are attempted if the compspec generates no matches. If the --oo
- ddeeffaauulltt option was supplied to ccoommpplleettee when the compspec was defined,
- readline's default completion will be performed if the compspec (and,
+ ddeeffaauulltt option was supplied to ccoommpplleettee when the compspec was defined,
+ readline's default completion will be performed if the compspec (and,
if attempted, the default bbaasshh completions) generate no matches.
- When a compspec indicates that directory name completion is desired,
- the programmable completion functions force readline to append a slash
- to completed names which are symbolic links to directories, subject to
- the value of the mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the
+ When a compspec indicates that directory name completion is desired,
+ the programmable completion functions force readline to append a slash
+ to completed names which are symbolic links to directories, subject to
+ the value of the mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the
setting of the mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess readline variable.
- There is some support for dynamically modifying completions. This is
- most useful when used in combination with a default completion speci-
- fied with ccoommpplleettee --DD. It's possible for shell functions executed as
- completion handlers to indicate that completion should be retried by
- returning an exit status of 124. If a shell function returns 124, and
+ There is some support for dynamically modifying completions. This is
+ most useful when used in combination with a default completion speci-
+ fied with ccoommpplleettee --DD. It's possible for shell functions executed as
+ completion handlers to indicate that completion should be retried by
+ returning an exit status of 124. If a shell function returns 124, and
changes the compspec associated with the command on which completion is
- being attempted (supplied as the first argument when the function is
+ being attempted (supplied as the first argument when the function is
executed), programmable completion restarts from the beginning, with an
attempt to find a compspec for that command. This allows a set of com-
- pletions to be built dynamically as completion is attempted, rather
+ pletions to be built dynamically as completion is attempted, rather
than being loaded all at once.
- For instance, assuming that there is a library of compspecs, each kept
- in a file corresponding to the name of the command, the following
+ For instance, assuming that there is a library of compspecs, each kept
+ in a file corresponding to the name of the command, the following
default completion function would load completions dynamically:
_completion_loader()
@@ -3478,111 +3485,111 @@ RREEAADDLLIINNEE
HHIISSTTOORRYY
- When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell
+ When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell
provides access to the _c_o_m_m_a_n_d _h_i_s_t_o_r_y, the list of commands previously
- typed. The value of the HHIISSTTSSIIZZEE variable is used as the number of
+ typed. The value of the HHIISSTTSSIIZZEE variable is used as the number of
commands to save in a history list. The text of the last HHIISSTTSSIIZZEE com-
- mands (default 500) is saved. The shell stores each command in the
- history list prior to parameter and variable expansion (see EEXXPPAANNSSIIOONN
- above) but after history expansion is performed, subject to the values
+ mands (default 500) is saved. The shell stores each command in the
+ history list prior to parameter and variable expansion (see EEXXPPAANNSSIIOONN
+ above) but after history expansion is performed, subject to the values
of the shell variables HHIISSTTIIGGNNOORREE and HHIISSTTCCOONNTTRROOLL.
On startup, the history is initialized from the file named by the vari-
- able HHIISSTTFFIILLEE (default _~_/_._b_a_s_h___h_i_s_t_o_r_y). The file named by the value
- of HHIISSTTFFIILLEE is truncated, if necessary, to contain no more than the
- number of lines specified by the value of HHIISSTTFFIILLEESSIIZZEE. When the his-
- tory file is read, lines beginning with the history comment character
- followed immediately by a digit are interpreted as timestamps for the
- preceding history line. These timestamps are optionally displayed
- depending on the value of the HHIISSTTTTIIMMEEFFOORRMMAATT variable. When an inter-
- active shell exits, the last $$HHIISSTTSSIIZZEE lines are copied from the his-
+ able HHIISSTTFFIILLEE (default _~_/_._b_a_s_h___h_i_s_t_o_r_y). The file named by the value
+ of HHIISSTTFFIILLEE is truncated, if necessary, to contain no more than the
+ number of lines specified by the value of HHIISSTTFFIILLEESSIIZZEE. When the his-
+ tory file is read, lines beginning with the history comment character
+ followed immediately by a digit are interpreted as timestamps for the
+ preceding history line. These timestamps are optionally displayed
+ depending on the value of the HHIISSTTTTIIMMEEFFOORRMMAATT variable. When an inter-
+ active shell exits, the last $$HHIISSTTSSIIZZEE lines are copied from the his-
tory list to $$HHIISSTTFFIILLEE. If the hhiissttaappppeenndd shell option is enabled (see
the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the lines
- are appended to the history file, otherwise the history file is over-
- written. If HHIISSTTFFIILLEE is unset, or if the history file is unwritable,
- the history is not saved. If the variable is set, time stamps are
+ are appended to the history file, otherwise the history file is over-
+ written. If HHIISSTTFFIILLEE is unset, or if the history file is unwritable,
+ the history is not saved. If the variable is set, time stamps are
written to the history file, marked with the history comment character,
- so they may be preserved across shell sessions. This uses the history
- comment character to distinguish timestamps from other history lines.
- After saving the history, the history file is truncated to contain no
- more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE is not set, no trunca-
+ so they may be preserved across shell sessions. This uses the history
+ comment character to distinguish timestamps from other history lines.
+ After saving the history, the history file is truncated to contain no
+ more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE is not set, no trunca-
tion is performed.
- The builtin command ffcc (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) may be used
+ The builtin command ffcc (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) may be used
to list or edit and re-execute a portion of the history list. The hhiiss--
- ttoorryy builtin may be used to display or modify the history list and
- manipulate the history file. When using command-line editing, search
- commands are available in each editing mode that provide access to the
+ ttoorryy builtin may be used to display or modify the history list and
+ manipulate the history file. When using command-line editing, search
+ commands are available in each editing mode that provide access to the
history list.
- The shell allows control over which commands are saved on the history
+ The shell allows control over which commands are saved on the history
list. The HHIISSTTCCOONNTTRROOLL and HHIISSTTIIGGNNOORREE variables may be set to cause the
shell to save only a subset of the commands entered. The ccmmddhhiisstt shell
- option, if enabled, causes the shell to attempt to save each line of a
- multi-line command in the same history entry, adding semicolons where
- necessary to preserve syntactic correctness. The lliitthhiisstt shell option
- causes the shell to save the command with embedded newlines instead of
+ option, if enabled, causes the shell to attempt to save each line of a
+ multi-line command in the same history entry, adding semicolons where
+ necessary to preserve syntactic correctness. The lliitthhiisstt shell option
+ causes the shell to save the command with embedded newlines instead of
semicolons. See the description of the sshhoopptt builtin below under SSHHEELLLL
BBUUIILLTTIINN CCOOMMMMAANNDDSS for information on setting and unsetting shell
options.
HHIISSTTOORRYY EEXXPPAANNSSIIOONN
- The shell supports a history expansion feature that is similar to the
- history expansion in ccsshh.. This section describes what syntax features
- are available. This feature is enabled by default for interactive
+ The shell supports a history expansion feature that is similar to the
+ history expansion in ccsshh.. This section describes what syntax features
+ are available. This feature is enabled by default for interactive
shells, and can be disabled using the ++HH option to the sseett builtin com-
mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). Non-interactive shells do not
perform history expansion by default.
History expansions introduce words from the history list into the input
- stream, making it easy to repeat commands, insert the arguments to a
+ stream, making it easy to repeat commands, insert the arguments to a
previous command into the current input line, or fix errors in previous
commands quickly.
- History expansion is performed immediately after a complete line is
- read, before the shell breaks it into words. It takes place in two
- parts. The first is to determine which line from the history list to
+ History expansion is performed immediately after a complete line is
+ read, before the shell breaks it into words. It takes place in two
+ parts. The first is to determine which line from the history list to
use during substitution. The second is to select portions of that line
for inclusion into the current one. The line selected from the history
- is the _e_v_e_n_t, and the portions of that line that are acted upon are
- _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are available to manipulate the selected
+ is the _e_v_e_n_t, and the portions of that line that are acted upon are
+ _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are available to manipulate the selected
words. The line is broken into words in the same fashion as when read-
- ing input, so that several _m_e_t_a_c_h_a_r_a_c_t_e_r-separated words surrounded by
- quotes are considered one word. History expansions are introduced by
- the appearance of the history expansion character, which is !! by
- default. Only backslash (\\) and single quotes can quote the history
+ ing input, so that several _m_e_t_a_c_h_a_r_a_c_t_e_r-separated words surrounded by
+ quotes are considered one word. History expansions are introduced by
+ the appearance of the history expansion character, which is !! by
+ default. Only backslash (\\) and single quotes can quote the history
expansion character.
- Several characters inhibit history expansion if found immediately fol-
- lowing the history expansion character, even if it is unquoted: space,
- tab, newline, carriage return, and ==. If the eexxttgglloobb shell option is
+ Several characters inhibit history expansion if found immediately fol-
+ lowing the history expansion character, even if it is unquoted: space,
+ tab, newline, carriage return, and ==. If the eexxttgglloobb shell option is
enabled, (( will also inhibit expansion.
- Several shell options settable with the sshhoopptt builtin may be used to
- tailor the behavior of history expansion. If the hhiissttvveerriiffyy shell
+ Several shell options settable with the sshhoopptt builtin may be used to
+ tailor the behavior of history expansion. If the hhiissttvveerriiffyy shell
option is enabled (see the description of the sshhoopptt builtin), and rreeaadd--
lliinnee is being used, history substitutions are not immediately passed to
- the shell parser. Instead, the expanded line is reloaded into the
+ the shell parser. Instead, the expanded line is reloaded into the
rreeaaddlliinnee editing buffer for further modification. If rreeaaddlliinnee is being
used, and the hhiissttrreeeeddiitt shell option is enabled, a failed history sub-
stitution will be reloaded into the rreeaaddlliinnee editing buffer for correc-
- tion. The --pp option to the hhiissttoorryy builtin command may be used to see
+ tion. The --pp option to the hhiissttoorryy builtin command may be used to see
what a history expansion will do before using it. The --ss option to the
- hhiissttoorryy builtin may be used to add commands to the end of the history
- list without actually executing them, so that they are available for
+ hhiissttoorryy builtin may be used to add commands to the end of the history
+ list without actually executing them, so that they are available for
subsequent recall.
- The shell allows control of the various characters used by the history
+ The shell allows control of the various characters used by the history
expansion mechanism (see the description of hhiissttcchhaarrss above under SShheellll
- VVaarriiaabblleess). The shell uses the history comment character to mark his-
+ VVaarriiaabblleess). The shell uses the history comment character to mark his-
tory timestamps when writing the history file.
EEvveenntt DDeessiiggnnaattoorrss
- An event designator is a reference to a command line entry in the his-
+ An event designator is a reference to a command line entry in the his-
tory list.
- !! Start a history substitution, except when followed by a bbllaannkk,
- newline, carriage return, = or ( (when the eexxttgglloobb shell option
+ !! Start a history substitution, except when followed by a bbllaannkk,
+ newline, carriage return, = or ( (when the eexxttgglloobb shell option
is enabled using the sshhoopptt builtin).
!!_n Refer to command line _n.
!!--_n Refer to the current command line minus _n.
@@ -3590,21 +3597,21 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
!!_s_t_r_i_n_g
Refer to the most recent command starting with _s_t_r_i_n_g.
!!??_s_t_r_i_n_g[[??]]
- Refer to the most recent command containing _s_t_r_i_n_g. The trail-
+ Refer to the most recent command containing _s_t_r_i_n_g. The trail-
ing ?? may be omitted if _s_t_r_i_n_g is followed immediately by a new-
line.
^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^
- Quick substitution. Repeat the last command, replacing _s_t_r_i_n_g_1
+ Quick substitution. Repeat the last command, replacing _s_t_r_i_n_g_1
with _s_t_r_i_n_g_2. Equivalent to ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMoodd--
iiffiieerrss below).
!!## The entire command line typed so far.
WWoorrdd DDeessiiggnnaattoorrss
- Word designators are used to select desired words from the event. A ::
- separates the event specification from the word designator. It may be
- omitted if the word designator begins with a ^^, $$, **, --, or %%. Words
- are numbered from the beginning of the line, with the first word being
- denoted by 0 (zero). Words are inserted into the current line sepa-
+ Word designators are used to select desired words from the event. A ::
+ separates the event specification from the word designator. It may be
+ omitted if the word designator begins with a ^^, $$, **, --, or %%. Words
+ are numbered from the beginning of the line, with the first word being
+ denoted by 0 (zero). Words are inserted into the current line sepa-
rated by single spaces.
00 ((zzeerroo))
@@ -3614,17 +3621,17 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
$$ The last argument.
%% The word matched by the most recent `?_s_t_r_i_n_g?' search.
_x--_y A range of words; `-_y' abbreviates `0-_y'.
- ** All of the words but the zeroth. This is a synonym for `_1_-_$'.
- It is not an error to use ** if there is just one word in the
+ ** All of the words but the zeroth. This is a synonym for `_1_-_$'.
+ It is not an error to use ** if there is just one word in the
event; the empty string is returned in that case.
xx** Abbreviates _x_-_$.
xx-- Abbreviates _x_-_$ like xx**, but omits the last word.
- If a word designator is supplied without an event specification, the
+ If a word designator is supplied without an event specification, the
previous command is used as the event.
MMooddiiffiieerrss
- After the optional word designator, there may appear a sequence of one
+ After the optional word designator, there may appear a sequence of one
or more of the following modifiers, each preceded by a `:'.
hh Remove a trailing file name component, leaving only the head.
@@ -3633,74 +3640,74 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
ee Remove all but the trailing suffix.
pp Print the new command but do not execute it.
qq Quote the substituted words, escaping further substitutions.
- xx Quote the substituted words as with qq, but break into words at
+ xx Quote the substituted words as with qq, but break into words at
bbllaannkkss and newlines.
ss//_o_l_d//_n_e_w//
- Substitute _n_e_w for the first occurrence of _o_l_d in the event
- line. Any delimiter can be used in place of /. The final
- delimiter is optional if it is the last character of the event
- line. The delimiter may be quoted in _o_l_d and _n_e_w with a single
- backslash. If & appears in _n_e_w, it is replaced by _o_l_d. A sin-
- gle backslash will quote the &. If _o_l_d is null, it is set to
- the last _o_l_d substituted, or, if no previous history substitu-
+ Substitute _n_e_w for the first occurrence of _o_l_d in the event
+ line. Any delimiter can be used in place of /. The final
+ delimiter is optional if it is the last character of the event
+ line. The delimiter may be quoted in _o_l_d and _n_e_w with a single
+ backslash. If & appears in _n_e_w, it is replaced by _o_l_d. A sin-
+ gle backslash will quote the &. If _o_l_d is null, it is set to
+ the last _o_l_d substituted, or, if no previous history substitu-
tions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search.
&& Repeat the previous substitution.
gg Cause changes to be applied over the entire event line. This is
- used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'.
- If used with `::ss', any delimiter can be used in place of /, and
- the final delimiter is optional if it is the last character of
+ used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'.
+ If used with `::ss', any delimiter can be used in place of /, and
+ the final delimiter is optional if it is the last character of
the event line. An aa may be used as a synonym for gg.
- GG Apply the following `ss' modifier once to each word in the event
+ GG Apply the following `ss' modifier once to each word in the event
line.
SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Unless otherwise noted, each builtin command documented in this section
as accepting options preceded by -- accepts ---- to signify the end of the
- options. The ::, ttrruuee, ffaallssee, and tteesstt builtins do not accept options
+ options. The ::, ttrruuee, ffaallssee, and tteesstt builtins do not accept options
and do not treat ---- specially. The eexxiitt, llooggoouutt, bbrreeaakk, ccoonnttiinnuuee, lleett,
- and sshhiifftt builtins accept and process arguments beginning with -- with-
- out requiring ----. Other builtins that accept arguments but are not
- specified as accepting options interpret arguments beginning with -- as
+ and sshhiifftt builtins accept and process arguments beginning with -- with-
+ out requiring ----. Other builtins that accept arguments but are not
+ specified as accepting options interpret arguments beginning with -- as
invalid options and require ---- to prevent this interpretation.
:: [_a_r_g_u_m_e_n_t_s]
- No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s
- and performing any specified redirections. A zero exit code is
+ No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s
+ and performing any specified redirections. A zero exit code is
returned.
.. _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s]
ssoouurrccee _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s]
- Read and execute commands from _f_i_l_e_n_a_m_e in the current shell
- environment and return the exit status of the last command exe-
+ Read and execute commands from _f_i_l_e_n_a_m_e in the current shell
+ environment and return the exit status of the last command exe-
cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash, file
- names in PPAATTHH are used to find the directory containing _f_i_l_e_-
- _n_a_m_e. The file searched for in PPAATTHH need not be executable.
- When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is
- searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option
- to the sshhoopptt builtin command is turned off, the PPAATTHH is not
- searched. If any _a_r_g_u_m_e_n_t_s are supplied, they become the posi-
- tional parameters when _f_i_l_e_n_a_m_e is executed. Otherwise the
- positional parameters are unchanged. The return status is the
- status of the last command exited within the script (0 if no
- commands are executed), and false if _f_i_l_e_n_a_m_e is not found or
+ names in PPAATTHH are used to find the directory containing _f_i_l_e_-
+ _n_a_m_e. The file searched for in PPAATTHH need not be executable.
+ When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is
+ searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option
+ to the sshhoopptt builtin command is turned off, the PPAATTHH is not
+ searched. If any _a_r_g_u_m_e_n_t_s are supplied, they become the posi-
+ tional parameters when _f_i_l_e_n_a_m_e is executed. Otherwise the
+ positional parameters are unchanged. The return status is the
+ status of the last command exited within the script (0 if no
+ commands are executed), and false if _f_i_l_e_n_a_m_e is not found or
cannot be read.
aalliiaass [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
AAlliiaass with no arguments or with the --pp option prints the list of
- aliases in the form aalliiaass _n_a_m_e=_v_a_l_u_e on standard output. When
- arguments are supplied, an alias is defined for each _n_a_m_e whose
+ aliases in the form aalliiaass _n_a_m_e=_v_a_l_u_e on standard output. When
+ arguments are supplied, an alias is defined for each _n_a_m_e whose
_v_a_l_u_e is given. A trailing space in _v_a_l_u_e causes the next word
to be checked for alias substitution when the alias is expanded.
- For each _n_a_m_e in the argument list for which no _v_a_l_u_e is sup-
- plied, the name and value of the alias is printed. AAlliiaass
- returns true unless a _n_a_m_e is given for which no alias has been
+ For each _n_a_m_e in the argument list for which no _v_a_l_u_e is sup-
+ plied, the name and value of the alias is printed. AAlliiaass
+ returns true unless a _n_a_m_e is given for which no alias has been
defined.
bbgg [_j_o_b_s_p_e_c ...]
- Resume each suspended job _j_o_b_s_p_e_c in the background, as if it
+ Resume each suspended job _j_o_b_s_p_e_c in the background, as if it
had been started with &&. If _j_o_b_s_p_e_c is not present, the shell's
- notion of the _c_u_r_r_e_n_t _j_o_b is used. bbgg _j_o_b_s_p_e_c returns 0 unless
- run when job control is disabled or, when run with job control
- enabled, any specified _j_o_b_s_p_e_c was not found or was started
+ notion of the _c_u_r_r_e_n_t _j_o_b is used. bbgg _j_o_b_s_p_e_c returns 0 unless
+ run when job control is disabled or, when run with job control
+ enabled, any specified _j_o_b_s_p_e_c was not found or was started
without job control.
bbiinndd [--mm _k_e_y_m_a_p] [--llppssvvPPSSVV]
@@ -3709,28 +3716,28 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
bbiinndd [--mm _k_e_y_m_a_p] --xx _k_e_y_s_e_q:_s_h_e_l_l_-_c_o_m_m_a_n_d
bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_f_u_n_c_t_i_o_n_-_n_a_m_e
bbiinndd _r_e_a_d_l_i_n_e_-_c_o_m_m_a_n_d
- Display current rreeaaddlliinnee key and function bindings, bind a key
- sequence to a rreeaaddlliinnee function or macro, or set a rreeaaddlliinnee
- variable. Each non-option argument is a command as it would
- appear in _._i_n_p_u_t_r_c, but each binding or command must be passed
- as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
+ Display current rreeaaddlliinnee key and function bindings, bind a key
+ sequence to a rreeaaddlliinnee function or macro, or set a rreeaaddlliinnee
+ variable. Each non-option argument is a command as it would
+ appear in _._i_n_p_u_t_r_c, but each binding or command must be passed
+ as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
Options, if supplied, have the following meanings:
--mm _k_e_y_m_a_p
Use _k_e_y_m_a_p as the keymap to be affected by the subsequent
bindings. Acceptable _k_e_y_m_a_p names are _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_-
- _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d,
- and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
+ _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d,
+ and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d.
--ll List the names of all rreeaaddlliinnee functions.
- --pp Display rreeaaddlliinnee function names and bindings in such a
+ --pp Display rreeaaddlliinnee function names and bindings in such a
way that they can be re-read.
--PP List current rreeaaddlliinnee function names and bindings.
- --ss Display rreeaaddlliinnee key sequences bound to macros and the
- strings they output in such a way that they can be re-
+ --ss Display rreeaaddlliinnee key sequences bound to macros and the
+ strings they output in such a way that they can be re-
read.
- --SS Display rreeaaddlliinnee key sequences bound to macros and the
+ --SS Display rreeaaddlliinnee key sequences bound to macros and the
strings they output.
- --vv Display rreeaaddlliinnee variable names and values in such a way
+ --vv Display rreeaaddlliinnee variable names and values in such a way
that they can be re-read.
--VV List current rreeaaddlliinnee variable names and values.
--ff _f_i_l_e_n_a_m_e
@@ -3742,154 +3749,154 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--rr _k_e_y_s_e_q
Remove any current binding for _k_e_y_s_e_q.
--xx _k_e_y_s_e_q::_s_h_e_l_l_-_c_o_m_m_a_n_d
- Cause _s_h_e_l_l_-_c_o_m_m_a_n_d to be executed whenever _k_e_y_s_e_q is
- entered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets
- the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd--
- lliinnee line buffer and the RREEAADDLLIINNEE__PPOOIINNTT variable to the
+ Cause _s_h_e_l_l_-_c_o_m_m_a_n_d to be executed whenever _k_e_y_s_e_q is
+ entered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets
+ the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd--
+ lliinnee line buffer and the RREEAADDLLIINNEE__PPOOIINNTT variable to the
current location of the insertion point. If the executed
- command changes the value of RREEAADDLLIINNEE__LLIINNEE or RREEAADD--
- LLIINNEE__PPOOIINNTT, those new values will be reflected in the
+ command changes the value of RREEAADDLLIINNEE__LLIINNEE or RREEAADD--
+ LLIINNEE__PPOOIINNTT, those new values will be reflected in the
editing state.
- The return value is 0 unless an unrecognized option is given or
+ The return value is 0 unless an unrecognized option is given or
an error occurred.
bbrreeaakk [_n]
- Exit from within a ffoorr, wwhhiillee, uunnttiill, or sseelleecctt loop. If _n is
- specified, break _n levels. _n must be >= 1. If _n is greater
- than the number of enclosing loops, all enclosing loops are
- exited. The return value is 0 unless _n is not greater than or
+ Exit from within a ffoorr, wwhhiillee, uunnttiill, or sseelleecctt loop. If _n is
+ specified, break _n levels. _n must be >= 1. If _n is greater
+ than the number of enclosing loops, all enclosing loops are
+ exited. The return value is 0 unless _n is not greater than or
equal to 1.
bbuuiillttiinn _s_h_e_l_l_-_b_u_i_l_t_i_n [_a_r_g_u_m_e_n_t_s]
- Execute the specified shell builtin, passing it _a_r_g_u_m_e_n_t_s, and
+ Execute the specified shell builtin, passing it _a_r_g_u_m_e_n_t_s, and
return its exit status. This is useful when defining a function
- whose name is the same as a shell builtin, retaining the func-
+ whose name is the same as a shell builtin, retaining the func-
tionality of the builtin within the function. The ccdd builtin is
- commonly redefined this way. The return status is false if
+ commonly redefined this way. The return status is false if
_s_h_e_l_l_-_b_u_i_l_t_i_n is not a shell builtin command.
ccaalllleerr [_e_x_p_r]
Returns the context of any active subroutine call (a shell func-
- tion or a script executed with the .. or ssoouurrccee builtins. With-
+ tion or a script executed with the .. or ssoouurrccee builtins. With-
out _e_x_p_r, ccaalllleerr displays the line number and source filename of
- the current subroutine call. If a non-negative integer is sup-
+ the current subroutine call. If a non-negative integer is sup-
plied as _e_x_p_r, ccaalllleerr displays the line number, subroutine name,
- and source file corresponding to that position in the current
- execution call stack. This extra information may be used, for
- example, to print a stack trace. The current frame is frame 0.
- The return value is 0 unless the shell is not executing a sub-
- routine call or _e_x_p_r does not correspond to a valid position in
+ and source file corresponding to that position in the current
+ execution call stack. This extra information may be used, for
+ example, to print a stack trace. The current frame is frame 0.
+ The return value is 0 unless the shell is not executing a sub-
+ routine call or _e_x_p_r does not correspond to a valid position in
the call stack.
ccdd [--LL||--PP] [_d_i_r]
- Change the current directory to _d_i_r. The variable HHOOMMEE is the
- default _d_i_r. The variable CCDDPPAATTHH defines the search path for
- the directory containing _d_i_r. Alternative directory names in
- CCDDPPAATTHH are separated by a colon (:). A null directory name in
- CCDDPPAATTHH is the same as the current directory, i.e., ``..''. If
- _d_i_r begins with a slash (/), then CCDDPPAATTHH is not used. The --PP
- option says to use the physical directory structure instead of
- following symbolic links (see also the --PP option to the sseett
+ Change the current directory to _d_i_r. The variable HHOOMMEE is the
+ default _d_i_r. The variable CCDDPPAATTHH defines the search path for
+ the directory containing _d_i_r. Alternative directory names in
+ CCDDPPAATTHH are separated by a colon (:). A null directory name in
+ CCDDPPAATTHH is the same as the current directory, i.e., ``..''. If
+ _d_i_r begins with a slash (/), then CCDDPPAATTHH is not used. The --PP
+ option says to use the physical directory structure instead of
+ following symbolic links (see also the --PP option to the sseett
builtin command); the --LL option forces symbolic links to be fol-
- lowed. An argument of -- is equivalent to $$OOLLDDPPWWDD. If a non-
- empty directory name from CCDDPPAATTHH is used, or if -- is the first
- argument, and the directory change is successful, the absolute
+ lowed. An argument of -- is equivalent to $$OOLLDDPPWWDD. If a non-
+ empty directory name from CCDDPPAATTHH is used, or if -- is the first
+ argument, and the directory change is successful, the absolute
pathname of the new working directory is written to the standard
- output. The return value is true if the directory was success-
+ output. The return value is true if the directory was success-
fully changed; false otherwise.
ccoommmmaanndd [--ppVVvv] _c_o_m_m_a_n_d [_a_r_g ...]
- Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
- lookup. Only builtin commands or commands found in the PPAATTHH are
- executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
- performed using a default value for PPAATTHH that is guaranteed to
- find all of the standard utilities. If either the --VV or --vv
+ Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
+ lookup. Only builtin commands or commands found in the PPAATTHH are
+ executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
+ performed using a default value for PPAATTHH that is guaranteed to
+ find all of the standard utilities. If either the --VV or --vv
option is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
- option causes a single word indicating the command or file name
+ option causes a single word indicating the command or file name
used to invoke _c_o_m_m_a_n_d to be displayed; the --VV option produces a
- more verbose description. If the --VV or --vv option is supplied,
- the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
+ more verbose description. If the --VV or --vv option is supplied,
+ the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
neither option is supplied and an error occurred or _c_o_m_m_a_n_d can-
- not be found, the exit status is 127. Otherwise, the exit sta-
+ not be found, the exit status is 127. Otherwise, the exit sta-
tus of the ccoommmmaanndd builtin is the exit status of _c_o_m_m_a_n_d.
ccoommppggeenn [_o_p_t_i_o_n] [_w_o_r_d]
- Generate possible completion matches for _w_o_r_d according to the
- _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
- builtin with the exception of --pp and --rr, and write the matches
- to the standard output. When using the --FF or --CC options, the
- various shell variables set by the programmable completion
+ Generate possible completion matches for _w_o_r_d according to the
+ _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
+ builtin with the exception of --pp and --rr, and write the matches
+ to the standard output. When using the --FF or --CC options, the
+ various shell variables set by the programmable completion
facilities, while available, will not have useful values.
- The matches will be generated in the same way as if the pro-
- grammable completion code had generated them directly from a
+ The matches will be generated in the same way as if the pro-
+ grammable completion code had generated them directly from a
completion specification with the same flags. If _w_o_r_d is speci-
fied, only those completions matching _w_o_r_d will be displayed.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
or no matches were generated.
- ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
+ ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
_p_a_t] [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d]
[--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_f_i_x] _n_a_m_e [_n_a_m_e _._._.]
ccoommpplleettee --pprr [--DDEE] [_n_a_m_e ...]
- Specify how arguments to each _n_a_m_e should be completed. If the
- --pp option is supplied, or if no options are supplied, existing
- completion specifications are printed in a way that allows them
+ Specify how arguments to each _n_a_m_e should be completed. If the
+ --pp option is supplied, or if no options are supplied, existing
+ completion specifications are printed in a way that allows them
to be reused as input. The --rr option removes a completion spec-
- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
+ ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
pletion specifications. The --DD option indicates that the
- remaining options and actions should apply to the ``default''
- command completion; that is, completion attempted on a command
- for which no completion has previously been defined. The --EE
- option indicates that the remaining options and actions should
- apply to ``empty'' command completion; that is, completion
+ remaining options and actions should apply to the ``default''
+ command completion; that is, completion attempted on a command
+ for which no completion has previously been defined. The --EE
+ option indicates that the remaining options and actions should
+ apply to ``empty'' command completion; that is, completion
attempted on a blank line.
- The process of applying these completion specifications when
- word completion is attempted is described above under PPrroo--
+ The process of applying these completion specifications when
+ word completion is attempted is described above under PPrroo--
ggrraammmmaabbllee CCoommpplleettiioonn.
- Other options, if specified, have the following meanings. The
- arguments to the --GG, --WW, and --XX options (and, if necessary, the
- --PP and --SS options) should be quoted to protect them from expan-
+ Other options, if specified, have the following meanings. The
+ arguments to the --GG, --WW, and --XX options (and, if necessary, the
+ --PP and --SS options) should be quoted to protect them from expan-
sion before the ccoommpplleettee builtin is invoked.
--oo _c_o_m_p_-_o_p_t_i_o_n
- The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
- spec's behavior beyond the simple generation of comple-
+ The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
+ spec's behavior beyond the simple generation of comple-
tions. _c_o_m_p_-_o_p_t_i_o_n may be one of:
bbaasshhddeeffaauulltt
Perform the rest of the default bbaasshh completions
if the compspec generates no matches.
- ddeeffaauulltt Use readline's default filename completion if
+ ddeeffaauulltt Use readline's default filename completion if
the compspec generates no matches.
ddiirrnnaammeess
- Perform directory name completion if the comp-
+ Perform directory name completion if the comp-
spec generates no matches.
ffiilleennaammeess
- Tell readline that the compspec generates file-
- names, so it can perform any filename-specific
- processing (like adding a slash to directory
- names, quoting special characters, or suppress-
- ing trailing spaces). Intended to be used with
+ Tell readline that the compspec generates file-
+ names, so it can perform any filename-specific
+ processing (like adding a slash to directory
+ names, quoting special characters, or suppress-
+ ing trailing spaces). Intended to be used with
shell functions.
- nnoossppaaccee Tell readline not to append a space (the
- default) to words completed at the end of the
+ nnoossppaaccee Tell readline not to append a space (the
+ default) to words completed at the end of the
line.
pplluussddiirrss
- After any matches defined by the compspec are
- generated, directory name completion is
- attempted and any matches are added to the
+ After any matches defined by the compspec are
+ generated, directory name completion is
+ attempted and any matches are added to the
results of the other actions.
--AA _a_c_t_i_o_n
- The _a_c_t_i_o_n may be one of the following to generate a
+ The _a_c_t_i_o_n may be one of the following to generate a
list of possible completions:
aalliiaass Alias names. May also be specified as --aa.
aarrrraayyvvaarr
Array variable names.
bbiinnddiinngg RReeaaddlliinnee key binding names.
- bbuuiillttiinn Names of shell builtin commands. May also be
+ bbuuiillttiinn Names of shell builtin commands. May also be
specified as --bb.
ccoommmmaanndd Command names. May also be specified as --cc.
ddiirreeccttoorryy
@@ -3897,7 +3904,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ddiissaabblleedd
Names of disabled shell builtins.
eennaabblleedd Names of enabled shell builtins.
- eexxppoorrtt Names of exported shell variables. May also be
+ eexxppoorrtt Names of exported shell variables. May also be
specified as --ee.
ffiillee File names. May also be specified as --ff.
ffuunnccttiioonn
@@ -3906,17 +3913,17 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
hheellppttooppiicc
Help topics as accepted by the hheellpp builtin.
hhoossttnnaammee
- Hostnames, as taken from the file specified by
+ Hostnames, as taken from the file specified by
the HHOOSSTTFFIILLEE shell variable.
- jjoobb Job names, if job control is active. May also
+ jjoobb Job names, if job control is active. May also
be specified as --jj.
- kkeeyywwoorrdd Shell reserved words. May also be specified as
+ kkeeyywwoorrdd Shell reserved words. May also be specified as
--kk.
rruunnnniinngg Names of running jobs, if job control is active.
sseerrvviiccee Service names. May also be specified as --ss.
- sseettoopptt Valid arguments for the --oo option to the sseett
+ sseettoopptt Valid arguments for the --oo option to the sseett
builtin.
- sshhoopptt Shell option names as accepted by the sshhoopptt
+ sshhoopptt Shell option names as accepted by the sshhoopptt
builtin.
ssiiggnnaall Signal names.
ssttooppppeedd Names of stopped jobs, if job control is active.
@@ -3925,170 +3932,170 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Names of all shell variables. May also be spec-
ified as --vv.
--GG _g_l_o_b_p_a_t
- The pathname expansion pattern _g_l_o_b_p_a_t is expanded to
+ The pathname expansion pattern _g_l_o_b_p_a_t is expanded to
generate the possible completions.
--WW _w_o_r_d_l_i_s_t
- The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS
- special variable as delimiters, and each resultant word
- is expanded. The possible completions are the members
- of the resultant list which match the word being com-
+ The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS
+ special variable as delimiters, and each resultant word
+ is expanded. The possible completions are the members
+ of the resultant list which match the word being com-
pleted.
--CC _c_o_m_m_a_n_d
- _c_o_m_m_a_n_d is executed in a subshell environment, and its
+ _c_o_m_m_a_n_d is executed in a subshell environment, and its
output is used as the possible completions.
--FF _f_u_n_c_t_i_o_n
- The shell function _f_u_n_c_t_i_o_n is executed in the current
- shell environment. When it finishes, the possible com-
- pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY
+ The shell function _f_u_n_c_t_i_o_n is executed in the current
+ shell environment. When it finishes, the possible com-
+ pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY
array variable.
--XX _f_i_l_t_e_r_p_a_t
- _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion.
+ _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion.
It is applied to the list of possible completions gener-
- ated by the preceding options and arguments, and each
- completion matching _f_i_l_t_e_r_p_a_t is removed from the list.
- A leading !! in _f_i_l_t_e_r_p_a_t negates the pattern; in this
- case, any completion not matching _f_i_l_t_e_r_p_a_t is removed.
+ ated by the preceding options and arguments, and each
+ completion matching _f_i_l_t_e_r_p_a_t is removed from the list.
+ A leading !! in _f_i_l_t_e_r_p_a_t negates the pattern; in this
+ case, any completion not matching _f_i_l_t_e_r_p_a_t is removed.
--PP _p_r_e_f_i_x
- _p_r_e_f_i_x is added at the beginning of each possible com-
+ _p_r_e_f_i_x is added at the beginning of each possible com-
pletion after all other options have been applied.
--SS _s_u_f_f_i_x
_s_u_f_f_i_x is appended to each possible completion after all
other options have been applied.
- The return value is true unless an invalid option is supplied,
- an option other than --pp or --rr is supplied without a _n_a_m_e argu-
- ment, an attempt is made to remove a completion specification
+ The return value is true unless an invalid option is supplied,
+ an option other than --pp or --rr is supplied without a _n_a_m_e argu-
+ ment, an attempt is made to remove a completion specification
for a _n_a_m_e for which no specification exists, or an error occurs
adding a completion specification.
ccoommppoopptt [--oo _o_p_t_i_o_n] [--DDEE] [++oo _o_p_t_i_o_n] [_n_a_m_e]
Modify completion options for each _n_a_m_e according to the
- _o_p_t_i_o_ns, or for the currently-execution completion if no _n_a_m_es
- are supplied. If no _o_p_t_i_o_ns are given, display the completion
- options for each _n_a_m_e or the current completion. The possible
- values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin
- described above. The --DD option indicates that the remaining
+ _o_p_t_i_o_ns, or for the currently-execution completion if no _n_a_m_es
+ are supplied. If no _o_p_t_i_o_ns are given, display the completion
+ options for each _n_a_m_e or the current completion. The possible
+ values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin
+ described above. The --DD option indicates that the remaining
options should apply to the ``default'' command completion; that
- is, completion attempted on a command for which no completion
- has previously been defined. The --EE option indicates that the
- remaining options should apply to ``empty'' command completion;
+ is, completion attempted on a command for which no completion
+ has previously been defined. The --EE option indicates that the
+ remaining options should apply to ``empty'' command completion;
that is, completion attempted on a blank line.
- The return value is true unless an invalid option is supplied, an
- attempt is made to modify the options for a _n_a_m_e for which no comple-
+ The return value is true unless an invalid option is supplied, an
+ attempt is made to modify the options for a _n_a_m_e for which no comple-
tion specification exists, or an output error occurs.
ccoonnttiinnuuee [_n]
Resume the next iteration of the enclosing ffoorr, wwhhiillee, uunnttiill, or
- sseelleecctt loop. If _n is specified, resume at the _nth enclosing
- loop. _n must be >= 1. If _n is greater than the number of
- enclosing loops, the last enclosing loop (the ``top-level''
+ sseelleecctt loop. If _n is specified, resume at the _nth enclosing
+ loop. _n must be >= 1. If _n is greater than the number of
+ enclosing loops, the last enclosing loop (the ``top-level''
loop) is resumed. The return value is 0 unless _n is not greater
than or equal to 1.
ddeeccllaarree [--aaAAffFFiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
ttyyppeesseett [--aaAAffFFiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
- Declare variables and/or give them attributes. If no _n_a_m_es are
- given then display the values of variables. The --pp option will
+ Declare variables and/or give them attributes. If no _n_a_m_es are
+ given then display the values of variables. The --pp option will
display the attributes and values of each _n_a_m_e. When --pp is used
with _n_a_m_e arguments, additional options are ignored. When --pp is
- supplied without _n_a_m_e arguments, it will display the attributes
- and values of all variables having the attributes specified by
- the additional options. If no other options are supplied with
- --pp, ddeeccllaarree will display the attributes and values of all shell
- variables. The --ff option will restrict the display to shell
+ supplied without _n_a_m_e arguments, it will display the attributes
+ and values of all variables having the attributes specified by
+ the additional options. If no other options are supplied with
+ --pp, ddeeccllaarree will display the attributes and values of all shell
+ variables. The --ff option will restrict the display to shell
functions. The --FF option inhibits the display of function defi-
- nitions; only the function name and attributes are printed. If
- the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source
+ nitions; only the function name and attributes are printed. If
+ the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source
file name and line number where the function is defined are dis-
- played as well. The --FF option implies --ff. The following
- options can be used to restrict output to variables with the
+ played as well. The --FF option implies --ff. The following
+ options can be used to restrict output to variables with the
specified attribute or to give variables attributes:
- --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss
+ --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss
above).
- --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss
+ --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss
above).
--ff Use function names only.
--ii The variable is treated as an integer; arithmetic evalua-
- tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN )) is performed when the
+ tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN )) is performed when the
variable is assigned a value.
- --ll When the variable is assigned a value, all upper-case
- characters are converted to lower-case. The upper-case
+ --ll When the variable is assigned a value, all upper-case
+ characters are converted to lower-case. The upper-case
attribute is disabled.
--rr Make _n_a_m_es readonly. These names cannot then be assigned
values by subsequent assignment statements or unset.
- --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions
- inherit the DDEEBBUUGG and RREETTUURRNN traps from the calling
- shell. The trace attribute has no special meaning for
+ --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions
+ inherit the DDEEBBUUGG and RREETTUURRNN traps from the calling
+ shell. The trace attribute has no special meaning for
variables.
- --uu When the variable is assigned a value, all lower-case
- characters are converted to upper-case. The lower-case
+ --uu When the variable is assigned a value, all lower-case
+ characters are converted to upper-case. The lower-case
attribute is disabled.
- --xx Mark _n_a_m_es for export to subsequent commands via the
+ --xx Mark _n_a_m_es for export to subsequent commands via the
environment.
- Using `+' instead of `-' turns off the attribute instead, with
+ Using `+' instead of `-' turns off the attribute instead, with
the exceptions that ++aa may not be used to destroy an array vari-
- able and ++rr wwiillll nnoott rreemmoovvee tthhee rreeaaddoonnllyy aattttrriibbuuttee.. WWhheenn uusseedd
+ able and ++rr wwiillll nnoott rreemmoovvee tthhee rreeaaddoonnllyy aattttrriibbuuttee.. WWhheenn uusseedd
iinn aa ffuunnccttiioonn,, mmaakkeess eeaacchh _n_a_m_e llooccaall,, aass wwiitthh tthhee llooccaall command.
If a variable name is followed by =_v_a_l_u_e, the value of the vari-
- able is set to _v_a_l_u_e. The return value is 0 unless an invalid
- option is encountered, an attempt is made to define a function
- using ``-f foo=bar'', an attempt is made to assign a value to a
- readonly variable, an attempt is made to assign a value to an
+ able is set to _v_a_l_u_e. The return value is 0 unless an invalid
+ option is encountered, an attempt is made to define a function
+ using ``-f foo=bar'', an attempt is made to assign a value to a
+ readonly variable, an attempt is made to assign a value to an
array variable without using the compound assignment syntax (see
- AArrrraayyss above), one of the _n_a_m_e_s is not a valid shell variable
+ AArrrraayyss above), one of the _n_a_m_e_s is not a valid shell variable
name, an attempt is made to turn off readonly status for a read-
- only variable, an attempt is made to turn off array status for
- an array variable, or an attempt is made to display a non-exis-
+ only variable, an attempt is made to turn off array status for
+ an array variable, or an attempt is made to display a non-exis-
tent function with --ff.
ddiirrss [[++_n]] [[--_n]] [[--ccppllvv]]
- Without options, displays the list of currently remembered
- directories. The default display is on a single line with
- directory names separated by spaces. Directories are added to
- the list with the ppuusshhdd command; the ppooppdd command removes
+ Without options, displays the list of currently remembered
+ directories. The default display is on a single line with
+ directory names separated by spaces. Directories are added to
+ the list with the ppuusshhdd command; the ppooppdd command removes
entries from the list.
++_n Displays the _nth entry counting from the left of the list
shown by ddiirrss when invoked without options, starting with
zero.
- --_n Displays the _nth entry counting from the right of the
+ --_n Displays the _nth entry counting from the right of the
list shown by ddiirrss when invoked without options, starting
with zero.
--cc Clears the directory stack by deleting all of the
entries.
- --ll Produces a longer listing; the default listing format
+ --ll Produces a longer listing; the default listing format
uses a tilde to denote the home directory.
--pp Print the directory stack with one entry per line.
- --vv Print the directory stack with one entry per line, pre-
+ --vv Print the directory stack with one entry per line, pre-
fixing each entry with its index in the stack.
- The return value is 0 unless an invalid option is supplied or _n
+ The return value is 0 unless an invalid option is supplied or _n
indexes beyond the end of the directory stack.
ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ...]
- Without options, each _j_o_b_s_p_e_c is removed from the table of
- active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nnoorr --rr
- iiss ssuupppplliieedd,, tthhee sshheellll''ss nnoottiioonn ooff tthhee _c_u_r_r_e_n_t _j_o_b iiss uusseedd.. IIff
+ Without options, each _j_o_b_s_p_e_c is removed from the table of
+ active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nnoorr --rr
+ iiss ssuupppplliieedd,, tthhee sshheellll''ss nnoottiioonn ooff tthhee _c_u_r_r_e_n_t _j_o_b iiss uusseedd.. IIff
tthhee --hh ooppttiioonn iiss ggiivveenn,, eeaacchh _j_o_b_s_p_e_c is not removed from the ta-
- ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the
- shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither
- the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used.
+ ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the
+ shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither
+ the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used.
If no _j_o_b_s_p_e_c is supplied, the --aa option means to remove or mark
- all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts
- operation to running jobs. The return value is 0 unless a _j_o_b_-
+ all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts
+ operation to running jobs. The return value is 0 unless a _j_o_b_-
_s_p_e_c does not specify a valid job.
eecchhoo [--nneeEE] [_a_r_g ...]
- Output the _a_r_gs, separated by spaces, followed by a newline.
+ Output the _a_r_gs, separated by spaces, followed by a newline.
The return status is always 0. If --nn is specified, the trailing
- newline is suppressed. If the --ee option is given, interpreta-
- tion of the following backslash-escaped characters is enabled.
- The --EE option disables the interpretation of these escape char-
- acters, even on systems where they are interpreted by default.
- The xxppgg__eecchhoo shell option may be used to dynamically determine
- whether or not eecchhoo expands these escape characters by default.
- eecchhoo does not interpret ---- to mean the end of options. eecchhoo
+ newline is suppressed. If the --ee option is given, interpreta-
+ tion of the following backslash-escaped characters is enabled.
+ The --EE option disables the interpretation of these escape char-
+ acters, even on systems where they are interpreted by default.
+ The xxppgg__eecchhoo shell option may be used to dynamically determine
+ whether or not eecchhoo expands these escape characters by default.
+ eecchhoo does not interpret ---- to mean the end of options. eecchhoo
interprets the following escape sequences:
\\aa alert (bell)
\\bb backspace
@@ -4100,184 +4107,184 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
\\tt horizontal tab
\\vv vertical tab
\\\\ backslash
- \\00_n_n_n the eight-bit character whose value is the octal value
+ \\00_n_n_n the eight-bit character whose value is the octal value
_n_n_n (zero to three octal digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...]
- Enable and disable builtin shell commands. Disabling a builtin
+ Enable and disable builtin shell commands. Disabling a builtin
allows a disk command which has the same name as a shell builtin
- to be executed without specifying a full pathname, even though
- the shell normally searches for builtins before disk commands.
- If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are
+ to be executed without specifying a full pathname, even though
+ the shell normally searches for builtins before disk commands.
+ If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are
enabled. For example, to use the tteesstt binary found via the PPAATTHH
- instead of the shell builtin version, run ``enable -n test''.
- The --ff option means to load the new builtin command _n_a_m_e from
+ instead of the shell builtin version, run ``enable -n test''.
+ The --ff option means to load the new builtin command _n_a_m_e from
shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading.
- The --dd option will delete a builtin previously loaded with --ff.
+ The --dd option will delete a builtin previously loaded with --ff.
If no _n_a_m_e arguments are given, or if the --pp option is supplied,
a list of shell builtins is printed. With no other option argu-
- ments, the list consists of all enabled shell builtins. If --nn
- is supplied, only disabled builtins are printed. If --aa is sup-
- plied, the list printed includes all builtins, with an indica-
- tion of whether or not each is enabled. If --ss is supplied, the
- output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
- value is 0 unless a _n_a_m_e is not a shell builtin or there is an
+ ments, the list consists of all enabled shell builtins. If --nn
+ is supplied, only disabled builtins are printed. If --aa is sup-
+ plied, the list printed includes all builtins, with an indica-
+ tion of whether or not each is enabled. If --ss is supplied, the
+ output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
+ value is 0 unless a _n_a_m_e is not a shell builtin or there is an
error loading a new builtin from a shared object.
eevvaall [_a_r_g ...]
- The _a_r_gs are read and concatenated together into a single com-
- mand. This command is then read and executed by the shell, and
- its exit status is returned as the value of eevvaall. If there are
+ The _a_r_gs are read and concatenated together into a single com-
+ mand. This command is then read and executed by the shell, and
+ its exit status is returned as the value of eevvaall. If there are
no _a_r_g_s, or only null arguments, eevvaall returns 0.
eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]]
- If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
- is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
+ If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
+ is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
the --ll option is supplied, the shell places a dash at the begin-
- ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what
+ ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what
_l_o_g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with
- an empty environment. If --aa is supplied, the shell passes _n_a_m_e
+ an empty environment. If --aa is supplied, the shell passes _n_a_m_e
as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can-
- not be executed for some reason, a non-interactive shell exits,
- unless the shell option eexxeeccffaaiill is enabled, in which case it
- returns failure. An interactive shell returns failure if the
+ not be executed for some reason, a non-interactive shell exits,
+ unless the shell option eexxeeccffaaiill is enabled, in which case it
+ returns failure. An interactive shell returns failure if the
file cannot be executed. If _c_o_m_m_a_n_d is not specified, any redi-
rections take effect in the current shell, and the return status
- is 0. If there is a redirection error, the return status is 1.
+ is 0. If there is a redirection error, the return status is 1.
eexxiitt [_n]
- Cause the shell to exit with a status of _n. If _n is omitted,
+ Cause the shell to exit with a status of _n. If _n is omitted,
the exit status is that of the last command executed. A trap on
EEXXIITT is executed before the shell terminates.
eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ...
eexxppoorrtt --pp
- The supplied _n_a_m_e_s are marked for automatic export to the envi-
- ronment of subsequently executed commands. If the --ff option is
- given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
- if the --pp option is supplied, a list of all names that are
- exported in this shell is printed. The --nn option causes the
- export property to be removed from each _n_a_m_e. If a variable
- name is followed by =_w_o_r_d, the value of the variable is set to
- _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid
- option is encountered, one of the _n_a_m_e_s is not a valid shell
+ The supplied _n_a_m_e_s are marked for automatic export to the envi-
+ ronment of subsequently executed commands. If the --ff option is
+ given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
+ if the --pp option is supplied, a list of all names that are
+ exported in this shell is printed. The --nn option causes the
+ export property to be removed from each _n_a_m_e. If a variable
+ name is followed by =_w_o_r_d, the value of the variable is set to
+ _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid
+ option is encountered, one of the _n_a_m_e_s is not a valid shell
variable name, or --ff is supplied with a _n_a_m_e that is not a func-
tion.
ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t]
ffcc --ss [_p_a_t=_r_e_p] [_c_m_d]
- Fix Command. In the first form, a range of commands from _f_i_r_s_t
- to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may
- be specified as a string (to locate the last command beginning
- with that string) or as a number (an index into the history
+ Fix Command. In the first form, a range of commands from _f_i_r_s_t
+ to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may
+ be specified as a string (to locate the last command beginning
+ with that string) or as a number (an index into the history
list, where a negative number is used as an offset from the cur-
rent command number). If _l_a_s_t is not specified it is set to the
- current command for listing (so that ``fc -l -10'' prints the
+ current command for listing (so that ``fc -l -10'' prints the
last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not spec-
- ified it is set to the previous command for editing and -16 for
+ ified it is set to the previous command for editing and -16 for
listing.
- The --nn option suppresses the command numbers when listing. The
- --rr option reverses the order of the commands. If the --ll option
- is given, the commands are listed on standard output. Other-
- wise, the editor given by _e_n_a_m_e is invoked on a file containing
- those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT
- variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set.
- If neither variable is set, _v_i is used. When editing is com-
+ The --nn option suppresses the command numbers when listing. The
+ --rr option reverses the order of the commands. If the --ll option
+ is given, the commands are listed on standard output. Other-
+ wise, the editor given by _e_n_a_m_e is invoked on a file containing
+ those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT
+ variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set.
+ If neither variable is set, _v_i is used. When editing is com-
plete, the edited commands are echoed and executed.
- In the second form, _c_o_m_m_a_n_d is re-executed after each instance
- of _p_a_t is replaced by _r_e_p. A useful alias to use with this is
- ``r="fc -s"'', so that typing ``r cc'' runs the last command
+ In the second form, _c_o_m_m_a_n_d is re-executed after each instance
+ of _p_a_t is replaced by _r_e_p. A useful alias to use with this is
+ ``r="fc -s"'', so that typing ``r cc'' runs the last command
beginning with ``cc'' and typing ``r'' re-executes the last com-
mand.
- If the first form is used, the return value is 0 unless an
- invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history
- lines out of range. If the --ee option is supplied, the return
+ If the first form is used, the return value is 0 unless an
+ invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history
+ lines out of range. If the --ee option is supplied, the return
value is the value of the last command executed or failure if an
error occurs with the temporary file of commands. If the second
- form is used, the return status is that of the command re-exe-
- cuted, unless _c_m_d does not specify a valid history line, in
+ form is used, the return status is that of the command re-exe-
+ cuted, unless _c_m_d does not specify a valid history line, in
which case ffcc returns failure.
ffgg [_j_o_b_s_p_e_c]
- Resume _j_o_b_s_p_e_c in the foreground, and make it the current job.
+ Resume _j_o_b_s_p_e_c in the foreground, and make it the current job.
If _j_o_b_s_p_e_c is not present, the shell's notion of the _c_u_r_r_e_n_t _j_o_b
- is used. The return value is that of the command placed into
- the foreground, or failure if run when job control is disabled
+ is used. The return value is that of the command placed into
+ the foreground, or failure if run when job control is disabled
or, when run with job control enabled, if _j_o_b_s_p_e_c does not spec-
- ify a valid job or _j_o_b_s_p_e_c specifies a job that was started
+ ify a valid job or _j_o_b_s_p_e_c specifies a job that was started
without job control.
ggeettooppttss _o_p_t_s_t_r_i_n_g _n_a_m_e [_a_r_g_s]
- ggeettooppttss is used by shell procedures to parse positional parame-
- ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog-
- nized; if a character is followed by a colon, the option is
- expected to have an argument, which should be separated from it
- by white space. The colon and question mark characters may not
- be used as option characters. Each time it is invoked, ggeettooppttss
- places the next option in the shell variable _n_a_m_e, initializing
+ ggeettooppttss is used by shell procedures to parse positional parame-
+ ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog-
+ nized; if a character is followed by a colon, the option is
+ expected to have an argument, which should be separated from it
+ by white space. The colon and question mark characters may not
+ be used as option characters. Each time it is invoked, ggeettooppttss
+ places the next option in the shell variable _n_a_m_e, initializing
_n_a_m_e if it does not exist, and the index of the next argument to
be processed into the variable OOPPTTIINNDD. OOPPTTIINNDD is initialized to
- 1 each time the shell or a shell script is invoked. When an
- option requires an argument, ggeettooppttss places that argument into
- the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automati-
- cally; it must be manually reset between multiple calls to
+ 1 each time the shell or a shell script is invoked. When an
+ option requires an argument, ggeettooppttss places that argument into
+ the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automati-
+ cally; it must be manually reset between multiple calls to
ggeettooppttss within the same shell invocation if a new set of parame-
ters is to be used.
- When the end of options is encountered, ggeettooppttss exits with a
- return value greater than zero. OOPPTTIINNDD is set to the index of
+ When the end of options is encountered, ggeettooppttss exits with a
+ return value greater than zero. OOPPTTIINNDD is set to the index of
the first non-option argument, and nnaammee is set to ?.
- ggeettooppttss normally parses the positional parameters, but if more
+ ggeettooppttss normally parses the positional parameters, but if more
arguments are given in _a_r_g_s, ggeettooppttss parses those instead.
- ggeettooppttss can report errors in two ways. If the first character
- of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In
- normal operation diagnostic messages are printed when invalid
- options or missing option arguments are encountered. If the
- variable OOPPTTEERRRR is set to 0, no error messages will be dis-
+ ggeettooppttss can report errors in two ways. If the first character
+ of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In
+ normal operation diagnostic messages are printed when invalid
+ options or missing option arguments are encountered. If the
+ variable OOPPTTEERRRR is set to 0, no error messages will be dis-
played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon.
If an invalid option is seen, ggeettooppttss places ? into _n_a_m_e and, if
- not silent, prints an error message and unsets OOPPTTAARRGG. If
- ggeettooppttss is silent, the option character found is placed in
+ not silent, prints an error message and unsets OOPPTTAARRGG. If
+ ggeettooppttss is silent, the option character found is placed in
OOPPTTAARRGG and no diagnostic message is printed.
- If a required argument is not found, and ggeettooppttss is not silent,
- a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a
- diagnostic message is printed. If ggeettooppttss is silent, then a
- colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option
+ If a required argument is not found, and ggeettooppttss is not silent,
+ a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a
+ diagnostic message is printed. If ggeettooppttss is silent, then a
+ colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option
character found.
- ggeettooppttss returns true if an option, specified or unspecified, is
+ ggeettooppttss returns true if an option, specified or unspecified, is
found. It returns false if the end of options is encountered or
an error occurs.
hhaasshh [--llrr] [--pp _f_i_l_e_n_a_m_e] [--ddtt] [_n_a_m_e]
- For each _n_a_m_e, the full file name of the command is determined
+ For each _n_a_m_e, the full file name of the command is determined
by searching the directories in $$PPAATTHH and remembered. If the --pp
option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e is
used as the full file name of the command. The --rr option causes
- the shell to forget all remembered locations. The --dd option
+ the shell to forget all remembered locations. The --dd option
causes the shell to forget the remembered location of each _n_a_m_e.
- If the --tt option is supplied, the full pathname to which each
- _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are
- supplied with --tt, the _n_a_m_e is printed before the hashed full
+ If the --tt option is supplied, the full pathname to which each
+ _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are
+ supplied with --tt, the _n_a_m_e is printed before the hashed full
pathname. The --ll option causes output to be displayed in a for-
- mat that may be reused as input. If no arguments are given, or
+ mat that may be reused as input. If no arguments are given, or
if only --ll is supplied, information about remembered commands is
- printed. The return status is true unless a _n_a_m_e is not found
+ printed. The return status is true unless a _n_a_m_e is not found
or an invalid option is supplied.
hheellpp [--ddmmss] [_p_a_t_t_e_r_n]
- Display helpful information about builtin commands. If _p_a_t_t_e_r_n
- is specified, hheellpp gives detailed help on all commands matching
- _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control
+ Display helpful information about builtin commands. If _p_a_t_t_e_r_n
+ is specified, hheellpp gives detailed help on all commands matching
+ _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control
structures is printed.
--dd Display a short description of each _p_a_t_t_e_r_n
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
@@ -4293,44 +4300,44 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
hhiissttoorryy --ss _a_r_g [_a_r_g _._._.]
With no options, display the command history list with line num-
bers. Lines listed with a ** have been modified. An argument of
- _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE--
- FFOORRMMAATT is set and not null, it is used as a format string for
- _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis-
- played history entry. No intervening blank is printed between
- the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is
- supplied, it is used as the name of the history file; if not,
- the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the
+ _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE--
+ FFOORRMMAATT is set and not null, it is used as a format string for
+ _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis-
+ played history entry. No intervening blank is printed between
+ the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is
+ supplied, it is used as the name of the history file; if not,
+ the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the
following meanings:
--cc Clear the history list by deleting all the entries.
--dd _o_f_f_s_e_t
Delete the history entry at position _o_f_f_s_e_t.
- --aa Append the ``new'' history lines (history lines entered
- since the beginning of the current bbaasshh session) to the
+ --aa Append the ``new'' history lines (history lines entered
+ since the beginning of the current bbaasshh session) to the
history file.
- --nn Read the history lines not already read from the history
- file into the current history list. These are lines
- appended to the history file since the beginning of the
+ --nn Read the history lines not already read from the history
+ file into the current history list. These are lines
+ appended to the history file since the beginning of the
current bbaasshh session.
--rr Read the contents of the history file and use them as the
current history.
- --ww Write the current history to the history file, overwrit-
+ --ww Write the current history to the history file, overwrit-
ing the history file's contents.
- --pp Perform history substitution on the following _a_r_g_s and
- display the result on the standard output. Does not
- store the results in the history list. Each _a_r_g must be
+ --pp Perform history substitution on the following _a_r_g_s and
+ display the result on the standard output. Does not
+ store the results in the history list. Each _a_r_g must be
quoted to disable normal history expansion.
- --ss Store the _a_r_g_s in the history list as a single entry.
- The last command in the history list is removed before
+ --ss Store the _a_r_g_s in the history list as a single entry.
+ The last command in the history list is removed before
the _a_r_g_s are added.
If the HHIISSTTTTIIMMEEFFOORRMMAATT is set, the time stamp information associ-
- ated with each history entry is written to the history file,
- marked with the history comment character. When the history
+ ated with each history entry is written to the history file,
+ marked with the history comment character. When the history
file is read, lines beginning with the history comment character
- followed immediately by a digit are interpreted as timestamps
- for the previous history line. The return value is 0 unless an
- invalid option is encountered, an error occurs while reading or
- writing the history file, an invalid _o_f_f_s_e_t is supplied as an
+ followed immediately by a digit are interpreted as timestamps
+ for the previous history line. The return value is 0 unless an
+ invalid option is encountered, an error occurs while reading or
+ writing the history file, an invalid _o_f_f_s_e_t is supplied as an
argument to --dd, or the history expansion supplied as an argument
to --pp fails.
@@ -4339,180 +4346,180 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
The first form lists the active jobs. The options have the fol-
lowing meanings:
--ll List process IDs in addition to the normal information.
- --pp List only the process ID of the job's process group
+ --pp List only the process ID of the job's process group
leader.
- --nn Display information only about jobs that have changed
- status since the user was last notified of their status.
+ --nn Display information only about jobs that have changed
+ status since the user was last notified of their status.
--rr Restrict output to running jobs.
--ss Restrict output to stopped jobs.
- If _j_o_b_s_p_e_c is given, output is restricted to information about
- that job. The return status is 0 unless an invalid option is
+ If _j_o_b_s_p_e_c is given, output is restricted to information about
+ that job. The return status is 0 unless an invalid option is
encountered or an invalid _j_o_b_s_p_e_c is supplied.
If the --xx option is supplied, jjoobbss replaces any _j_o_b_s_p_e_c found in
- _c_o_m_m_a_n_d or _a_r_g_s with the corresponding process group ID, and
+ _c_o_m_m_a_n_d or _a_r_g_s with the corresponding process group ID, and
executes _c_o_m_m_a_n_d passing it _a_r_g_s, returning its exit status.
kkiillll [--ss _s_i_g_s_p_e_c | --nn _s_i_g_n_u_m | --_s_i_g_s_p_e_c] [_p_i_d | _j_o_b_s_p_e_c] ...
kkiillll --ll [_s_i_g_s_p_e_c | _e_x_i_t___s_t_a_t_u_s]
- Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes
- named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive
- signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or
- a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not
- present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the
- signal names. If any arguments are supplied when --ll is given,
- the names of the signals corresponding to the arguments are
+ Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes
+ named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive
+ signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or
+ a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not
+ present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the
+ signal names. If any arguments are supplied when --ll is given,
+ the names of the signals corresponding to the arguments are
listed, and the return status is 0. The _e_x_i_t___s_t_a_t_u_s argument to
- --ll is a number specifying either a signal number or the exit
- status of a process terminated by a signal. kkiillll returns true
- if at least one signal was successfully sent, or false if an
+ --ll is a number specifying either a signal number or the exit
+ status of a process terminated by a signal. kkiillll returns true
+ if at least one signal was successfully sent, or false if an
error occurs or an invalid option is encountered.
lleett _a_r_g [_a_r_g ...]
Each _a_r_g is an arithmetic expression to be evaluated (see AARRIITTHH--
- MMEETTIICC EEVVAALLUUAATTIIOONN). If the last _a_r_g evaluates to 0, lleett returns
+ MMEETTIICC EEVVAALLUUAATTIIOONN). If the last _a_r_g evaluates to 0, lleett returns
1; 0 is returned otherwise.
llooccaall [_o_p_t_i_o_n] [_n_a_m_e[=_v_a_l_u_e] ...]
- For each argument, a local variable named _n_a_m_e is created, and
- assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted
+ For each argument, a local variable named _n_a_m_e is created, and
+ assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted
by ddeeccllaarree. When llooccaall is used within a function, it causes the
- variable _n_a_m_e to have a visible scope restricted to that func-
+ variable _n_a_m_e to have a visible scope restricted to that func-
tion and its children. With no operands, llooccaall writes a list of
- local variables to the standard output. It is an error to use
+ local variables to the standard output. It is an error to use
llooccaall when not within a function. The return status is 0 unless
- llooccaall is used outside a function, an invalid _n_a_m_e is supplied,
+ llooccaall is used outside a function, an invalid _n_a_m_e is supplied,
or _n_a_m_e is a readonly variable.
llooggoouutt Exit a login shell.
- mmaappffiillee [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k]
+ mmaappffiillee [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k]
[--cc _q_u_a_n_t_u_m] [_a_r_r_a_y]
- rreeaaddaarrrraayy [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k]
+ rreeaaddaarrrraayy [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k]
[--cc _q_u_a_n_t_u_m] [_a_r_r_a_y]
Read lines from the standard input into array variable _a_r_r_a_y, or
from file descriptor _f_d if the --uu option is supplied. The vari-
- able MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if supplied, have
+ able MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if supplied, have
the following meanings:
- --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are
+ --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are
copied.
- --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default
+ --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default
index is 0.
--ss Discard the first _c_o_u_n_t lines read.
--tt Remove a trailing line from each line read.
- --uu Read lines from file descriptor _f_d instead of the stan-
+ --uu Read lines from file descriptor _f_d instead of the stan-
dard input.
- --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The
+ --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The
--cc option specifies _q_u_a_n_t_u_m.
- --cc Specify the number of lines read between each call to
+ --cc Specify the number of lines read between each call to
_c_a_l_l_b_a_c_k.
- If --CC is specified without --cc, the default quantum is 5000.
+ If --CC is specified without --cc, the default quantum is 5000.
When _c_a_l_l_b_a_c_k is evaluated, it is supplied the index of the next
- array element to be assigned as an additional argument. _c_a_l_l_-
- _b_a_c_k is evaluated after the line is read but before the array
+ array element to be assigned as an additional argument. _c_a_l_l_-
+ _b_a_c_k is evaluated after the line is read but before the array
element is assigned.
- If not supplied with an explicit origin, mmaappffiillee will clear
+ If not supplied with an explicit origin, mmaappffiillee will clear
_a_r_r_a_y before assigning to it.
- mmaappffiillee returns successfully unless an invalid option or option
+ mmaappffiillee returns successfully unless an invalid option or option
argument is supplied, or _a_r_r_a_y is invalid or unassignable.
ppooppdd [-nn] [+_n] [-_n]
- Removes entries from the directory stack. With no arguments,
- removes the top directory from the stack, and performs a ccdd to
+ Removes entries from the directory stack. With no arguments,
+ removes the top directory from the stack, and performs a ccdd to
the new top directory. Arguments, if supplied, have the follow-
ing meanings:
- --nn Suppresses the normal change of directory when removing
- directories from the stack, so that only the stack is
+ --nn Suppresses the normal change of directory when removing
+ directories from the stack, so that only the stack is
manipulated.
- ++_n Removes the _nth entry counting from the left of the list
- shown by ddiirrss, starting with zero. For example: ``popd
+ ++_n Removes the _nth entry counting from the left of the list
+ shown by ddiirrss, starting with zero. For example: ``popd
+0'' removes the first directory, ``popd +1'' the second.
--_n Removes the _nth entry counting from the right of the list
- shown by ddiirrss, starting with zero. For example: ``popd
- -0'' removes the last directory, ``popd -1'' the next to
+ shown by ddiirrss, starting with zero. For example: ``popd
+ -0'' removes the last directory, ``popd -1'' the next to
last.
- If the ppooppdd command is successful, a ddiirrss is performed as well,
- and the return status is 0. ppooppdd returns false if an invalid
+ If the ppooppdd command is successful, a ddiirrss is performed as well,
+ and the return status is 0. ppooppdd returns false if an invalid
option is encountered, the directory stack is empty, a non-exis-
tent directory stack entry is specified, or the directory change
fails.
pprriinnttff [--vv _v_a_r] _f_o_r_m_a_t [_a_r_g_u_m_e_n_t_s]
- Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the
- control of the _f_o_r_m_a_t. The _f_o_r_m_a_t is a character string which
- contains three types of objects: plain characters, which are
- simply copied to standard output, character escape sequences,
- which are converted and copied to the standard output, and for-
- mat specifications, each of which causes printing of the next
+ Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the
+ control of the _f_o_r_m_a_t. The _f_o_r_m_a_t is a character string which
+ contains three types of objects: plain characters, which are
+ simply copied to standard output, character escape sequences,
+ which are converted and copied to the standard output, and for-
+ mat specifications, each of which causes printing of the next
successive _a_r_g_u_m_e_n_t. In addition to the standard _p_r_i_n_t_f(1) for-
- mats, %%bb causes pprriinnttff to expand backslash escape sequences in
- the corresponding _a_r_g_u_m_e_n_t (except that \\cc terminates output,
+ mats, %%bb causes pprriinnttff to expand backslash escape sequences in
+ the corresponding _a_r_g_u_m_e_n_t (except that \\cc terminates output,
backslashes in \\'', \\"", and \\?? are not removed, and octal escapes
- beginning with \\00 may contain up to four digits), and %%qq causes
+ beginning with \\00 may contain up to four digits), and %%qq causes
pprriinnttff to output the corresponding _a_r_g_u_m_e_n_t in a format that can
be reused as shell input.
- The --vv option causes the output to be assigned to the variable
+ The --vv option causes the output to be assigned to the variable
_v_a_r rather than being printed to the standard output.
- The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
+ The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
_m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied,
- the extra format specifications behave as if a zero value or
- null string, as appropriate, had been supplied. The return
+ the extra format specifications behave as if a zero value or
+ null string, as appropriate, had been supplied. The return
value is zero on success, non-zero on failure.
ppuusshhdd [--nn] [+_n] [-_n]
ppuusshhdd [--nn] [_d_i_r]
- Adds a directory to the top of the directory stack, or rotates
- the stack, making the new top of the stack the current working
+ Adds a directory to the top of the directory stack, or rotates
+ the stack, making the new top of the stack the current working
directory. With no arguments, exchanges the top two directories
- and returns 0, unless the directory stack is empty. Arguments,
+ and returns 0, unless the directory stack is empty. Arguments,
if supplied, have the following meanings:
- --nn Suppresses the normal change of directory when adding
- directories to the stack, so that only the stack is
+ --nn Suppresses the normal change of directory when adding
+ directories to the stack, so that only the stack is
manipulated.
- ++_n Rotates the stack so that the _nth directory (counting
- from the left of the list shown by ddiirrss, starting with
+ ++_n Rotates the stack so that the _nth directory (counting
+ from the left of the list shown by ddiirrss, starting with
zero) is at the top.
- --_n Rotates the stack so that the _nth directory (counting
- from the right of the list shown by ddiirrss, starting with
+ --_n Rotates the stack so that the _nth directory (counting
+ from the right of the list shown by ddiirrss, starting with
zero) is at the top.
_d_i_r Adds _d_i_r to the directory stack at the top, making it the
new current working directory.
If the ppuusshhdd command is successful, a ddiirrss is performed as well.
- If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r
- fails. With the second form, ppuusshhdd returns 0 unless the direc-
- tory stack is empty, a non-existent directory stack element is
- specified, or the directory change to the specified new current
+ If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r
+ fails. With the second form, ppuusshhdd returns 0 unless the direc-
+ tory stack is empty, a non-existent directory stack element is
+ specified, or the directory change to the specified new current
directory fails.
ppwwdd [--LLPP]
- Print the absolute pathname of the current working directory.
+ Print the absolute pathname of the current working directory.
The pathname printed contains no symbolic links if the --PP option
is supplied or the --oo pphhyyssiiccaall option to the sseett builtin command
- is enabled. If the --LL option is used, the pathname printed may
- contain symbolic links. The return status is 0 unless an error
- occurs while reading the name of the current directory or an
+ is enabled. If the --LL option is used, the pathname printed may
+ contain symbolic links. The return status is 0 unless an error
+ occurs while reading the name of the current directory or an
invalid option is supplied.
- rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt
- _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
- One line is read from the standard input, or from the file
- descriptor _f_d supplied as an argument to the --uu option, and the
+ rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp
+ _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
+ One line is read from the standard input, or from the file
+ descriptor _f_d supplied as an argument to the --uu option, and the
first word is assigned to the first _n_a_m_e, the second word to the
- second _n_a_m_e, and so on, with leftover words and their interven-
- ing separators assigned to the last _n_a_m_e. If there are fewer
+ second _n_a_m_e, and so on, with leftover words and their interven-
+ ing separators assigned to the last _n_a_m_e. If there are fewer
words read from the input stream than names, the remaining names
- are assigned empty values. The characters in IIFFSS are used to
- split the line into words. The backslash character (\\) may be
- used to remove any special meaning for the next character read
- and for line continuation. Options, if supplied, have the fol-
+ are assigned empty values. The characters in IIFFSS are used to
+ split the line into words. The backslash character (\\) may be
+ used to remove any special meaning for the next character read
+ and for line continuation. Options, if supplied, have the fol-
lowing meanings:
--aa _a_n_a_m_e
The words are assigned to sequential indices of the array
@@ -4520,18 +4527,25 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
new values are assigned. Other _n_a_m_e arguments are
ignored.
--dd _d_e_l_i_m
- The first character of _d_e_l_i_m is used to terminate the
+ The first character of _d_e_l_i_m is used to terminate the
input line, rather than newline.
--ee If the standard input is coming from a terminal, rreeaaddlliinnee
- (see RREEAADDLLIINNEE above) is used to obtain the line. Read-
- line uses the current (or default, if line editing was
+ (see RREEAADDLLIINNEE above) is used to obtain the line. Read-
+ line uses the current (or default, if line editing was
not previously active) editing settings.
--ii _t_e_x_t
- If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
+ If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
placed into the editing buffer before editing begins.
--nn _n_c_h_a_r_s
- rreeaadd returns after reading _n_c_h_a_r_s characters rather than
- waiting for a complete line of input.
+ rreeaadd returns after reading _n_c_h_a_r_s characters rather than
+ waiting for a complete line of input, but honor a delim-
+ iter if fewer than _n_c_h_a_r_s characters are read before the
+ delimiter.
+ --NN _n_c_h_a_r_s
+ rreeaadd returns after reading exactly _n_c_h_a_r_s characters
+ rather than waiting for a complete line of input, unless
+ EOF is encountered or rreeaadd times out. Any delimiter is
+ ignored.
--pp _p_r_o_m_p_t
Display _p_r_o_m_p_t on standard error, without a trailing new-
line, before attempting to read any input. The prompt is
@@ -5322,4 +5336,4 @@ BBUUGGSS
-GNU Bash-4.1 2009 September 16 BASH(1)
+GNU Bash-4.1 2009 October 9 BASH(1)
diff --git a/doc/bash.1 b/doc/bash.1
index bb21ce66..0c3cdf95 100644
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet@po.cwru.edu
.\"
-.\" Last Change: Fri Oct 9 12:07:53 EDT 2009
+.\" Last Change: Fri Oct 16 12:24:25 EDT 2009
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
-.TH BASH 1 "2009 October 9" "GNU Bash-4.1"
+.TH BASH 1 "2009 October 16" "GNU Bash-4.1"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -7787,7 +7787,7 @@ Exit a login shell.
.TP
\fBreadarray\fP [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP]
.PD
-Read lines from the standard input into array variable
+Read lines from the standard input into the indexed array variable
.IR array ,
or from file descriptor
.IR fd
@@ -7845,7 +7845,8 @@ If not supplied with an explicit origin, \fBmapfile\fP will clear \fIarray\fP
before assigning to it.
.PP
\fBmapfile\fP returns successfully unless an invalid option or option
-argument is supplied, or \fIarray\fP is invalid or unassignable.
+argument is supplied, \fIarray\fP is invalid or unassignable, or if
+\fIarray\fP is not an indexed array.
.RE
.TP
\fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP]
diff --git a/doc/bash.1~ b/doc/bash.1~
index 176a27fc..bb21ce66 100644
--- a/doc/bash.1~
+++ b/doc/bash.1~
@@ -4969,6 +4969,11 @@ When set to \fBOn\fP, readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys.
.TP
+.B enable\-meta\-key (On)
+When set to \fBOn\fP, readline will try to enable any meta modifier
+key the terminal claims to support when it is called. On many terminals,
+the meta key is used to send eight-bit characters.
+.TP
.B expand\-tilde (Off)
If set to \fBon\fP, tilde expansion is performed when readline
attempts word completion.
diff --git a/doc/bash.html b/doc/bash.html
index 216ce131..e71868fe 100644
--- a/doc/bash.html
+++ b/doc/bash.html
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2009 September 16<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2009 October 9<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -902,6 +902,11 @@ as primaries.
<P>
+When used with <B>[[</B>, The <B>&lt;</B> and <B>&gt;</B> operators sort
+lexicographically using the current locale.
+<P>
+
+
When the <B>==</B> and <B>!=</B> operators are used, the string to the
right of the operator is considered a pattern and matched according
to the rules described below under <B>Pattern Matching</B>.
@@ -1411,8 +1416,8 @@ The expanded result is single-quoted, as if the dollar sign had
not been present.
<P>
-A double-quoted string preceded by a dollar sign (<B>$</B>) will cause
-the string to be translated according to the current locale.
+A double-quoted string preceded by a dollar sign (<B>$</B>dq<I>string</I>dq)
+will cause the string to be translated according to the current locale.
If the current locale is <B>C</B> or <B>POSIX</B>, the dollar sign
is ignored.
If the string is translated and replaced, the replacement is
@@ -3235,7 +3240,7 @@ interpreted as part of its name.
</DL>
<P>
-If the first character of <I>parameter</I> is an exclamation point,
+If the first character of <I>parameter</I> is an exclamation point (<B>!</B>),
a level of variable indirection is introduced.
<B>Bash</B> uses the value of the variable formed from the rest of
<I>parameter</I> as the name of the variable; this variable is then
@@ -6435,6 +6440,12 @@ keyboard.
When set to <B>On</B>, readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys.
+<DT><B>enable-meta-key (On)</B>
+
+<DD>
+When set to <B>On</B>, readline will try to enable any meta modifier
+key the terminal claims to support when it is called. On many terminals,
+the meta key is used to send eight-bit characters.
<DT><B>expand-tilde (Off)</B>
<DD>
@@ -10215,7 +10226,7 @@ option is used, the pathname printed may contain symbolic links.
The return status is 0 unless an error occurs while
reading the name of the current directory or an
invalid option is supplied.
-<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-i</B> <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
+<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-i</B> <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-N</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
One line is read from the standard input, or from the file descriptor
<I>fd</I> supplied as an argument to the <B>-u</B> option, and the first word
is assigned to the first
@@ -10284,7 +10295,14 @@ buffer before editing begins.
<DD>
<B>read</B> returns after reading <I>nchars</I> characters rather than
-waiting for a complete line of input.
+waiting for a complete line of input, but honor a delimiter if fewer
+than <I>nchars</I> characters are read before the delimiter.
+<DT><B>-N </B><I>nchars</I>
+
+<DD>
+<B>read</B> returns after reading exactly <I>nchars</I> characters rather
+than waiting for a complete line of input, unless EOF is encountered or
+<B>read</B> times out. Any delimiter is ignored.
<DT><B>-p </B><I>prompt</I>
<DD>
@@ -12237,7 +12255,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>GNU Bash-4.1<TH ALIGN=CENTER width=33%>2009 September 16<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash-4.1<TH ALIGN=CENTER width=33%>2009 October 9<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -12343,6 +12361,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
-Time: 16 September 2009 21:35:09 EDT
+Time: 12 October 2009 10:07:29 EDT
</BODY>
</HTML>
diff --git a/doc/bash.pdf b/doc/bash.pdf
index 8e0ca0cb..01843ae4 100644
--- a/doc/bash.pdf
+++ b/doc/bash.pdf
Binary files differ
diff --git a/doc/bash.ps b/doc/bash.ps
index d0aa035d..eb1cb871 100644
--- a/doc/bash.ps
+++ b/doc/bash.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Wed Sep 16 21:35:01 2009
+%%CreationDate: Mon Oct 12 10:07:24 2009
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -331,7 +331,7 @@ E F2(po)2.5 E F0(\(portable object\) \214le format.)2.5 E F2
144 686.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2(\255\255login)108 703.2 Q F0
(Equi)144 715.2 Q -.25(va)-.25 G(lent to).25 E F2<ad6c>2.5 E F0(.)A
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(1)190.115 E 0 Cg EP
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(1)197.895 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -453,7 +453,7 @@ F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en)
108 727.2 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E F3 -.666(PA)2.5 G
(TH)-.189 E F0 -.25(va)2.25 G
(riable is not used to search for the \214le name.).25 E(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(2)190.115 E 0 Cg EP
+768 Q(2009 October 9)142.905 E(2)197.895 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -581,7 +581,7 @@ F1(Pipelines)87 691.2 Q F0(A)108 703.2 Q F2(pipeline)2.996 E F0 .496(is\
a sequence of one or more commands separated by one of the control ope\
rators)2.996 F F1(|)2.996 E F0(or)2.996 E F1(|&)2.996 E F0 5.496(.T)C
(he)-5.496 E(format for a pipeline is:)108 715.2 Q(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(3)190.115 E 0 Cg EP
+(2009 October 9)142.905 E(3)197.895 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
@@ -701,7 +701,7 @@ E(\(\()108 703.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
(A-)-.54 E(TION)144 727.2 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v)
4.911 F .411(alue of the e)-.25 F .411(xpression is non-zero, the retur\
n status is 0; otherwise the return status)-.15 F(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(4)190.115 E 0 Cg EP
+(2009 October 9)142.905 E(4)197.895 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
@@ -726,7431 +726,7449 @@ F1([[)3.633 E F0(and)144 148.8 Q F1(]])2.964 E F0 2.964(;t)C .464
(tution, process substitution, and quote remo)144 160.8 R -.25(va)-.15 G
3.581(la).25 G 1.081(re performed.)-3.581 F 1.081
(Conditional operators such as)6.081 F F1<ad66>3.581 E F0
-(must be unquoted to be recognized as primaries.)144 172.8 Q .503
-(When the)144 190.8 R F1(==)3.003 E F0(and)3.002 E F1(!=)3.002 E F0 .502
-(operators are used, the string to the right of the operator is conside\
-red a pat-)3.002 F 1.224
-(tern and matched according to the rules described belo)144 202.8 R
-3.724(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.725(nM)-.15
-G(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225(he shell)-3.725
-F(option)144 214.8 Q F1(nocasematch)3.405 E F0 .904
+(must be unquoted to be recognized as primaries.)144 172.8 Q
+(When used with)144 190.8 Q F1([[)2.5 E F0 2.5(,T)C(he)-2.5 E F1(<)2.5 E
+F0(and)2.5 E F1(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using the current locale.)-.15 E .503(When the)144
+208.8 R F1(==)3.003 E F0(and)3.002 E F1(!=)3.002 E F0 .502(operators ar\
+e used, the string to the right of the operator is considered a pat-)
+3.002 F 1.224(tern and matched according to the rules described belo)144
+220.8 R 3.724(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.725
+(nM)-.15 G(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225
+(he shell)-3.725 F(option)144 232.8 Q F1(nocasematch)3.405 E F0 .904
(is enabled, the match is performed without re)3.405 F -.05(ga)-.15 G
-.904(rd to the case of alphabetic).05 F 2.751(characters. The)144 226.8
+.904(rd to the case of alphabetic).05 F 2.751(characters. The)144 244.8
R .251(return v)2.751 F .251(alue is 0 if the string matches \()-.25 F
F1(==)A F0 2.751(\)o)C 2.751(rd)-2.751 G .251(oes not match \()-2.751 F
-F1(!=)A F0 2.751(\)t)C .252(he pattern, and)-2.751 F 2.5(1o)144 238.8 S
+F1(!=)A F0 2.751(\)t)C .252(he pattern, and)-2.751 F 2.5(1o)144 256.8 S
2.5(therwise. An)-2.5 F 2.5(yp)-.15 G(art of the pattern may be quoted \
to force it to be matched as a string.)-2.5 E .243
-(An additional binary operator)144 256.8 R(,)-.4 E F1(=~)2.743 E F0
+(An additional binary operator)144 274.8 R(,)-.4 E F1(=~)2.743 E F0
2.743(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
(ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E
F1(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F 1.953
(used, the string to the right of the operator is considered an e)144
-268.8 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954
-(xpression and)-.15 F .207(matched accordingly \(as in)144 280.8 R F2
+286.8 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954
+(xpression and)-.15 F .207(matched accordingly \(as in)144 298.8 R F2
-.37(re)2.707 G -.1(ge)-.03 G(x)-.1 E F0 2.707(\(3\)\). The)B .207
(return v)2.707 F .207
(alue is 0 if the string matches the pattern, and 1)-.25 F 3.345
-(otherwise. If)144 292.8 R .845(the re)3.345 F .845(gular e)-.15 F .846
+(otherwise. If)144 310.8 R .845(the re)3.345 F .845(gular e)-.15 F .846
(xpression is syntactically incorrect, the conditional e)-.15 F
-(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 304.8 S
+(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 322.8 S
.667(lue is 2.).25 F .667(If the shell option)5.667 F F1(nocasematch)
3.167 E F0 .667(is enabled, the match is performed without re)3.167 F
-.05(ga)-.15 G .666(rd to).05 F .378(the case of alphabetic characters.)
-144 316.8 R(An)5.378 E 2.878(yp)-.15 G .378
+144 334.8 R(An)5.378 E 2.878(yp)-.15 G .378
(art of the pattern may be quoted to force it to be matched)-2.878 F
-.265(as a string.)144 328.8 R .265
+.265(as a string.)144 346.8 R .265
(Substrings matched by parenthesized sube)5.265 F .265
(xpressions within the re)-.15 F .265(gular e)-.15 F .265(xpression are)
--.15 F(sa)144 340.8 Q -.15(ve)-.2 G 3.117(di).15 G 3.117(nt)-3.117 G
+-.15 F(sa)144 358.8 Q -.15(ve)-.2 G 3.117(di).15 G 3.117(nt)-3.117 G
.617(he array v)-3.117 F(ariable)-.25 E F1 -.3(BA)3.117 G(SH_REMA).3 E
(TCH)-.95 E F0 5.617(.T)C .617(he element of)-5.617 F F1 -.3(BA)3.118 G
(SH_REMA).3 E(TCH)-.95 E F0 .618(with inde)3.118 F(x)-.15 E 6.883(0i)144
-352.8 S 6.883(st)-6.883 G 4.382
+370.8 S 6.883(st)-6.883 G 4.382
(he portion of the string matching the entire re)-6.883 F 4.382(gular e)
-.15 F 6.882(xpression. The)-.15 F 4.382(element of)6.882 F F1 -.3(BA)
-144 364.8 S(SH_REMA).3 E(TCH)-.95 E F0 2.087(with inde)4.587 F(x)-.15 E
+144 382.8 S(SH_REMA).3 E(TCH)-.95 E F0 2.087(with inde)4.587 F(x)-.15 E
F2(n)4.587 E F0 2.088(is the portion of the string matching the)4.587 F
-F2(n)4.588 E F0 2.088(th parenthesized)B(sube)144 376.8 Q(xpression.)
--.15 E .786(Expressions may be combined using the follo)144 394.8 R .785
+F2(n)4.588 E F0 2.088(th parenthesized)B(sube)144 394.8 Q(xpression.)
+-.15 E .786(Expressions may be combined using the follo)144 412.8 R .785
(wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
-406.8 Q F1(\()144 424.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(\))
-2.5 E F0 .522(Returns the v)180 436.8 R .522(alue of)-.25 F F2 -.2(ex)
+424.8 Q F1(\()144 442.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(\))
+2.5 E F0 .522(Returns the v)180 454.8 R .522(alue of)-.25 F F2 -.2(ex)
3.022 G(pr).2 E(ession)-.37 E F0 5.522(.T)C .522(his may be used to o)
-5.522 F -.15(ve)-.15 G .522(rride the normal precedence of).15 F
-(operators.)180 448.8 Q F1(!)144 460.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)
--.37 E F0 -.35(Tr)180 472.8 S(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E
-(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F2 -.2(ex)144 484.8 S(pr).2 E
+(operators.)180 466.8 Q F1(!)144 478.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)
+-.37 E F0 -.35(Tr)180 490.8 S(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E
+(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F2 -.2(ex)144 502.8 S(pr).2 E
(ession1)-.37 E F1(&&)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0
--.35(Tr)180 496.8 S(ue if both).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)
+-.35(Tr)180 514.8 S(ue if both).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)
-.37 E F0(and)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(are true.)
-2.52 E F2 -.2(ex)144 508.8 S(pr).2 E(ession1)-.37 E/F5 10/Symbol SF
-<efef>2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 520.8
+2.52 E F2 -.2(ex)144 526.8 S(pr).2 E(ession1)-.37 E/F5 10/Symbol SF
+<efef>2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 538.8
S(ue if either).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E
-F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 537.6
+F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 555.6
Q F1(&&)3.299 E F0(and)3.299 E F5<efef>3.298 E F0 .798
(operators do not e)3.298 F -.25(va)-.25 G(luate).25 E F2 -.2(ex)3.298 G
(pr).2 E(ession2)-.37 E F0 .798(if the v)3.298 F .798(alue of)-.25 F F2
-.2(ex)3.298 G(pr).2 E(ession1)-.37 E F0 .798(is suf)3.298 F .798
-(\214cient to)-.25 F(determine the return v)144 549.6 Q
+(\214cient to)-.25 F(determine the return v)144 567.6 Q
(alue of the entire conditional e)-.25 E(xpression.)-.15 E F1 -.25(fo)
-108 566.4 S(r).25 E F2(name)2.5 E F0 2.5([[)2.5 G F1(in)A F0([)2.5 E F2
+108 584.4 S(r).25 E F2(name)2.5 E F0 2.5([[)2.5 G F1(in)A F0([)2.5 E F2
(wor)2.5 E 2.5(d.)-.37 G(..)-2.5 E F0 2.5(]];])2.5 G F1(do)A F2(list)2.5
-E F0(;)2.5 E F1(done)2.5 E F0 .423(The list of w)144 578.4 R .423
+E F0(;)2.5 E F1(done)2.5 E F0 .423(The list of w)144 596.4 R .423
(ords follo)-.1 F(wing)-.25 E F1(in)2.923 E F0 .423(is e)2.923 F .423
(xpanded, generating a list of items.)-.15 F .424(The v)5.424 F(ariable)
-.25 E F2(name)2.924 E F0 .424(is set to)2.924 F .653
-(each element of this list in turn, and)144 590.4 R F2(list)3.153 E F0
+(each element of this list in turn, and)144 608.4 R F2(list)3.153 E F0
.653(is e)3.153 F -.15(xe)-.15 G .653(cuted each time.).15 F .653
(If the)5.653 F F1(in)3.153 E F2(wor)3.153 E(d)-.37 E F0 .653
(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 .648(command e)
-144 602.4 R -.15(xe)-.15 G(cutes).15 E F2(list)3.148 E F0 .648
+144 620.4 R -.15(xe)-.15 G(cutes).15 E F2(list)3.148 E F0 .648
(once for each positional parameter that is set \(see)3.148 F F3 -.666
(PA)3.149 G(RAMETERS).666 E F0(belo)2.899 E(w\).)-.25 E .154
-(The return status is the e)144 614.4 R .153
+(The return status is the e)144 632.4 R .153
(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.653
(cutes. If).15 F .153(the e)2.653 F .153(xpansion of the items)-.15 F
-(follo)144 626.4 Q(wing)-.25 E F1(in)2.5 E F0
+(follo)144 644.4 Q(wing)-.25 E F1(in)2.5 E F0
(results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G
-(cuted, and the return status is 0.).15 E F1 -.25(fo)108 643.2 S(r).25 E
+(cuted, and the return status is 0.).15 E F1 -.25(fo)108 661.2 S(r).25 E
F0(\(\()2.5 E F2 -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr2).2
E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5 E F2
(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.235(First, the arithmetic e)
-144 655.2 R(xpression)-.15 E F2 -.2(ex)3.735 G(pr1).2 E F0 1.235(is e)
+144 673.2 R(xpression)-.15 E F2 -.2(ex)3.735 G(pr1).2 E F0 1.235(is e)
3.735 F -.25(va)-.25 G 1.236
(luated according to the rules described belo).25 F 3.736(wu)-.25 G
-(nder)-3.736 E F3 .562(ARITHMETIC EV)144 667.2 R(ALU)-1.215 E -.855(AT)
+(nder)-3.736 E F3 .562(ARITHMETIC EV)144 685.2 R(ALU)-1.215 E -.855(AT)
-.54 G(ION).855 E F4(.)A F0 .562(The arithmetic e)5.062 F(xpression)-.15
E F2 -.2(ex)3.062 G(pr2).2 E F0 .561(is then e)3.061 F -.25(va)-.25 G
-.561(luated repeatedly until).25 F .591(it e)144 679.2 R -.25(va)-.25 G
+.561(luated repeatedly until).25 F .591(it e)144 697.2 R -.25(va)-.25 G
.591(luates to zero.).25 F .592(Each time)5.591 F F2 -.2(ex)3.092 G(pr2)
.2 E F0 -.25(eva)3.092 G .592(luates to a non-zero v).25 F(alue,)-.25 E
F2(list)3.092 E F0 .592(is e)3.092 F -.15(xe)-.15 G .592
-(cuted and the arith-).15 F .229(metic e)144 691.2 R(xpression)-.15 E F2
+(cuted and the arith-).15 F .229(metic e)144 709.2 R(xpression)-.15 E F2
-.2(ex)2.729 G(pr3).2 E F0 .229(is e)2.729 F -.25(va)-.25 G 2.729
(luated. If).25 F(an)2.729 E 2.729(ye)-.15 G .229
(xpression is omitted, it beha)-2.879 F -.15(ve)-.2 G 2.729(sa).15 G
2.729(si)-2.729 G 2.729(fi)-2.729 G 2.728(te)-2.729 G -.25(va)-2.978 G
-.228(luates to 1.).25 F .227(The return v)144 703.2 R .227
+.228(luates to 1.).25 F .227(The return v)144 721.2 R .227
(alue is the e)-.25 F .227(xit status of the last command in)-.15 F F2
(list)2.728 E F0 .228(that is e)2.728 F -.15(xe)-.15 G .228(cuted, or f)
.15 F .228(alse if an)-.1 F 2.728(yo)-.15 G 2.728(ft)-2.728 G(he)-2.728
-E -.15(ex)144 715.2 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(5)190.115 E 0 Cg EP
+E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(5)197.895 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(select)108 84 Q/F2 10/Times-Italic@0 SF
-(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)-.37 E F0 2.5(];)2.5 G
-F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .433(The list of w)144
-96 R .433(ords follo)-.1 F(wing)-.25 E F1(in)2.933 E F0 .432(is e)2.933
-F .432(xpanded, generating a list of items.)-.15 F .432(The set of e)
-5.432 F .432(xpanded w)-.15 F(ords)-.1 E .842
-(is printed on the standard error)144 108 R 3.342(,e)-.4 G .842
+-.35 E -.15(ex)144 84 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E
+/F1 10/Times-Bold@0 SF(select)108 100.8 Q/F2 10/Times-Italic@0 SF(name)
+2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)-.37 E F0 2.5(];)2.5 G F1
+(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .433(The list of w)144
+112.8 R .433(ords follo)-.1 F(wing)-.25 E F1(in)2.933 E F0 .432(is e)
+2.933 F .432(xpanded, generating a list of items.)-.15 F .432
+(The set of e)5.432 F .432(xpanded w)-.15 F(ords)-.1 E .842
+(is printed on the standard error)144 124.8 R 3.342(,e)-.4 G .842
(ach preceded by a number)-3.342 F 5.842(.I)-.55 G 3.342(ft)-5.842 G(he)
-3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .843
(is omitted, the posi-)3.343 F .064(tional parameters are printed \(see)
-144 120 R/F3 9/Times-Bold@0 SF -.666(PA)2.564 G(RAMETERS).666 E F0(belo)
-2.314 E 2.564(w\). The)-.25 F F1(PS3)2.564 E F0 .064
+144 136.8 R/F3 9/Times-Bold@0 SF -.666(PA)2.564 G(RAMETERS).666 E F0
+(belo)2.314 E 2.564(w\). The)-.25 F F1(PS3)2.564 E F0 .064
(prompt is then displayed and a)2.564 F .213
-(line read from the standard input.)144 132 R .213
+(line read from the standard input.)144 148.8 R .213
(If the line consists of a number corresponding to one of the dis-)5.213
-F 1.538(played w)144 144 R 1.538(ords, then the v)-.1 F 1.538(alue of)
+F 1.538(played w)144 160.8 R 1.538(ords, then the v)-.1 F 1.538(alue of)
-.25 F F2(name)4.398 E F0 1.537(is set to that w)4.218 F 4.037(ord. If)
-.1 F 1.537(the line is empty)4.037 F 4.037(,t)-.65 G 1.537(he w)-4.037
-F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 156 R 2.565
+F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 172.8 R 2.565
(ain. If)-.05 F .065(EOF is read, the command completes.)2.565 F(An)
5.066 E 2.566(yo)-.15 G .066(ther v)-2.566 F .066(alue read causes)-.25
-F F2(name)144 168 Q F0 .76(to be set to null.)3.44 F .76
+F F2(name)144 184.8 Q F0 .76(to be set to null.)3.44 F .76
(The line read is sa)5.76 F -.15(ve)-.2 G 3.259(di).15 G 3.259(nt)-3.259
G .759(he v)-3.259 F(ariable)-.25 E F1(REPL)3.259 E(Y)-.92 E F0 5.759
(.T)C(he)-5.759 E F2(list)3.349 E F0 .759(is e)3.939 F -.15(xe)-.15 G
-.759(cuted after).15 F .071(each selection until a)144 180 R F1(br)2.571
-E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
+.759(cuted after).15 F .071(each selection until a)144 196.8 R F1(br)
+2.571 E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
(cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1(select)
2.571 E F0 .071(is the e)2.571 F .072(xit status of the)-.15 F
-(last command e)144 192 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0
-2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)-.15
-G(cuted.).15 E F1(case)108 208.8 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5 E F0
-2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2
+(last command e)144 208.8 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E
+F0 2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)
+-.15 G(cuted.).15 E F1(case)108 225.6 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5
+E F0 2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2
(pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0(;; ] ...)
-2.5 E F1(esac)2.5 E F0(A)144 220.8 Q F1(case)3.265 E F0 .764
+2.5 E F1(esac)2.5 E F0(A)144 237.6 Q F1(case)3.265 E F0 .764
(command \214rst e)3.265 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0
3.264(,a)C .764(nd tries to match it ag)-3.264 F .764(ainst each)-.05 F
F2(pattern)3.264 E F0 .764(in turn, using the)3.264 F .595
-(same matching rules as for pathname e)144 232.8 R .595(xpansion \(see)
+(same matching rules as for pathname e)144 249.6 R .595(xpansion \(see)
-.15 F F1 -.1(Pa)3.095 G .596(thname Expansion).1 F F0(belo)3.096 E
3.096(w\). The)-.25 F F2(wor)3.096 E(d)-.37 E F0(is)3.096 E -.15(ex)144
-244.8 S 1.092(panded using tilde e).15 F 1.092
+261.6 S 1.092(panded using tilde e).15 F 1.092
(xpansion, parameter and v)-.15 F 1.092(ariable e)-.25 F 1.092
(xpansion, arithmetic substitution, com-)-.15 F 1.268
-(mand substitution, process substitution and quote remo)144 256.8 R -.25
+(mand substitution, process substitution and quote remo)144 273.6 R -.25
(va)-.15 G 3.768(l. Each).25 F F2(pattern)3.768 E F0 -.15(ex)3.768 G
-1.269(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 268.8 R
+1.269(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 285.6 R
.353(xpansion, parameter and v)-.15 F .353(ariable e)-.25 F .353
(xpansion, arithmetic substitution, command substi-)-.15 F 1.516
-(tution, and process substitution.)144 280.8 R 1.516
+(tution, and process substitution.)144 297.6 R 1.516
(If the shell option)6.516 F F1(nocasematch)4.016 E F0 1.517
(is enabled, the match is per)4.017 F(-)-.2 E 1.347(formed without re)
-144 292.8 R -.05(ga)-.15 G 1.347
+144 309.6 R -.05(ga)-.15 G 1.347
(rd to the case of alphabetic characters.).05 F 1.346
-(When a match is found, the corre-)6.347 F(sponding)144 304.8 Q F2(list)
+(When a match is found, the corre-)6.347 F(sponding)144 321.6 Q F2(list)
2.776 E F0 .277(is e)2.776 F -.15(xe)-.15 G 2.777(cuted. If).15 F(the)
2.777 E F1(;;)2.777 E F0 .277
(operator is used, no subsequent matches are attempted after the)2.777 F
-.849(\214rst pattern match.)144 316.8 R(Using)5.849 E F1(;&)3.349 E F0
+.849(\214rst pattern match.)144 333.6 R(Using)5.849 E F1(;&)3.349 E F0
.849(in place of)3.349 F F1(;;)3.349 E F0 .849(causes e)3.349 F -.15(xe)
-.15 G .849(cution to continue with the).15 F F2(list)3.348 E F0
-(associated)3.348 E .077(with the ne)144 328.8 R .077
+(associated)3.348 E .077(with the ne)144 345.6 R .077
(xt set of patterns.)-.15 F(Using)5.077 E F1(;;&)2.577 E F0 .078
(in place of)2.577 F F1(;;)2.578 E F0 .078
(causes the shell to test the ne)2.578 F .078(xt pattern list in)-.15 F
-.227(the statement, if an)144 340.8 R 1.527 -.65(y, a)-.15 H .227(nd e)
+.227(the statement, if an)144 357.6 R 1.527 -.65(y, a)-.15 H .227(nd e)
.65 F -.15(xe)-.15 G .227(cute an).15 F 2.727(ya)-.15 G(ssociated)-2.727
E F2(list)2.727 E F0 .227(on a successful match.)2.727 F .227(The e)
-5.227 F .227(xit status is zero)-.15 F(if no pattern matches.)144 352.8
+5.227 F .227(xit status is zero)-.15 F(if no pattern matches.)144 369.6
Q(Otherwise, it is the e)5 E(xit status of the last command e)-.15 E
--.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0(.)A F1(if)108 369.6 Q F2
+-.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0(.)A F1(if)108 386.4 Q F2
(list)2.5 E F0(;)A F1(then)2.5 E F2(list;)2.5 E F0([)2.5 E F1(elif)2.5 E
F2(list)2.5 E F0(;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;].)C(.. [)-2.5
-E F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 381.6 Q F1
+E F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 398.4 Q F1
(if)2.977 E F2(list)3.067 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978
(cuted. If).15 F .478(its e)2.978 F .478(xit status is zero, the)-.15 F
F1(then)2.978 E F2(list)2.978 E F0 .478(is e)2.978 F -.15(xe)-.15 G
2.978(cuted. Otherwise,).15 F(each)2.978 E F1(elif)2.978 E F2(list)2.978
-E F0 1.088(is e)144 393.6 R -.15(xe)-.15 G 1.088
+E F0 1.088(is e)144 410.4 R -.15(xe)-.15 G 1.088
(cuted in turn, and if its e).15 F 1.087
(xit status is zero, the corresponding)-.15 F F1(then)3.587 E F2(list)
3.587 E F0 1.087(is e)3.587 F -.15(xe)-.15 G 1.087(cuted and the).15 F
-.103(command completes.)144 405.6 R .103(Otherwise, the)5.103 F F1(else)
+.103(command completes.)144 422.4 R .103(Otherwise, the)5.103 F F1(else)
2.603 E F2(list)2.603 E F0 .103(is e)2.603 F -.15(xe)-.15 G .103
(cuted, if present.).15 F .103(The e)5.103 F .103(xit status is the e)
--.15 F .104(xit sta-)-.15 F(tus of the last command e)144 417.6 Q -.15
+-.15 F .104(xit sta-)-.15 F(tus of the last command e)144 434.4 Q -.15
(xe)-.15 G(cuted, or zero if no condition tested true.).15 E F1(while)
-108 434.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)2.5 E F0(;)A F1
-(done)2.5 E(until)108 446.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)
-2.5 E F0(;)A F1(done)2.5 E F0(The)144 458.4 Q F1(while)3.104 E F0 .603
+108 451.2 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)2.5 E F0(;)A F1
+(done)2.5 E(until)108 463.2 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)
+2.5 E F0(;)A F1(done)2.5 E F0(The)144 475.2 Q F1(while)3.104 E F0 .603
(command continuously e)3.104 F -.15(xe)-.15 G .603(cutes the).15 F F1
(do)3.103 E F2(list)3.103 E F0 .603(as long as the last command in)3.103
-F F2(list)3.103 E F0(returns)3.103 E .47(an e)144 470.4 R .47
+F F2(list)3.103 E F0(returns)3.103 E .47(an e)144 487.2 R .47
(xit status of zero.)-.15 F(The)5.47 E F1(until)2.97 E F0 .471
(command is identical to the)2.97 F F1(while)2.971 E F0 .471(command, e)
-2.971 F .471(xcept that the test)-.15 F .096(is ne)144 482.4 R -.05(ga)
+2.971 F .471(xcept that the test)-.15 F .096(is ne)144 499.2 R -.05(ga)
-.15 G .096(ted; the).05 F F1(do)2.596 E F2(list)2.686 E F0 .095(is e)
3.276 F -.15(xe)-.15 G .095(cuted as long as the last command in).15 F
F2(list)2.685 E F0 .095(returns a non-zero e)3.275 F .095(xit status.)
--.15 F 1.306(The e)144 494.4 R 1.306(xit status of the)-.15 F F1(while)
+-.15 F 1.306(The e)144 511.2 R 1.306(xit status of the)-.15 F F1(while)
3.806 E F0(and)3.806 E F1(until)3.807 E F0 1.307(commands is the e)3.807
F 1.307(xit status of the last)-.15 F F1(do)3.807 E F2(list)3.807 E F0
-(command)3.807 E -.15(exe)144 506.4 S(cuted, or zero if none w).15 E
-(as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F1(Copr)87 523.2 Q(ocesses)-.18
-E F0(A)108 535.2 Q F2(copr)3.713 E(ocess)-.45 E F0 1.213
+(command)3.807 E -.15(exe)144 523.2 S(cuted, or zero if none w).15 E
+(as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F1(Copr)87 540 Q(ocesses)-.18 E
+F0(A)108 552 Q F2(copr)3.713 E(ocess)-.45 E F0 1.213
(is a shell command preceded by the)3.713 F F1(copr)3.712 E(oc)-.18 E F0
(reserv)3.712 E 1.212(ed w)-.15 F 3.712(ord. A)-.1 F 1.212
(coprocess is e)3.712 F -.15(xe)-.15 G 1.212(cuted asyn-).15 F .574(chr\
onously in a subshell, as if the command had been terminated with the)
-108 547.2 R F1(&)3.075 E F0 .575(control operator)3.075 F 3.075(,w)-.4 G
-.575(ith a tw)-3.075 F(o-)-.1 E -.1(wa)108 559.2 S 2.5(yp).1 G
+108 564 R F1(&)3.075 E F0 .575(control operator)3.075 F 3.075(,w)-.4 G
+.575(ith a tw)-3.075 F(o-)-.1 E -.1(wa)108 576 S 2.5(yp).1 G
(ipe established between the e)-2.5 E -.15(xe)-.15 G
(cuting shell and the coprocess.).15 E(The format for a coprocess is:)
-108 576 Q F1(copr)144 592.8 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27 E
-F0(])A F2(command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ections)-.37 E
-F0(])A .923(This creates a coprocess named)108 609.6 R F2 -.27(NA)3.423
-G(ME).27 E F0 5.923(.I)C(f)-5.923 E F2 -.27(NA)3.423 G(ME).27 E F0 .922
-(is not supplied, the def)3.423 F .922(ault name is)-.1 F F2(COPR)3.422
-E(OC)-.4 E F0(.)A F2 -.27(NA)5.922 G(ME).27 E F0 .64
-(must not be supplied if)108 621.6 R F2(command)3.14 E F0 .64(is a)3.14
+108 592.8 Q F1(copr)144 609.6 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27
+E F0(])A F2(command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ections)-.37
+E F0(])A .923(This creates a coprocess named)108 626.4 R F2 -.27(NA)
+3.423 G(ME).27 E F0 5.923(.I)C(f)-5.923 E F2 -.27(NA)3.423 G(ME).27 E F0
+.922(is not supplied, the def)3.423 F .922(ault name is)-.1 F F2(COPR)
+3.422 E(OC)-.4 E F0(.)A F2 -.27(NA)5.922 G(ME).27 E F0 .64
+(must not be supplied if)108 638.4 R F2(command)3.14 E F0 .64(is a)3.14
F F2 .64(simple command)3.14 F F0 .64(\(see abo)3.14 F -.15(ve)-.15 G
.64(\); otherwise, it is interpreted as the \214rst).15 F -.1(wo)108
-633.6 S .163(rd of the simple command.).1 F .163(When the coproc is e)
+650.4 S .163(rd of the simple command.).1 F .163(When the coproc is e)
5.163 F -.15(xe)-.15 G .163(cuted, the shell creates an array v).15 F
-.163(ariable \(see)-.25 F F1(Arrays)2.662 E F0(belo)108 645.6 Q .511
+.163(ariable \(see)-.25 F F1(Arrays)2.662 E F0(belo)108 662.4 Q .511
(w\) named)-.25 F F2 -.27(NA)3.011 G(ME).27 E F0 .511(in the conte)3.011
F .511(xt of the e)-.15 F -.15(xe)-.15 G .511(cuting shell.).15 F .511
(The standard output of)5.511 F F2(command)3.212 E F0 .512(is connected)
-3.782 F .811(via a pipe to a \214le descriptor in the e)108 657.6 R -.15
+3.782 F .811(via a pipe to a \214le descriptor in the e)108 674.4 R -.15
(xe)-.15 G .81(cuting shell, and that \214le descriptor is assigned to)
.15 F F2 -.27(NA)3.31 G(ME).27 E F0 3.31([0]. The)B .716
-(standard input of)108 669.6 R F2(command)3.416 E F0 .716
+(standard input of)108 686.4 R F2(command)3.416 E F0 .716
(is connected via a pipe to a \214le descriptor in the e)3.986 F -.15
(xe)-.15 G .717(cuting shell, and that \214le).15 F .703
-(descriptor is assigned to)108 681.6 R F2 -.27(NA)3.203 G(ME).27 E F0
+(descriptor is assigned to)108 698.4 R F2 -.27(NA)3.203 G(ME).27 E F0
3.203([1]. This)B .703(pipe is established before an)3.203 F 3.202(yr)
-.15 G .702(edirections speci\214ed by the com-)-3.202 F 1.183
-(mand \(see)108 693.6 R F3(REDIRECTION)3.683 E F0(belo)3.433 E 3.683
+(mand \(see)108 710.4 R F3(REDIRECTION)3.683 E F0(belo)3.433 E 3.683
(w\). The)-.25 F 1.183(\214le descriptors can be utilized as ar)3.683 F
-1.184(guments to shell commands)-.18 F .07
-(and redirections using standard w)108 705.6 R .07(ord e)-.1 F 2.57
-(xpansions. The)-.15 F .07(process id of the shell spa)2.57 F .07
-(wned to e)-.15 F -.15(xe)-.15 G .07(cute the copro-).15 F .631
-(cess is a)108 717.6 R -.25(va)-.2 G .631(ilable as the v).25 F .631
-(alue of the v)-.25 F(ariable)-.25 E F2 -.27(NA)3.131 G(ME).27 E F0
-3.131(_PID. The)B F1(wait)3.131 E F0 -.2(bu)3.131 G .631
-(iltin command may be used to w).2 F(ait)-.1 E
-(for the coprocess to terminate.)108 729.6 Q(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(6)190.115 E 0 Cg EP
+1.184(guments to shell commands)-.18 F 1.982
+(and redirections using standard w)108 722.4 R 1.982(ord e)-.1 F 4.481
+(xpansions. The)-.15 F 1.981(process id of the shell spa)4.481 F 1.981
+(wned to e)-.15 F -.15(xe)-.15 G 1.981(cute the).15 F(GNU Bash-4.1)72
+768 Q(2009 October 9)142.905 E(6)197.895 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(The return status of a coprocess is the e)108 84 Q(xit status of)
--.15 E/F1 10/Times-Italic@0 SF(command)2.5 E F0(.)A/F2 10/Times-Bold@0
-SF(Shell Function De\214nitions)87 100.8 Q F0 2.698(As)108 112.8 S .198
+-.35 E .482(coprocess is a)108 84 R -.25(va)-.2 G .483(ilable as the v)
+.25 F .483(alue of the v)-.25 F(ariable)-.25 E/F1 10/Times-Italic@0 SF
+-.27(NA)2.983 G(ME).27 E F0 2.983(_PID. The)B/F2 10/Times-Bold@0 SF
+(wait)2.983 E F0 -.2(bu)2.983 G .483(iltin command may be used to).2 F
+-.1(wa)108 96 S(it for the coprocess to terminate.).1 E
+(The return status of a coprocess is the e)108 112.8 Q(xit status of)
+-.15 E F1(command)2.5 E F0(.)A F2(Shell Function De\214nitions)87 129.6
+Q F0 2.698(As)108 141.6 S .198
(hell function is an object that is called lik)-2.698 F 2.698(eas)-.1 G
.198(imple command and e)-2.698 F -.15(xe)-.15 G .197
-(cutes a compound command with).15 F 2.5(an)108 124.8 S .5 -.25(ew s)
+(cutes a compound command with).15 F 2.5(an)108 153.6 S .5 -.25(ew s)
-2.5 H(et of positional parameters.).25 E
-(Shell functions are declared as follo)5 E(ws:)-.25 E([)108 141.6 Q F2
+(Shell functions are declared as follo)5 E(ws:)-.25 E([)108 170.4 Q F2
(function)2.5 E F0(])2.5 E F1(name)2.5 E F0(\(\))2.5 E F1
(compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ection)-.37
-E F0(])A 1.402(This de\214nes a function named)144 153.6 R F1(name)3.902
+E F0(])A 1.402(This de\214nes a function named)144 182.4 R F1(name)3.902
E F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402(ed w)-.15 F(ord)-.1 E F2
(function)3.902 E F0 1.402(is optional.)3.902 F 1.403(If the)6.402 F F2
-(function)3.903 E F0(reserv)144 165.6 Q .162(ed w)-.15 F .162
+(function)3.903 E F0(reserv)144 194.4 Q .162(ed w)-.15 F .162
(ord is supplied, the parentheses are optional.)-.1 F(The)5.162 E F1
(body)2.662 E F0 .162(of the function is the compound)2.662 F(command)
-144 177.6 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084
+144 206.4 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084
(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G 2.584(\). That)
-.15 F .084(command is usually a)2.584 F F1(list)144 189.6 Q F0 .044
+.15 F .084(command is usually a)2.584 F F1(list)144 218.4 Q F0 .044
(of commands between { and }, b)2.544 F .044(ut may be an)-.2 F 2.544
(yc)-.15 G .044(ommand listed under)-2.544 F F2 .044(Compound Commands)
-2.544 F F0(abo)144 201.6 Q -.15(ve)-.15 G(.).15 E F1
+2.544 F F0(abo)144 230.4 Q -.15(ve)-.15 G(.).15 E F1
(compound\255command)6.67 E F0 1.67(is e)4.17 F -.15(xe)-.15 G 1.671
(cuted whene).15 F -.15(ve)-.25 G(r).15 E F1(name)4.171 E F0 1.671
(is speci\214ed as the name of a simple)4.171 F 3.009(command. An)144
-213.6 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F/F3 9
+242.4 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F/F3 9
/Times-Bold@0 SF(REDIRECTION)3.009 E F0(belo)2.759 E .509
(w\) speci\214ed when a function is de\214ned are)-.25 F .58
-(performed when the function is e)144 225.6 R -.15(xe)-.15 G 3.08
+(performed when the function is e)144 254.4 R -.15(xe)-.15 G 3.08
(cuted. The).15 F -.15(ex)3.081 G .581
(it status of a function de\214nition is zero unless a).15 F .177(synta\
x error occurs or a readonly function with the same name already e)144
-237.6 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F
--.15(ex)144 249.6 S .64(it status of a function is the e).15 F .64
+266.4 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F
+-.15(ex)144 278.4 S .64(it status of a function is the e).15 F .64
(xit status of the last command e)-.15 F -.15(xe)-.15 G .64
(cuted in the body).15 F 5.64(.\()-.65 G(See)-5.64 E F3(FUNC-)3.14 E
-(TIONS)144 261.6 Q F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95
-/Times-Bold@0 SF(COMMENTS)72 278.4 Q F0 .982(In a non-interacti)108
-290.4 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
+(TIONS)144 290.4 Q F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95
+/Times-Bold@0 SF(COMMENTS)72 307.2 Q F0 .982(In a non-interacti)108
+319.2 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
-.15(ve s)-.25 H .982(hell in which the).15 F F2(interacti)3.482 E -.1
(ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F2(shopt)3.482 E
-F0 -.2(bu)108 302.4 S .951(iltin is enabled \(see).2 F F3 .952(SHELL B)
+F0 -.2(bu)108 331.2 S .951(iltin is enabled \(see).2 F F3 .952(SHELL B)
3.451 F(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952
(w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F2(#)3.452 E
F0 .952(causes that w)3.452 F(ord)-.1 E .605
-(and all remaining characters on that line to be ignored.)108 314.4 R
+(and all remaining characters on that line to be ignored.)108 343.2 R
.604(An interacti)5.605 F .904 -.15(ve s)-.25 H .604(hell without the)
-.15 F F2(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 326.4 Q F0
+.15 F F2(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 355.2 Q F0
1.336(option enabled does not allo)3.836 F 3.836(wc)-.25 G 3.836
(omments. The)-3.836 F F2(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(interacti)108
-338.4 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 355.2 S -.438(OT)
-.11 G(ING).438 E F1(Quoting)108 367.2 Q F0 .478(is used to remo)2.978 F
+367.2 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 384 S -.438(OT)
+.11 G(ING).438 E F1(Quoting)108 396 Q F0 .478(is used to remo)2.978 F
.777 -.15(ve t)-.15 H .477
(he special meaning of certain characters or w).15 F .477
(ords to the shell.)-.1 F .477(Quoting can be)5.477 F .184
(used to disable special treatment for special characters, to pre)108
-379.2 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
-(ords from being recognized as)-.1 F(such, and to pre)108 391.2 Q -.15
-(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108
-408 R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
-(listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
-2.788 E F0 .288(has special meaning to the shell and must be)2.538 F
-(quoted if it is to represent itself.)108 420 Q 1.344
-(When the command history e)108 436.8 R 1.344(xpansion f)-.15 F 1.344
+408 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
+(ords from being recognized as)-.1 F(such, and to pre)108 420 Q -.15(ve)
+-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108 436.8
+R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288(listed abo)
+2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)2.788 E F0 .288
+(has special meaning to the shell and must be)2.538 F
+(quoted if it is to represent itself.)108 448.8 Q 1.344
+(When the command history e)108 465.6 R 1.344(xpansion f)-.15 F 1.344
(acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594
(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.595 E 1.345(w\), the)
--.25 F F1(history e)108 448.8 Q(xpansion)-.2 E F0(character)2.5 E 2.5
+-.25 F F1(history e)108 477.6 Q(xpansion)-.2 E F0(character)2.5 E 2.5
(,u)-.4 G(sually)-2.5 E F2(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5
E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E
-(There are three quoting mechanisms: the)108 465.6 Q F1(escape c)2.5 E
+(There are three quoting mechanisms: the)108 494.4 Q F1(escape c)2.5 E
(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G
-(ingle quotes, and double quotes.)-2.5 E 2.975(An)108 482.4 S .475
+(ingle quotes, and double quotes.)-2.5 E 2.975(An)108 511.2 S .475
(on-quoted backslash \()-2.975 F F2(\\)A F0 2.974(\)i)C 2.974(st)-2.974
G(he)-2.974 E F1 .474(escape c)2.974 F(har)-.15 E(acter)-.15 E F0 5.474
(.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474(es the literal v)-.15 F
-.474(alue of the ne)-.25 F .474(xt character that)-.15 F(follo)108 494.4
+.474(alue of the ne)-.25 F .474(xt character that)-.15 F(follo)108 523.2
Q 1.553(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
(wline>. If)-.25 F(a)4.053 E F2(\\)4.053 E F0(<ne)A 1.553
(wline> pair appears, and the backslash is not itself)-.25 F 1.123
-(quoted, the)108 506.4 R F2(\\)3.623 E F0(<ne)A 1.122
+(quoted, the)108 535.2 R F2(\\)3.623 E F0(<ne)A 1.122
(wline> is treated as a line continuation \(that is, it is remo)-.25 F
-.15(ve)-.15 G 3.622(df).15 G 1.122(rom the input stream and)-3.622 F
-(ef)108 518.4 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
-(Enclosing characters in single quotes preserv)108 535.2 R .295
+(ef)108 547.2 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
+(Enclosing characters in single quotes preserv)108 564 R .295
(es the literal v)-.15 F .295(alue of each character within the quotes.)
-.25 F 2.795(As)5.295 G(in-)-2.795 E
-(gle quote may not occur between single quotes, e)108 547.2 Q -.15(ve)
--.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034
-(Enclosing characters in double quotes preserv)108 564 R .034
+(gle quote may not occur between single quotes, e)108 576 Q -.15(ve)-.25
+G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034
+(Enclosing characters in double quotes preserv)108 592.8 R .034
(es the literal v)-.15 F .034
(alue of all characters within the quotes, with the)-.25 F -.15(ex)108
-576 S .827(ception of).15 F F2($)3.327 E F0(,)A F2<92>3.328 E F0(,)A F2
-(\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
+604.8 S .827(ception of).15 F F2($)3.327 E F0(,)A F2<92>3.328 E F0(,)A
+F2(\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
(xpansion is enabled,)-.15 F F2(!)3.328 E F0 5.828(.T)C .828
(he characters)-5.828 F F2($)3.328 E F0(and)3.328 E F2<92>3.328 E F0
.828(retain their special)3.328 F .075(meaning within double quotes.)108
-588 R .074(The backslash retains its special meaning only when follo)
-5.075 F .074(wed by one of the)-.25 F(follo)108 600 Q .204
+616.8 R .074(The backslash retains its special meaning only when follo)
+5.075 F .074(wed by one of the)-.25 F(follo)108 628.8 Q .204
(wing characters:)-.25 F F2($)2.704 E F0(,)A F2<92>2.704 E F0(,)A F2(")
3.537 E F0(,).833 E F2(\\)2.704 E F0 2.704(,o)C(r)-2.704 E F2(<newline>)
2.705 E F0 5.205(.A)C .205
(double quote may be quoted within double quotes by pre-)-2.5 F .082
-(ceding it with a backslash.)108 612 R .082(If enabled, history e)5.082
-F .082(xpansion will be performed unless an)-.15 F F2(!)2.581 E F0 .081
-(appearing in double)5.081 F(quotes is escaped using a backslash.)108
-624 Q(The backslash preceding the)5 E F2(!)2.5 E F0(is not remo)5 E -.15
-(ve)-.15 G(d.).15 E(The special parameters)108 640.8 Q F2(*)2.5 E F0
-(and)2.5 E F2(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
+(ceding it with a backslash.)108 640.8 R .082(If enabled, history e)
+5.082 F .082(xpansion will be performed unless an)-.15 F F2(!)2.581 E F0
+.081(appearing in double)5.081 F(quotes is escaped using a backslash.)
+108 652.8 Q(The backslash preceding the)5 E F2(!)2.5 E F0(is not remo)5
+E -.15(ve)-.15 G(d.).15 E(The special parameters)108 669.6 Q F2(*)2.5 E
+F0(and)2.5 E F2(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
(pecial meaning when in double quotes \(see).15 E F3 -.666(PA)2.5 G
-(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 657.6 S .211
+(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 686.4 S .211
(rds of the form).8 F F2($)2.711 E F0<08>A F1(string)A F0 2.711<0861>C
.211(re treated specially)-2.711 F 5.211(.T)-.65 G .211(he w)-5.211 F
.211(ord e)-.1 F .212(xpands to)-.15 F F1(string)2.712 E F0 2.712(,w)C
.212(ith backslash-escaped char)-2.712 F(-)-.2 E .605
-(acters replaced as speci\214ed by the ANSI C standard.)108 669.6 R .604
+(acters replaced as speci\214ed by the ANSI C standard.)108 698.4 R .604
(Backslash escape sequences, if present, are decoded)5.605 F(as follo)
-108 681.6 Q(ws:)-.25 E F2(\\a)144 693.6 Q F0(alert \(bell\))28.22 E F2
-(\\b)144 705.6 Q F0(backspace)27.66 E F2(\\e)144 717.6 Q F0
-(an escape character)28.78 E(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(7)190.115 E 0 Cg EP
+108 710.4 Q(ws:)-.25 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(7)
+197.895 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(\\f)144 84 Q F0(form feed)29.89 E F1(\\n)
-144 96 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 108 Q F0
-(carriage return)28.78 E F1(\\t)144 120 Q F0(horizontal tab)29.89 E F1
-(\\v)144 132 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 144 Q F0
-(backslash)30.44 E F1<5c08>144 156 Q F0(single quote)30.44 E F1(\\)144
-168 Q/F2 10/Times-Italic@0 SF(nnn)A F0(the eight-bit character whose v)
+-.35 E/F1 10/Times-Bold@0 SF(\\a)144 84 Q F0(alert \(bell\))28.22 E F1
+(\\b)144 96 Q F0(backspace)27.66 E F1(\\e)144 108 Q F0
+(an escape character)28.78 E F1(\\f)144 120 Q F0(form feed)29.89 E F1
+(\\n)144 132 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 144 Q
+F0(carriage return)28.78 E F1(\\t)144 156 Q F0(horizontal tab)29.89 E F1
+(\\v)144 168 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 180 Q F0
+(backslash)30.44 E F1<5c08>144 192 Q F0(single quote)30.44 E F1(\\)144
+204 Q/F2 10/Times-Italic@0 SF(nnn)A F0(the eight-bit character whose v)
18.22 E(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
-(\(one to three digits\))2.5 E F1(\\x)144 180 Q F2(HH)A F0
+(\(one to three digits\))2.5 E F1(\\x)144 216 Q F2(HH)A F0
(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
--.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\c)144 192 Q F2(x)A F0 2.5
-(ac)24.34 G(ontrol-)-2.5 E F2(x)A F0(character)2.5 E(The e)108 208.8 Q(\
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\c)144 228 Q F2(x)A F0 2.5
+(ac)24.34 G(ontrol-)-2.5 E F2(x)A F0(character)2.5 E(The e)108 244.8 Q(\
xpanded result is single-quoted, as if the dollar sign had not been pre\
-sent.)-.15 E 2.985(Ad)108 225.6 S .485
-(ouble-quoted string preceded by a dollar sign \()-2.985 F F1($)A F0
-2.986(\)w)C .486(ill cause the string to be translated according to the)
--2.986 F .118(current locale.)108 237.6 R .118(If the current locale is)
-5.118 F F1(C)2.618 E F0(or)2.618 E F1(POSIX)2.618 E F0 2.618(,t)C .117
-(he dollar sign is ignored.)-2.618 F .117
-(If the string is translated and)5.117 F
-(replaced, the replacement is double-quoted.)108 249.6 Q/F3 10.95
-/Times-Bold@0 SF -.81(PA)72 266.4 S(RAMETERS).81 E F0(A)108 278.4 Q F2
-(par)4.592 E(ameter)-.15 E F0 .842(is an entity that stores v)4.072 F
+sent.)-.15 E 2.64(Ad)108 261.6 S .14
+(ouble-quoted string preceded by a dollar sign \()-2.64 F F1($)A F0(")A
+F2(string)A F0 .14("\) will cause the string to be translated according)
+B .496(to the current locale.)108 273.6 R .495(If the current locale is)
+5.496 F F1(C)2.995 E F0(or)2.995 E F1(POSIX)2.995 E F0 2.995(,t)C .495
+(he dollar sign is ignored.)-2.995 F .495(If the string is trans-)5.495
+F(lated and replaced, the replacement is double-quoted.)108 285.6 Q/F3
+10.95/Times-Bold@0 SF -.81(PA)72 302.4 S(RAMETERS).81 E F0(A)108 314.4 Q
+F2(par)4.592 E(ameter)-.15 E F0 .842(is an entity that stores v)4.072 F
3.342(alues. It)-.25 F .842(can be a)3.342 F F2(name)3.343 E F0 3.343
(,an).18 G(umber)-3.343 E 3.343(,o)-.4 G 3.343(ro)-3.343 G .843
-(ne of the special characters)-3.343 F .823(listed belo)108 290.4 R
+(ne of the special characters)-3.343 F .823(listed belo)108 326.4 R
3.323(wu)-.25 G(nder)-3.323 E F1 .823(Special P)3.323 F(arameters)-.1 E
F0 5.823(.A)C F2(variable)-2.21 E F0 .823(is a parameter denoted by a)
3.503 F F2(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823
-(riable has a).25 F F2(value)108 302.4 Q F0 .368(and zero or more)2.868
+(riable has a).25 F F2(value)108 338.4 Q F0 .368(and zero or more)2.868
F F2(attrib)2.868 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369
(utes are assigned using the)-.2 F F1(declar)2.869 E(e)-.18 E F0 -.2(bu)
2.869 G .369(iltin command \(see).2 F F1(declar)2.869 E(e)-.18 E F0
-(belo)108 314.4 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9/Times-Bold@0 SF(SHELL B)
+(belo)108 350.4 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9/Times-Bold@0 SF(SHELL B)
2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0
-2.755(Ap)108 331.2 S .255(arameter is set if it has been assigned a v)
+2.755(Ap)108 367.2 S .255(arameter is set if it has been assigned a v)
-2.755 F 2.754(alue. The)-.25 F .254(null string is a v)2.754 F .254
(alid v)-.25 F 2.754(alue. Once)-.25 F 2.754(av)2.754 G .254
-(ariable is set, it)-3.004 F(may be unset only by using the)108 343.2 Q
+(ariable is set, it)-3.004 F(may be unset only by using the)108 379.2 Q
F1(unset)2.5 E F0 -.2(bu)2.5 G(iltin command \(see).2 E F4(SHELL B)2.5 E
-(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 360 Q
+(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 396 Q
F2(variable)2.79 E F0(may be assigned to by a statement of the form)2.68
-E F2(name)144 376.8 Q F0(=[)A F2(value)A F0(])A(If)108 393.6 Q F2(value)
+E F2(name)144 412.8 Q F0(=[)A F2(value)A F0(])A(If)108 429.6 Q F2(value)
3.022 E F0 .232(is not gi)2.912 F -.15(ve)-.25 G .232(n, the v).15 F
.232(ariable is assigned the null string.)-.25 F(All)5.233 E F2(values)
3.023 E F0(under)3.003 E .233(go tilde e)-.18 F .233
-(xpansion, parameter)-.15 F .515(and v)108 405.6 R .515(ariable e)-.25 F
+(xpansion, parameter)-.15 F .515(and v)108 441.6 R .515(ariable e)-.25 F
.515(xpansion, command substitution, arithmetic e)-.15 F .515
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see)
--3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 417.6 Q 2.698
+-3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 453.6 Q 2.698
(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F1
(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)
2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .199
(luated as an arithmetic e).25 F .199(xpression e)-.15 F -.15(ve)-.25 G
-(n).15 E .902(if the $\(\(...\)\) e)108 429.6 R .902
+(n).15 E .902(if the $\(\(...\)\) e)108 465.6 R .902
(xpansion is not used \(see)-.15 F F1 .901(Arithmetic Expansion)3.401 F
F0(belo)3.401 E 3.401(w\). W)-.25 F .901
-(ord splitting is not performed,)-.8 F 1.178(with the e)108 441.6 R
+(ord splitting is not performed,)-.8 F 1.178(with the e)108 477.6 R
1.178(xception of)-.15 F F1("$@")3.678 E F0 1.178(as e)3.678 F 1.179
(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.179(Special P)
3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179
-(xpansion is not)-.15 F 3.649(performed. Assignment)108 453.6 R 1.149
+(xpansion is not)-.15 F 3.649(performed. Assignment)108 489.6 R 1.149
(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F1
(alias)3.648 E F0(,)A F1(declar)3.648 E(e)-.18 E F0(,)A F1(typeset)3.648
-E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 465.6 S(adonly).18 E F0
+E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 501.6 S(adonly).18 E F0
2.5(,a)C(nd)-2.5 E F1(local)2.5 E F0 -.2(bu)2.5 G(iltin commands.).2 E
-.376(In the conte)108 482.4 R .376
+.376(In the conte)108 518.4 R .376
(xt where an assignment statement is assigning a v)-.15 F .376
(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377
(x, the +=)-.15 F .257
-(operator can be used to append to or add to the v)108 494.4 R(ariable')
+(operator can be used to append to or add to the v)108 530.4 R(ariable')
-.25 E 2.757(sp)-.55 G(re)-2.757 E .257(vious v)-.25 F 2.757(alue. When)
-.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .372
-(for which the inte)108 506.4 R .372(ger attrib)-.15 F .372
+(for which the inte)108 542.4 R .372(ger attrib)-.15 F .372
(ute has been set,)-.2 F F2(value)2.872 E F0 .372(is e)2.872 F -.25(va)
-.25 G .372(luated as an arithmetic e).25 F .373
-(xpression and added to the)-.15 F -.25(va)108 518.4 S(riable').25 E
+(xpression and added to the)-.15 F -.25(va)108 554.4 S(riable').25 E
2.889(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F
-.25(va)-.25 G 2.889(luated. When).25 F .389
(+= is applied to an array v)2.889 F .388(ariable using compound)-.25 F
-.185(assignment \(see)108 530.4 R F1(Arrays)2.685 E F0(belo)2.685 E .185
+.185(assignment \(see)108 566.4 R F1(Arrays)2.685 E F0(belo)2.685 E .185
(w\), the v)-.25 F(ariable')-.25 E 2.685(sv)-.55 G .185
(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.686(wv)
--.25 G .186(alues are)-2.936 F 1.385(appended to the array be)108 542.4
+-.25 G .186(alues are)-2.936 F 1.385(appended to the array be)108 578.4
R 1.384(ginning at one greater than the array')-.15 F 3.884(sm)-.55 G
1.384(aximum inde)-3.884 F 3.884(x\()-.15 G 1.384(for inde)-3.884 F -.15
(xe)-.15 G 3.884(da).15 G 1.384(rrays\) or)-3.884 F .122
-(added as additional k)108 554.4 R -.15(ey)-.1 G<ad76>.15 E .122
+(added as additional k)108 590.4 R -.15(ey)-.1 G<ad76>.15 E .122
(alue pairs in an associati)-.25 F .423 -.15(ve a)-.25 H(rray).15 E
5.123(.W)-.65 G .123(hen applied to a string-v)-5.123 F .123(alued v)
--.25 F(ariable,)-.25 E F2(value)2.623 E F0(is e)108 566.4 Q
+-.25 F(ariable,)-.25 E F2(value)2.623 E F0(is e)108 602.4 Q
(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
-(alue.)-2.75 E F1 -.2(Po)87 583.2 S(sitional P).2 E(arameters)-.1 E F0
-(A)108 595.2 Q F2 .706(positional par)4.456 F(ameter)-.15 E F0 .706(is \
+(alue.)-2.75 E F1 -.2(Po)87 619.2 S(sitional P).2 E(arameters)-.1 E F0
+(A)108 631.2 Q F2 .706(positional par)4.456 F(ameter)-.15 E F0 .706(is \
a parameter denoted by one or more digits, other than the single digit \
0.)3.936 F(Posi-)5.705 E .444
-(tional parameters are assigned from the shell')108 607.2 R 2.944(sa)
+(tional parameters are assigned from the shell')108 643.2 R 2.944(sa)
-.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1
-(ke).2 G .445(d, and may be reassigned using).1 F(the)108 619.2 Q F1
+(ke).2 G .445(d, and may be reassigned using).1 F(the)108 655.2 Q F1
(set)3.334 E F0 -.2(bu)3.334 G .834(iltin command.).2 F .833(Positional\
parameters may not be assigned to with assignment statements.)5.834 F
(The)5.833 E .334(positional parameters are temporarily replaced when a\
- shell function is e)108 631.2 R -.15(xe)-.15 G .334(cuted \(see).15 F
+ shell function is e)108 667.2 R -.15(xe)-.15 G .334(cuted \(see).15 F
F4(FUNCTIONS)2.834 E F0(belo)2.584 E(w\).)-.25 E 1.404(When a positiona\
-l parameter consisting of more than a single digit is e)108 648 R 1.403
-(xpanded, it must be enclosed in)-.15 F(braces \(see)108 660 Q F4(EXP)
-2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1(Special P)87 676.8 Q
-(arameters)-.1 E F0 1.674(The shell treats se)108 688.8 R -.15(ve)-.25 G
-1.674(ral parameters specially).15 F 6.675(.T)-.65 G 1.675
-(hese parameters may only be referenced; assignment to)-6.675 F
-(them is not allo)108 700.8 Q(wed.)-.25 E F1(*)108 712.8 Q F0 .606
-(Expands to the positional parameters, starting from one.)31 F .605
-(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F 1.432
-(ble quotes, it e)144 724.8 R 1.432(xpands to a single w)-.15 F 1.432
-(ord with the v)-.1 F 1.433
-(alue of each parameter separated by the \214rst)-.25 F(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(8)190.115 E 0 Cg EP
+l parameter consisting of more than a single digit is e)108 684 R 1.403
+(xpanded, it must be enclosed in)-.15 F(braces \(see)108 696 Q F4(EXP)
+2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(8)197.895 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .335(character of the)144 84 R/F1 9/Times-Bold@0 SF(IFS)2.835 E
-F0 .335(special v)2.585 F 2.835(ariable. That)-.25 F .335(is, ")2.835 F
-/F2 10/Times-Bold@0 SF($*)A F0 2.834("i)C 2.834(se)-2.834 G(qui)-2.834 E
--.25(va)-.25 G .334(lent to ").25 F F2($1)A/F3 10/Times-Italic@0 SF(c)A
-F2($2)A F3(c)A F2(...)A F0 .334(", where)B F3(c)3.034 E F0 .334
-(is the \214rst)3.144 F .487(character of the v)144 96 R .487
-(alue of the)-.25 F F1(IFS)2.987 E F0 -.25(va)2.737 G 2.987(riable. If)
-.25 F F1(IFS)2.987 E F0 .487
-(is unset, the parameters are separated by spaces.)2.737 F(If)144 108 Q
-F1(IFS)2.5 E F0(is null, the parameters are joined without interv)2.25 E
-(ening separators.)-.15 E F2(@)108 120 Q F0 .606
+-.35 E/F1 10/Times-Bold@0 SF(Special P)87 84 Q(arameters)-.1 E F0 1.674
+(The shell treats se)108 96 R -.15(ve)-.25 G 1.674
+(ral parameters specially).15 F 6.675(.T)-.65 G 1.675
+(hese parameters may only be referenced; assignment to)-6.675 F
+(them is not allo)108 108 Q(wed.)-.25 E F1(*)108 120 Q F0 .606
+(Expands to the positional parameters, starting from one.)31 F .605
+(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .083
+(ble quotes, it e)144 132 R .084(xpands to a single w)-.15 F .084
+(ord with the v)-.1 F .084
+(alue of each parameter separated by the \214rst char)-.25 F(-)-.2 E
+.004(acter of the)144 144 R/F2 9/Times-Bold@0 SF(IFS)2.503 E F0 .003
+(special v)2.253 F 2.503(ariable. That)-.25 F .003(is, ")2.503 F F1($*)A
+F0 2.503("i)C 2.503(se)-2.503 G(qui)-2.503 E -.25(va)-.25 G .003
+(lent to ").25 F F1($1)A/F3 10/Times-Italic@0 SF(c)A F1($2)A F3(c)A F1
+(...)A F0 .003(", where)B F3(c)2.703 E F0 .003(is the \214rst char)2.813
+F(-)-.2 E .768(acter of the v)144 156 R .768(alue of the)-.25 F F2(IFS)
+3.268 E F0 -.25(va)3.018 G 3.268(riable. If).25 F F2(IFS)3.268 E F0 .769
+(is unset, the parameters are separated by spaces.)3.018 F(If)5.769 E F2
+(IFS)144 168 Q F0(is null, the parameters are joined without interv)2.25
+E(ening separators.)-.15 E F1(@)108 180 Q F0 .606
(Expands to the positional parameters, starting from one.)26.7 F .605
(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .113
-(ble quotes, each parameter e)144 132 R .113(xpands to a separate w)-.15
-F 2.614(ord. That)-.1 F .114(is, ")2.614 F F2($@)A F0 2.614("i)C 2.614
-(se)-2.614 G(qui)-2.614 E -.25(va)-.25 G .114(lent to ").25 F F2($1)A F0
-2.614("")C F2($2)-2.614 E F0 2.614(".)C(..)-2.614 E .135
-(If the double-quoted e)144 144 R .135(xpansion occurs within a w)-.15 F
+(ble quotes, each parameter e)144 192 R .113(xpands to a separate w)-.15
+F 2.614(ord. That)-.1 F .114(is, ")2.614 F F1($@)A F0 2.614("i)C 2.614
+(se)-2.614 G(qui)-2.614 E -.25(va)-.25 G .114(lent to ").25 F F1($1)A F0
+2.614("")C F1($2)-2.614 E F0 2.614(".)C(..)-2.614 E .135
+(If the double-quoted e)144 204 R .135(xpansion occurs within a w)-.15 F
.135(ord, the e)-.1 F .134(xpansion of the \214rst parameter is joined)
--.15 F .15(with the be)144 156 R .15(ginning part of the original w)-.15
+-.15 F .15(with the be)144 216 R .15(ginning part of the original w)-.15
F .151(ord, and the e)-.1 F .151
(xpansion of the last parameter is joined with)-.15 F .338
-(the last part of the original w)144 168 R 2.838(ord. When)-.1 F .337
-(there are no positional parameters, ")2.838 F F2($@)A F0 2.837("a)C(nd)
--2.837 E F2($@)2.837 E F0 -.15(ex)2.837 G(pand).15 E
-(to nothing \(i.e., the)144 180 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve)
--.15 G(d\).).15 E F2(#)108 192 Q F0
-(Expands to the number of positional parameters in decimal.)31 E F2(?)
-108 204 Q F0(Expands to the e)31 E(xit status of the most recently e)
--.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F2<ad>108
-216 Q F0 .881
+(the last part of the original w)144 228 R 2.838(ord. When)-.1 F .337
+(there are no positional parameters, ")2.838 F F1($@)A F0 2.837("a)C(nd)
+-2.837 E F1($@)2.837 E F0 -.15(ex)2.837 G(pand).15 E
+(to nothing \(i.e., the)144 240 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve)
+-.15 G(d\).).15 E F1(#)108 252 Q F0
+(Expands to the number of positional parameters in decimal.)31 E F1(?)
+108 264 Q F0(Expands to the e)31 E(xit status of the most recently e)
+-.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F1<ad>108
+276 Q F0 .881
(Expands to the current option \215ags as speci\214ed upon in)30.3 F -.2
-(vo)-.4 G .881(cation, by the).2 F F2(set)3.382 E F0 -.2(bu)3.382 G .882
+(vo)-.4 G .881(cation, by the).2 F F1(set)3.382 E F0 -.2(bu)3.382 G .882
(iltin command, or).2 F(those set by the shell itself \(such as the)144
-228 Q F2<ad69>2.5 E F0(option\).)2.5 E F2($)108 240 Q F0 .214
+288 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 300 Q F0 .214
(Expands to the process ID of the shell.)31 F .214
(In a \(\) subshell, it e)5.214 F .214
(xpands to the process ID of the current)-.15 F
-(shell, not the subshell.)144 252 Q F2(!)108 264 Q F0
+(shell, not the subshell.)144 312 Q F1(!)108 324 Q F0
(Expands to the process ID of the most recently e)32.67 E -.15(xe)-.15 G
-(cuted background \(asynchronous\) command.).15 E F2(0)108 276 Q F0
+(cuted background \(asynchronous\) command.).15 E F1(0)108 336 Q F0
1.691(Expands to the name of the shell or shell script.)31 F 1.692
-(This is set at shell initialization.)6.692 F(If)6.692 E F2(bash)4.192 E
-F0(is)4.192 E(in)144 288 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578
-(ith a \214le of commands,)-3.078 F F2($0)3.078 E F0 .578
-(is set to the name of that \214le.)3.078 F(If)5.577 E F2(bash)3.077 E
-F0 .577(is started with the)3.077 F F2<ad63>3.077 E F0 .368
-(option, then)144 300 R F2($0)2.869 E F0 .369(is set to the \214rst ar)
+(This is set at shell initialization.)6.692 F(If)6.692 E F1(bash)4.192 E
+F0(is)4.192 E(in)144 348 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578
+(ith a \214le of commands,)-3.078 F F1($0)3.078 E F0 .578
+(is set to the name of that \214le.)3.078 F(If)5.577 E F1(bash)3.077 E
+F0 .577(is started with the)3.077 F F1<ad63>3.077 E F0 .368
+(option, then)144 360 R F1($0)2.869 E F0 .369(is set to the \214rst ar)
2.869 F .369(gument after the string to be e)-.18 F -.15(xe)-.15 G .369
(cuted, if one is present.).15 F(Other)5.369 E(-)-.2 E
-(wise, it is set to the \214le name used to in)144 312 Q -.2(vo)-.4 G
--.1(ke).2 G F2(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5
-H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F2(_)108
-324 Q F0 .055(At shell startup, set to the absolute pathname used to in)
+(wise, it is set to the \214le name used to in)144 372 Q -.2(vo)-.4 G
+-.1(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5
+H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F1(_)108
+384 Q F0 .055(At shell startup, set to the absolute pathname used to in)
31 F -.2(vo)-.4 G .255 -.1(ke t).2 H .054
(he shell or shell script being e).1 F -.15(xe)-.15 G(cuted).15 E .691
-(as passed in the en)144 336 R .691(vironment or ar)-.4 F .691
+(as passed in the en)144 396 R .691(vironment or ar)-.4 F .691
(gument list.)-.18 F(Subsequently)5.691 E 3.191(,e)-.65 G .692
-(xpands to the last ar)-3.341 F .692(gument to the)-.18 F(pre)144 348 Q
+(xpands to the last ar)-3.341 F .692(gument to the)-.18 F(pre)144 408 Q
.571(vious command, after e)-.25 F 3.071(xpansion. Also)-.15 F .571
(set to the full pathname used to in)3.071 F -.2(vo)-.4 G .77 -.1(ke e)
-.2 H .57(ach command).1 F -.15(exe)144 360 S 1.6
+.2 H .57(ach command).1 F -.15(exe)144 420 S 1.6
(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
(xported to that command.)-.15 F 1.6(When checking mail, this)6.6 F
(parameter holds the name of the mail \214le currently being check)144
-372 Q(ed.)-.1 E F2(Shell V)87 388.8 Q(ariables)-.92 E F0(The follo)108
-400.8 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA)
-108 417.6 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E
--.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E F0(.)A
-F2 -.3(BA)108 429.6 S(SHOPTS).3 E F0 2.549(Ac)144 441.6 S .049
+432 Q(ed.)-.1 E F1(Shell V)87 448.8 Q(ariables)-.92 E F0(The follo)108
+460.8 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F1 -.3(BA)
+108 477.6 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E
+-.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A
+F1 -.3(BA)108 489.6 S(SHOPTS).3 E F0 2.549(Ac)144 501.6 S .049
(olon-separated list of enabled shell options.)-2.549 F .049(Each w)
5.049 F .049(ord in the list is a v)-.1 F .049(alid ar)-.25 F .049
-(gument for the)-.18 F F2<ad73>2.548 E F0 1.398(option to the)144 453.6
-R F2(shopt)3.898 E F0 -.2(bu)3.898 G 1.398(iltin command \(see).2 F F1
+(gument for the)-.18 F F1<ad73>2.548 E F0 1.398(option to the)144 513.6
+R F1(shopt)3.898 E F0 -.2(bu)3.898 G 1.398(iltin command \(see).2 F F2
1.398(SHELL B)3.898 F(UIL)-.09 E 1.398(TIN COMMANDS)-.828 F F0(belo)
3.648 E 3.898(w\). The)-.25 F(options)3.898 E .477(appearing in)144
-465.6 R F1 -.27(BA)2.977 G(SHOPTS).27 E F0 .477(are those reported as)
-2.727 F F3(on)3.207 E F0(by)3.217 E F2(shopt)2.977 E F0 5.476(.I)C 2.976
+525.6 R F2 -.27(BA)2.977 G(SHOPTS).27 E F0 .477(are those reported as)
+2.727 F F3(on)3.207 E F0(by)3.217 E F1(shopt)2.977 E F0 5.476(.I)C 2.976
(ft)-5.476 G .476(his v)-2.976 F .476(ariable is in the en)-.25 F
-(vironment)-.4 E(when)144 477.6 Q F2(bash)3.141 E F0 .642(starts up, ea\
+(vironment)-.4 E(when)144 537.6 Q F1(bash)3.141 E F0 .642(starts up, ea\
ch shell option in the list will be enabled before reading an)3.141 F
-3.142(ys)-.15 G .642(tartup \214les.)-3.142 F(This v)144 489.6 Q
-(ariable is read-only)-.25 E(.)-.65 E F2 -.3(BA)108 501.6 S(SHPID).3 E
-F0 .361(Expands to the process id of the current)144 513.6 R F2(bash)
+3.142(ys)-.15 G .642(tartup \214les.)-3.142 F(This v)144 549.6 Q
+(ariable is read-only)-.25 E(.)-.65 E F1 -.3(BA)108 561.6 S(SHPID).3 E
+F0 .361(Expands to the process id of the current)144 573.6 R F1(bash)
2.861 E F0 2.861(process. This)2.861 F(dif)2.86 E .36(fers from)-.25 F
-F2($$)2.86 E F0 .36(under certain circum-)2.86 F
-(stances, such as subshells that do not require)144 525.6 Q F2(bash)2.5
-E F0(to be re-initialized.)2.5 E F2 -.3(BA)108 537.6 S(SH_ALIASES).3 E
-F0 1.195(An associati)144 549.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v)
+F1($$)2.86 E F0 .36(under certain circum-)2.86 F
+(stances, such as subshells that do not require)144 585.6 Q F1(bash)2.5
+E F0(to be re-initialized.)2.5 E F1 -.3(BA)108 597.6 S(SH_ALIASES).3 E
+F0 1.195(An associati)144 609.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v)
.15 F 1.195(ariable whose members correspond to the internal list of al\
-iases as main-)-.25 F .319(tained by the)144 561.6 R F2(alias)2.819 E F0
+iases as main-)-.25 F .319(tained by the)144 621.6 R F1(alias)2.819 E F0
-.2(bu)2.819 G .318(iltin Elements added to this array appear in the al\
ias list; unsetting array ele-).2 F(ments cause aliases to be remo)144
-573.6 Q -.15(ve)-.15 G 2.5(df).15 G(rom the alias list.)-2.5 E F2 -.3
-(BA)108 585.6 S(SH_ARGC).3 E F0 .934(An array v)144 597.6 R .934
+633.6 Q -.15(ve)-.15 G 2.5(df).15 G(rom the alias list.)-2.5 E F1 -.3
+(BA)108 645.6 S(SH_ARGC).3 E F0 .934(An array v)144 657.6 R .934
(ariable whose v)-.25 F .934
(alues are the number of parameters in each frame of the current)-.25 F
-F2(bash)3.435 E F0 -.15(exe)144 609.6 S .535(cution call stack.).15 F
+F1(bash)3.435 E F0 -.15(exe)144 669.6 S .535(cution call stack.).15 F
.535(The number of parameters to the current subroutine \(shell functio\
-n or script)5.535 F -.15(exe)144 621.6 S .141(cuted with).15 F F2(.)
-2.641 E F0(or)2.641 E F2(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)
+n or script)5.535 F -.15(exe)144 681.6 S .141(cuted with).15 F F1(.)
+2.641 E F0(or)2.641 E F1(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)
-2.641 G 2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
(cuted, the number of).15 F 1.525(parameters passed is pushed onto)144
-633.6 R F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 6.524(.T)C 1.524
-(he shell sets)-6.524 F F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 1.524
-(only when in)4.024 F -.15(ex)144 645.6 S(tended deb).15 E
-(ugging mode \(see the description of the)-.2 E F2(extdeb)2.5 E(ug)-.2 E
-F0(option to the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E
-(w\))-.25 E F2 -.3(BA)108 657.6 S(SH_ARGV).3 E F0 .979(An array v)144
-669.6 R .979(ariable containing all of the parameters in the current)
--.25 F F2(bash)3.48 E F0 -.15(exe)3.48 G .98(cution call stack.).15 F
-(The)5.98 E .275(\214nal parameter of the last subroutine call is at th\
-e top of the stack; the \214rst parameter of the initial)144 681.6 R
-1.424(call is at the bottom.)144 693.6 R 1.424(When a subroutine is e)
-6.424 F -.15(xe)-.15 G 1.424
-(cuted, the parameters supplied are pushed onto).15 F F2 -.3(BA)144
-705.6 S(SH_ARGV).3 E F0 6.091(.T)C 1.091(he shell sets)-6.091 F F2 -.3
-(BA)3.591 G(SH_ARGV).3 E F0 1.091(only when in e)3.591 F 1.091
-(xtended deb)-.15 F 1.09(ugging mode \(see the)-.2 F(description of the)
-144 717.6 Q F2(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F2(shopt)2.5
-E F0 -.2(bu)2.5 G(iltin belo).2 E(w\))-.25 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(9)190.115 E 0 Cg EP
+693.6 R F1 -.3(BA)4.024 G(SH_ARGC).3 E F0 6.524(.T)C 1.524
+(he shell sets)-6.524 F F1 -.3(BA)4.024 G(SH_ARGC).3 E F0 1.524
+(only when in)4.024 F -.15(ex)144 705.6 S(tended deb).15 E
+(ugging mode \(see the description of the)-.2 E F1(extdeb)2.5 E(ug)-.2 E
+F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E
+(w\))-.25 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(9)197.895 E 0
+Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_CMDS).3 E F0 .667
-(An associati)144 96 R .967 -.15(ve a)-.25 H .667(rray v).15 F .668(ari\
-able whose members correspond to the internal hash table of commands)
--.25 F .147(as maintained by the)144 108 R F1(hash)2.647 E F0 -.2(bu)
-2.646 G 2.646(iltin. Elements).2 F .146
-(added to this array appear in the hash table; unsetting)2.646 F
-(array elements cause commands to be remo)144 120 Q -.15(ve)-.15 G 2.5
-(df).15 G(rom the hash table.)-2.5 E F1 -.3(BA)108 132 S(SH_COMMAND).3 E
-F0 1.242(The command currently being e)144 144 R -.15(xe)-.15 G 1.243
+-.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_ARGV).3 E F0 .979
+(An array v)144 96 R .979
+(ariable containing all of the parameters in the current)-.25 F F1(bash)
+3.48 E F0 -.15(exe)3.48 G .98(cution call stack.).15 F(The)5.98 E .275(\
+\214nal parameter of the last subroutine call is at the top of the stac\
+k; the \214rst parameter of the initial)144 108 R 1.424
+(call is at the bottom.)144 120 R 1.424(When a subroutine is e)6.424 F
+-.15(xe)-.15 G 1.424(cuted, the parameters supplied are pushed onto).15
+F F1 -.3(BA)144 132 S(SH_ARGV).3 E F0 6.091(.T)C 1.091(he shell sets)
+-6.091 F F1 -.3(BA)3.591 G(SH_ARGV).3 E F0 1.091(only when in e)3.591 F
+1.091(xtended deb)-.15 F 1.09(ugging mode \(see the)-.2 F
+(description of the)144 144 Q F1(extdeb)2.5 E(ug)-.2 E F0(option to the)
+2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3
+(BA)108 156 S(SH_CMDS).3 E F0 .667(An associati)144 168 R .967 -.15
+(ve a)-.25 H .667(rray v).15 F .668(ariable whose members correspond to\
+ the internal hash table of commands)-.25 F .147(as maintained by the)
+144 180 R F1(hash)2.647 E F0 -.2(bu)2.646 G 2.646(iltin. Elements).2 F
+.146(added to this array appear in the hash table; unsetting)2.646 F
+(array elements cause commands to be remo)144 192 Q -.15(ve)-.15 G 2.5
+(df).15 G(rom the hash table.)-2.5 E F1 -.3(BA)108 204 S(SH_COMMAND).3 E
+F0 1.242(The command currently being e)144 216 R -.15(xe)-.15 G 1.243
(cuted or about to be e).15 F -.15(xe)-.15 G 1.243
(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F
(command as the result of a trap, in which case it is the command e)144
-156 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
-168 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 180 Q
+228 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
+240 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 252 Q
(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G
-(cation option.).2 E F1 -.3(BA)108 192 S(SH_LINENO).3 E F0 .034
-(An array v)144 204 R .034(ariable whose members are the line numbers i\
-n source \214les corresponding to each mem-)-.25 F 2.944(ber of)144 216
+(cation option.).2 E F1 -.3(BA)108 264 S(SH_LINENO).3 E F0 .034
+(An array v)144 276 R .034(ariable whose members are the line numbers i\
+n source \214les corresponding to each mem-)-.25 F 2.944(ber of)144 288
R F1(FUNCN)5.444 E(AME)-.2 E F0(.)A F1(${B)7.944 E(ASH_LINENO[)-.3 E/F2
10/Times-Italic@0 SF($i)A F1(]})A F0 2.944
(is the line number in the source \214le where)5.444 F F1(${FUNCN)144
-228 Q(AME[)-.2 E F2($i)A F1(]})A F0 -.1(wa)3.312 G 3.311(sc).1 G .811
+300 Q(AME[)-.2 E F2($i)A F1(]})A F0 -.1(wa)3.312 G 3.311(sc).1 G .811
(alled \(or)-3.311 F F1(${B)3.311 E(ASH_LINENO[)-.3 E F2($i-1)A F1(]})A
F0 .811(if referenced within another shell)3.311 F 4.567
-(function\). The)144 240 R 2.067(corresponding source \214le name is)
+(function\). The)144 312 R 2.067(corresponding source \214le name is)
4.567 F F1(${B)4.567 E(ASH_SOURCE[)-.3 E F2($i)A F1(]})A F0 7.067(.U)C
(se)-7.067 E F1(LINENO)4.567 E F0(to)4.567 E
-(obtain the current line number)144 252 Q(.)-.55 E F1 -.3(BA)108 264 S
-(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144 276 R .006
+(obtain the current line number)144 324 Q(.)-.55 E F1 -.3(BA)108 336 S
+(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144 348 R .006
(ariable whose members are assigned by the)-.25 F F1(=~)2.506 E F0 .005
(binary operator to the)2.506 F F1([[)2.505 E F0 .005(conditional com-)
-2.505 F 2.506(mand. The)144 288 R .007(element with inde)2.506 F 2.507
+2.505 F 2.506(mand. The)144 360 R .007(element with inde)2.506 F 2.507
(x0i)-.15 G 2.507(st)-2.507 G .007
(he portion of the string matching the entire re)-2.507 F .007(gular e)
--.15 F(xpression.)-.15 E .998(The element with inde)144 300 R(x)-.15 E
+-.15 F(xpression.)-.15 E .998(The element with inde)144 372 R(x)-.15 E
F2(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F
F2(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E 2.5
-(sion. This)144 312 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
-F1 -.3(BA)108 324 S(SH_SOURCE).3 E F0 .889(An array v)144 336 R .889(ar\
+(sion. This)144 384 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
+F1 -.3(BA)108 396 S(SH_SOURCE).3 E F0 .889(An array v)144 408 R .889(ar\
iable whose members are the source \214lenames corresponding to the ele\
-ments in the)-.25 F F1(FUNCN)144 348 Q(AME)-.2 E F0(array v)2.5 E
-(ariable.)-.25 E F1 -.3(BA)108 360 S(SH_SUBSHELL).3 E F0 .402
-(Incremented by one each time a subshell or subshell en)144 372 R .401
+ments in the)-.25 F F1(FUNCN)144 420 Q(AME)-.2 E F0(array v)2.5 E
+(ariable.)-.25 E F1 -.3(BA)108 432 S(SH_SUBSHELL).3 E F0 .402
+(Incremented by one each time a subshell or subshell en)144 444 R .401
(vironment is spa)-.4 F 2.901(wned. The)-.15 F .401(initial v)2.901 F
-.401(alue is)-.25 F(0.)144 384 Q F1 -.3(BA)108 396 S(SH_VERSINFO).3 E F0
-2.644(Ar)144 408 S .144(eadonly array v)-2.644 F .144
+.401(alue is)-.25 F(0.)144 456 Q F1 -.3(BA)108 468 S(SH_VERSINFO).3 E F0
+2.644(Ar)144 480 S .144(eadonly array v)-2.644 F .144
(ariable whose members hold v)-.25 F .144
(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145
-(.T)C(he)-5.145 E -.25(va)144 420 S
+(.T)C(he)-5.145 E -.25(va)144 492 S
(lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
-(BA)144 438 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
+(BA)144 510 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
(ersion number \(the)-.15 E F2 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3
-(BA)144 450 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
+(BA)144 522 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
(ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA)
-144 462 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
-(ve)-.25 G(l.).15 E F1 -.3(BA)144 474 S(SH_VERSINFO[).3 E F0(3)A F1(])A
-F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 486 S
+144 534 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
+(ve)-.25 G(l.).15 E F1 -.3(BA)144 546 S(SH_VERSINFO[).3 E F0(3)A F1(])A
+F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 558 S
(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)24.74 E
-F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 498 S(SH_VERSINFO[).3 E F0(5)A F1
+F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 570 S(SH_VERSINFO[).3 E F0(5)A F1
(])A F0(The v)24.74 E(alue of)-.25 E F1(MA)2.5 E(CHTYPE)-.55 E F0(.)A F1
--.3(BA)108 514.8 S(SH_VERSION).3 E F0
-(Expands to a string describing the v)144 526.8 Q
+-.3(BA)108 586.8 S(SH_VERSION).3 E F0
+(Expands to a string describing the v)144 598.8 Q
(ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
-543.6 Q(ORD)-.1 E F0 .397(An inde)144 555.6 R 2.897(xi)-.15 G(nto)-2.897
+615.6 Q(ORD)-.1 E F0 .397(An inde)144 627.6 R 2.897(xi)-.15 G(nto)-2.897
E F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396
(ord containing the current cursor position.)-.1 F .396(This v)5.396 F
-(ari-)-.25 E 1.18(able is a)144 567.6 R -.25(va)-.2 G 1.181
+(ari-)-.25 E 1.18(able is a)144 639.6 R -.25(va)-.2 G 1.181
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F
-1.181(acilities \(see)-.1 F F1(Pr)144 579.6 Q(ogrammable Completion)-.18
-E F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 596.4 Q F0(The k)144 608.4 Q
+1.181(acilities \(see)-.1 F F1(Pr)144 651.6 Q(ogrammable Completion)-.18
+E F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 668.4 Q F0(The k)144 680.4 Q
.3 -.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G
.3 -.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t)
-.2 H(he current completion function.).1 E F1(COMP_LINE)108 625.2 Q F0
-1.208(The current command line.)144 637.2 R 1.208(This v)6.208 F 1.208
+.2 H(he current completion function.).1 E F1(COMP_LINE)108 697.2 Q F0
+1.208(The current command line.)144 709.2 R 1.208(This v)6.208 F 1.208
(ariable is a)-.25 F -.25(va)-.2 G 1.208
(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F
-2.848(mands in)144 649.2 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
+2.848(mands in)144 721.2 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
(yt)-5.349 G 2.849(he programmable completion f)-5.349 F 2.849
(acilities \(see)-.1 F F1(Pr)5.349 E 2.849(ogrammable Completion)-.18 F
-F0(belo)144 661.2 Q(w\).)-.25 E F1(COMP_POINT)108 678 Q F0 .667
-(The inde)144 690 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666
-(he current cursor position relati)-3.167 F .966 -.15(ve t)-.25 H 3.166
-(ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15
-F .666(If the)5.666 F .534
-(current cursor position is at the end of the current command, the v)144
-702 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
-(${#COMP_LINE})144 714 Q F0 7.006(.T)C 2.006(his v)-7.006 F 2.006
-(ariable is a)-.25 F -.25(va)-.2 G 2.005
-(ilable only in shell functions and e).25 F 2.005(xternal commands)-.15
-F(in)144 726 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
-(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(10)185.115 E 0 Cg EP
+F0(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(10)192.895 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(COMP_TYPE)108 84 Q F0 .041(Set to an inte)
-144 96 R .041(ger v)-.15 F .041(alue corresponding to the type of compl\
-etion attempted that caused a completion)-.25 F .338
-(function to be called:)144 108 R/F2 10/Times-Italic@0 SF -.5(TA)2.837 G
-(B).5 E F0 2.837(,f)C .337(or normal completion,)-2.837 F F2(?)2.837 E
-F0 2.837(,f)C .337(or listing completions after successi)-2.837 F .637
--.15(ve t)-.25 H(abs,).15 E F2(!)144 120 Q F0 4.091(,f)C 1.591
-(or listing alternati)-4.091 F -.15(ve)-.25 G 4.092(so).15 G 4.092(np)
--4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F2(@)4.092
-E F0 4.092(,t)C 4.092(ol)-4.092 G 1.592(ist completions if the w)-4.092
-F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 132 R F2(%)4.053 E
-F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)6.552 F
-1.552(ariable is a)-.25 F -.25(va)-.2 G 1.552
-(ilable only in shell functions and).25 F -.15(ex)144 144 S 2.928
+-.35 E(belo)144 84 Q(w\).)-.25 E/F1 10/Times-Bold@0 SF(COMP_POINT)108
+100.8 Q F0 .667(The inde)144 112.8 R 3.167(xo)-.15 G 3.167(ft)-3.167 G
+.666(he current cursor position relati)-3.167 F .966 -.15(ve t)-.25 H
+3.166(ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)
+-.15 F .666(If the)5.666 F .534
+(current cursor position is at the end of the current command, the v)144
+124.8 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 136.8 Q F0 7.006(.T)C 2.006(his v)-7.006 F 2.006
+(ariable is a)-.25 F -.25(va)-.2 G 2.005
+(ilable only in shell functions and e).25 F 2.005(xternal commands)-.15
+F(in)144 148.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_TYPE)108
+165.6 Q F0 .041(Set to an inte)144 177.6 R .041(ger v)-.15 F .041(alue \
+corresponding to the type of completion attempted that caused a complet\
+ion)-.25 F .338(function to be called:)144 189.6 R/F2 10/Times-Italic@0
+SF -.5(TA)2.837 G(B).5 E F0 2.837(,f)C .337(or normal completion,)-2.837
+F F2(?)2.837 E F0 2.837(,f)C .337(or listing completions after successi)
+-2.837 F .637 -.15(ve t)-.25 H(abs,).15 E F2(!)144 201.6 Q F0 4.091(,f)C
+1.591(or listing alternati)-4.091 F -.15(ve)-.25 G 4.092(so).15 G 4.092
+(np)-4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F2(@)
+4.092 E F0 4.092(,t)C 4.092(ol)-4.092 G 1.592(ist completions if the w)
+-4.092 F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 213.6 R F2(%)
+4.053 E F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)
+6.552 F 1.552(ariable is a)-.25 F -.25(va)-.2 G 1.552
+(ilable only in shell functions and).25 F -.15(ex)144 225.6 S 2.928
(ternal commands in).15 F -.2(vo)-.4 G -.1(ke).2 G 5.429(db).1 G 5.429
(yt)-5.429 G 2.929(he programmable completion f)-5.429 F 2.929
(acilities \(see)-.1 F F1(Pr)5.429 E(ogrammable)-.18 E(Completion)144
-156 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 172.8 Q(ORDBREAKS)-.1 E F0
-1.336(The set of characters that the)144 184.8 R F1 -.18(re)3.836 G
+237.6 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 254.4 Q(ORDBREAKS)-.1 E
+F0 1.336(The set of characters that the)144 266.4 R F1 -.18(re)3.836 G
(adline).18 E F0 1.336(library treats as w)3.836 F 1.335
(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If)
-144 196.8 R/F3 9/Times-Bold@0 SF(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
+144 278.4 R/F3 9/Times-Bold@0 SF(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G
3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G
-(ubse-)-3.126 E(quently reset.)144 208.8 Q F1(COMP_W)108 225.6 Q(ORDS)
--.1 E F0 .654(An array v)144 237.6 R .654(ariable \(see)-.25 F F1
+(ubse-)-3.126 E(quently reset.)144 290.4 Q F1(COMP_W)108 307.2 Q(ORDS)
+-.1 E F0 .654(An array v)144 319.2 R .654(ariable \(see)-.25 F F1
(Arrays)3.154 E F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F
.653(vidual w)-.25 F .653(ords in the current command)-.1 F 3.537
-(line. The)144 249.6 R 1.037(line is split into w)3.537 F 1.037(ords as)
+(line. The)144 331.2 R 1.037(line is split into w)3.537 F 1.037(ords as)
-.1 F F1 -.18(re)3.537 G(adline).18 E F0 -.1(wo)3.537 G 1.037
(uld split it, using).1 F F1(COMP_W)3.538 E(ORDBREAKS)-.1 E F0(as)3.538
-E .832(described abo)144 261.6 R -.15(ve)-.15 G 5.832(.T).15 G .832
+E .832(described abo)144 343.2 R -.15(ve)-.15 G 5.832(.T).15 G .832
(his v)-5.832 F .832(ariable is a)-.25 F -.25(va)-.2 G .831
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.331
(db).1 G 3.331(yt)-3.331 G .831(he programmable)-3.331 F(completion f)
-144 273.6 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18
-E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108 290.4 Q -.55(AC)-.9 G(K).55 E
-F0 2.26(An array v)144 302.4 R 2.26(ariable \(see)-.25 F F1(Arrays)4.76
-E F0(belo)4.76 E 2.26
+144 355.2 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18
+E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108 372 Q -.55(AC)-.9 G(K).55 E F0
+2.26(An array v)144 384 R 2.26(ariable \(see)-.25 F F1(Arrays)4.76 E F0
+(belo)4.76 E 2.26
(w\) containing the current contents of the directory stack.)-.25 F
-1.095(Directories appear in the stack in the order the)144 314.4 R 3.594
+1.095(Directories appear in the stack in the order the)144 396 R 3.594
(ya)-.15 G 1.094(re displayed by the)-3.594 F F1(dirs)3.594 E F0 -.2(bu)
3.594 G 3.594(iltin. Assigning).2 F(to)3.594 E 1.431
-(members of this array v)144 326.4 R 1.432
+(members of this array v)144 408 R 1.432
(ariable may be used to modify directories already in the stack, b)-.25
-F 1.432(ut the)-.2 F F1(pushd)144 338.4 Q F0(and)2.746 E F1(popd)2.746 E
+F 1.432(ut the)-.2 F F1(pushd)144 420 Q F0(and)2.746 E F1(popd)2.746 E
F0 -.2(bu)2.746 G .246(iltins must be used to add and remo).2 F .546
-.15(ve d)-.15 H 2.746(irectories. Assignment).15 F .246(to this v)2.746
-F(ariable)-.25 E .35(will not change the current directory)144 350.4 R
+F(ariable)-.25 E .35(will not change the current directory)144 432 R
5.35(.I)-.65 G(f)-5.35 E F3(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35
(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.851
-(ni).15 G(f)-2.851 E(it is subsequently reset.)144 362.4 Q F1(EUID)108
-379.2 Q F0 1.104(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)
+(ni).15 G(f)-2.851 E(it is subsequently reset.)144 444 Q F1(EUID)108
+460.8 Q F0 1.104(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)
-.25 H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103
(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103
-(ariable is)-.25 F(readonly)144 391.2 Q(.)-.65 E F1(FUNCN)108 408 Q(AME)
--.2 E F0 .478(An array v)144 420 R .479
+(ariable is)-.25 F(readonly)144 472.8 Q(.)-.65 E F1(FUNCN)108 489.6 Q
+(AME)-.2 E F0 .478(An array v)144 501.6 R .479
(ariable containing the names of all shell functions currently in the e)
-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277
-(The element with inde)144 432 R 2.777(x0i)-.15 G 2.777(st)-2.777 G .276
-(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)-.15
-G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F .25
-(element is)144 444 R/F4 10/Courier@0 SF("main")2.75 E F0 5.25(.T)C .25
-(his v)-5.25 F .25(ariable e)-.25 F .25
+(The element with inde)144 513.6 R 2.777(x0i)-.15 G 2.777(st)-2.777 G
+.276(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)
+-.15 G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F
+.25(element is)144 525.6 R/F4 10/Courier@0 SF("main")2.75 E F0 5.25(.T)C
+.25(his v)-5.25 F .25(ariable e)-.25 F .25
(xists only when a shell function is e)-.15 F -.15(xe)-.15 G 2.75
-(cuting. Assignments).15 F(to)2.75 E F3(FUNCN)144 456 Q(AME)-.18 E F0
+(cuting. Assignments).15 F(to)2.75 E F3(FUNCN)144 537.6 Q(AME)-.18 E F0
(ha)2.635 E .685 -.15(ve n)-.2 H 2.885(oe).15 G -.25(ff)-2.885 G .385
(ect and return an error status.).25 F(If)5.385 E F3(FUNCN)2.885 E(AME)
-.18 E F0 .384(is unset, it loses its special)2.634 F(properties, e)144
-468 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)
--2.5 G(ubsequently reset.)-2.5 E F1(GR)108 484.8 Q(OUPS)-.3 E F0 1.228
-(An array v)144 496.8 R 1.228(ariable containing the list of groups of \
+549.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)
+-2.5 G(ubsequently reset.)-2.5 E F1(GR)108 566.4 Q(OUPS)-.3 E F0 1.228
+(An array v)144 578.4 R 1.228(ariable containing the list of groups of \
which the current user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229
-E .597(ments to)144 508.8 R F3(GR)3.097 E(OUPS)-.27 E F0(ha)2.847 E .897
+E .597(ments to)144 590.4 R F3(GR)3.097 E(OUPS)-.27 E F0(ha)2.847 E .897
-.15(ve n)-.2 H 3.097(oe).15 G -.25(ff)-3.097 G .597
(ect and return an error status.).25 F(If)5.597 E F3(GR)3.097 E(OUPS)
-.27 E F0 .597(is unset, it loses its spe-)2.847 F(cial properties, e)
-144 520.8 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
-(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 537.6 Q F0 .355
-(The history number)144 549.6 R 2.855(,o)-.4 G 2.855(ri)-2.855 G(nde)
+144 602.4 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
+(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 619.2 Q F0 .355
+(The history number)144 631.2 R 2.855(,o)-.4 G 2.855(ri)-2.855 G(nde)
-2.855 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356
(he history list, of the current command.)-2.856 F(If)5.356 E F3
(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F
-(loses its special properties, e)144 561.6 Q -.15(ve)-.25 G 2.5(ni).15 G
+(loses its special properties, e)144 643.2 Q -.15(ve)-.25 G 2.5(ni).15 G
2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1
-(HOSTN)108 578.4 Q(AME)-.2 E F0
-(Automatically set to the name of the current host.)144 590.4 Q F1
-(HOSTTYPE)108 607.2 Q F0 .223(Automatically set to a string that unique\
-ly describes the type of machine on which)144 619.2 R F1(bash)2.722 E F0
-.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 631.2 R
-(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 648 Q F0 1.408
-(Each time this parameter is referenced, the shell substitutes a decima\
-l number representing the)144 660 R .078(current sequential line number\
- \(starting with 1\) within a script or function.)144 672 R .078
-(When not in a script or)5.078 F .306(function, the v)144 684 R .306
-(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.307 E
-F3(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F
-(special properties, e)144 696 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
-G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(11)185.115 E 0 Cg EP
+(HOSTN)108 660 Q(AME)-.2 E F0
+(Automatically set to the name of the current host.)144 672 Q F1
+(HOSTTYPE)108 688.8 Q F0 .223(Automatically set to a string that unique\
+ly describes the type of machine on which)144 700.8 R F1(bash)2.722 E F0
+.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 712.8 R
+(def)2.5 E(ault is system-dependent.)-.1 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(11)192.895 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(MA)108 84 Q(CHTYPE)-.55 E F0 .898(Automati\
-cally set to a string that fully describes the system type on which)144
-96 R F1(bash)3.398 E F0 .898(is e)3.398 F -.15(xe)-.15 G .898
-(cuting, in).15 F(the standard GNU)144 108 Q/F2 10/Times-Italic@0 SF
-(cpu-company-system)2.5 E F0 2.5(format. The)2.5 F(def)2.5 E
-(ault is system-dependent.)-.1 E F1(OLDPWD)108 124.8 Q F0(The pre)144
-136.8 Q(vious w)-.25 E(orking directory as set by the)-.1 E F1(cd)2.5 E
-F0(command.)2.5 E F1(OPT)108 153.6 Q(ARG)-.9 E F0 1.626(The v)144 165.6
-R 1.627(alue of the last option ar)-.25 F 1.627(gument processed by the)
--.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.627(iltin command \(see).2
-F/F3 9/Times-Bold@0 SF(SHELL)4.127 E -.09(BU)144 177.6 S(IL).09 E
-(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 194.4 Q
-F0 1.652(The inde)144 206.4 R 4.152(xo)-.15 G 4.152(ft)-4.152 G 1.652
-(he ne)-4.152 F 1.652(xt ar)-.15 F 1.652(gument to be processed by the)
--.18 F F1(getopts)4.151 E F0 -.2(bu)4.151 G 1.651(iltin command \(see).2
-F F3(SHELL)4.151 E -.09(BU)144 218.4 S(IL).09 E(TIN COMMANDS)-.828 E F0
-(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108 235.2 Q F0 .329(Automatically se\
-t to a string that describes the operating system on which)144 247.2 R
-F1(bash)2.83 E F0 .33(is e)2.83 F -.15(xe)-.15 G 2.83(cuting. The).15 F
-(def)144 259.2 Q(ault is system-dependent.)-.1 E F1(PIPEST)108 276 Q
--.95(AT)-.9 G(US).95 E F0 .61(An array v)144 288 R .61(ariable \(see)
--.25 F F1(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)
--.25 F .61(xit status v)-.15 F .61(alues from the processes in)-.25 F
-(the most-recently-e)144 300 Q -.15(xe)-.15 G(cuted fore).15 E
+-.35 E/F1 10/Times-Bold@0 SF(LINENO)108 84 Q F0 1.408(Each time this pa\
+rameter is referenced, the shell substitutes a decimal number represent\
+ing the)144 96 R .078(current sequential line number \(starting with 1\
+\) within a script or function.)144 108 R .078(When not in a script or)
+5.078 F .306(function, the v)144 120 R .306
+(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.307 E
+/F2 9/Times-Bold@0 SF(LINENO)2.807 E F0 .307(is unset, it loses its)
+2.557 F(special properties, e)144 132 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5
+(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)
+108 148.8 Q(CHTYPE)-.55 E F0 .898(Automatically set to a string that fu\
+lly describes the system type on which)144 160.8 R F1(bash)3.398 E F0
+.898(is e)3.398 F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)
+144 172.8 Q/F3 10/Times-Italic@0 SF(cpu-company-system)2.5 E F0 2.5
+(format. The)2.5 F(def)2.5 E(ault is system-dependent.)-.1 E F1(OLDPWD)
+108 189.6 Q F0(The pre)144 201.6 Q(vious w)-.25 E
+(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
+(OPT)108 218.4 Q(ARG)-.9 E F0 1.626(The v)144 230.4 R 1.627
+(alue of the last option ar)-.25 F 1.627(gument processed by the)-.18 F
+F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.627(iltin command \(see).2 F F2
+(SHELL)4.127 E -.09(BU)144 242.4 S(IL).09 E(TIN COMMANDS)-.828 E F0
+(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 259.2 Q F0 1.652(The inde)144
+271.2 R 4.152(xo)-.15 G 4.152(ft)-4.152 G 1.652(he ne)-4.152 F 1.652
+(xt ar)-.15 F 1.652(gument to be processed by the)-.18 F F1(getopts)
+4.151 E F0 -.2(bu)4.151 G 1.651(iltin command \(see).2 F F2(SHELL)4.151
+E -.09(BU)144 283.2 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
+-.25 E F1(OSTYPE)108 300 Q F0 .329(Automatically set to a string that d\
+escribes the operating system on which)144 312 R F1(bash)2.83 E F0 .33
+(is e)2.83 F -.15(xe)-.15 G 2.83(cuting. The).15 F(def)144 324 Q
+(ault is system-dependent.)-.1 E F1(PIPEST)108 340.8 Q -.95(AT)-.9 G(US)
+.95 E F0 .61(An array v)144 352.8 R .61(ariable \(see)-.25 F F1(Arrays)
+3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61
+(xit status v)-.15 F .61(alues from the processes in)-.25 F
+(the most-recently-e)144 364.8 Q -.15(xe)-.15 G(cuted fore).15 E
(ground pipeline \(which may contain only a single command\).)-.15 E F1
-(PPID)108 316.8 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
+(PPID)108 381.6 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
-F1(PWD)108 333.6 Q F0(The current w)12.67 E
+F1(PWD)108 398.4 Q F0(The current w)12.67 E
(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(RANDOM)108 350.4 Q F0 .565
-(Each time this parameter is referenced, a random inte)144 362.4 R .566
+(RANDOM)108 415.2 Q F0 .565
+(Each time this parameter is referenced, a random inte)144 427.2 R .566
(ger between 0 and 32767 is generated.)-.15 F(The)5.566 E .01
(sequence of random numbers may be initialized by assigning a v)144
-374.4 R .01(alue to)-.25 F F3(RANDOM)2.51 E/F4 9/Times-Roman@0 SF(.)A F0
-(If)4.51 E F3(RANDOM)2.51 E F0(is)2.26 E
-(unset, it loses its special properties, e)144 386.4 Q -.15(ve)-.25 G
+439.2 R .01(alue to)-.25 F F2(RANDOM)2.51 E/F4 9/Times-Roman@0 SF(.)A F0
+(If)4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
+(unset, it loses its special properties, e)144 451.2 Q -.15(ve)-.25 G
2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1(REPL)108 403.2 Q(Y)-.92 E F0
-(Set to the line of input read by the)144 415.2 Q F1 -.18(re)2.5 G(ad)
-.18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E
-(guments are supplied.)-.18 E F1(SECONDS)108 432 Q F0 .795(Each time th\
-is parameter is referenced, the number of seconds since shell in)144 444
-R -.2(vo)-.4 G .795(cation is returned.).2 F .713(If a v)144 456 R .712
-(alue is assigned to)-.25 F F3(SECONDS)3.212 E F4(,)A F0 .712(the v)
+(ubsequently reset.)-2.5 E F1(REPL)108 468 Q(Y)-.92 E F0
+(Set to the line of input read by the)144 480 Q F1 -.18(re)2.5 G(ad).18
+E F0 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.)
+-.18 E F1(SECONDS)108 496.8 Q F0 .795(Each time this parameter is refer\
+enced, the number of seconds since shell in)144 508.8 R -.2(vo)-.4 G
+.795(cation is returned.).2 F .713(If a v)144 520.8 R .712
+(alue is assigned to)-.25 F F2(SECONDS)3.212 E F4(,)A F0 .712(the v)
2.962 F .712(alue returned upon subsequent references is the number)-.25
-F .407(of seconds since the assignment plus the v)144 468 R .408
-(alue assigned.)-.25 F(If)5.408 E F3(SECONDS)2.908 E F0 .408
-(is unset, it loses its special)2.658 F(properties, e)144 480 Q -.15(ve)
--.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 496.8 Q F0 3.263(Ac)144
-508.8 S .763(olon-separated list of enabled shell options.)-3.263 F .763
+F .407(of seconds since the assignment plus the v)144 532.8 R .408
+(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .408
+(is unset, it loses its special)2.658 F(properties, e)144 544.8 Q -.15
+(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
+(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 561.6 Q F0 3.263(Ac)144
+573.6 S .763(olon-separated list of enabled shell options.)-3.263 F .763
(Each w)5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F
-.763(gument for the)-.18 F F1<ad6f>144 520.8 Q F0 1.173(option to the)
+.763(gument for the)-.18 F F1<ad6f>144 585.6 Q F0 1.173(option to the)
3.673 F F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F
-F3 1.174(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo)
-3.424 E 3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 532.8
-R F3(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F F2(on)2.749 E
+F2 1.174(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo)
+3.424 E 3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 597.6
+R F2(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F F3(on)2.749 E
F0(by)2.759 E F1 .019(set \255o)2.519 F F0 5.019(.I)C 2.519(ft)-5.019 G
.019(his v)-2.519 F .019(ariable is in the en)-.25 F(vironment)-.4 E
-(when)144 544.8 Q F1(bash)3.141 E F0 .642(starts up, each shell option \
+(when)144 609.6 Q F1(bash)3.141 E F0 .642(starts up, each shell option \
in the list will be enabled before reading an)3.141 F 3.142(ys)-.15 G
-.642(tartup \214les.)-3.142 F(This v)144 556.8 Q(ariable is read-only)
--.25 E(.)-.65 E F1(SHL)108 573.6 Q(VL)-.92 E F0
-(Incremented by one each time an instance of)144 585.6 Q F1(bash)2.5 E
-F0(is started.)2.5 E F1(UID)108 602.4 Q F0
+.642(tartup \214les.)-3.142 F(This v)144 621.6 Q(ariable is read-only)
+-.25 E(.)-.65 E F1(SHL)108 638.4 Q(VL)-.92 E F0
+(Incremented by one each time an instance of)144 650.4 Q F1(bash)2.5 E
+F0(is started.)2.5 E F1(UID)108 667.2 Q F0
(Expands to the user ID of the current user)17.67 E 2.5(,i)-.4 G
(nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
-E(.)-.65 E .994(The follo)108 619.2 R .994(wing v)-.25 F .994
+E(.)-.65 E .994(The follo)108 684 R .994(wing v)-.25 F .994
(ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1
(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993
-(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 631.2
-Q -.65(w.)-.25 G F1 -.3(BA)108 648 S(SH_ENV).3 E F0 .505
-(If this parameter is set when)144 660 R F1(bash)3.005 E F0 .505(is e)
-3.005 F -.15(xe)-.15 G .506(cuting a shell script, its v).15 F .506
-(alue is interpreted as a \214lename)-.25 F .355
-(containing commands to initialize the shell, as in)144 672 R F2
-(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354(he v)-5.354 F .354
-(alue of)-.25 F F3 -.27(BA)2.854 G(SH_ENV).27 E F0 .354(is subjected)
-2.604 F .525(to parameter e)144 684 R .525
-(xpansion, command substitution, and arithmetic e)-.15 F .525
-(xpansion before being interpreted)-.15 F(as a \214le name.)144 696 Q F3
--.666(PA)5 G(TH)-.189 E F0
-(is not used to search for the resultant \214le name.)2.25 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(12)185.115 E 0 Cg EP
+(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 696 Q
+-.65(w.)-.25 G(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(12)192.895
+E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(CDP)108 84 Q -.95(AT)-.74 G(H).95 E F0
-1.248(The search path for the)144 96 R F1(cd)3.748 E F0 3.748
-(command. This)3.748 F 1.247
+-.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_ENV).3 E F0 .505
+(If this parameter is set when)144 96 R F1(bash)3.005 E F0 .505(is e)
+3.005 F -.15(xe)-.15 G .506(cuting a shell script, its v).15 F .506
+(alue is interpreted as a \214lename)-.25 F .355
+(containing commands to initialize the shell, as in)144 108 R/F2 10
+/Times-Italic@0 SF(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354
+(he v)-5.354 F .354(alue of)-.25 F/F3 9/Times-Bold@0 SF -.27(BA)2.854 G
+(SH_ENV).27 E F0 .354(is subjected)2.604 F .525(to parameter e)144 120 R
+.525(xpansion, command substitution, and arithmetic e)-.15 F .525
+(xpansion before being interpreted)-.15 F(as a \214le name.)144 132 Q F3
+-.666(PA)5 G(TH)-.189 E F0
+(is not used to search for the resultant \214le name.)2.25 E F1(CDP)108
+144 Q -.95(AT)-.74 G(H).95 E F0 1.248(The search path for the)144 156 R
+F1(cd)3.748 E F0 3.748(command. This)3.748 F 1.247
(is a colon-separated list of directories in which the)3.748 F 3.795
-(shell looks for destination directories speci\214ed by the)144 108 R F1
+(shell looks for destination directories speci\214ed by the)144 168 R F1
(cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796
-(alue is)-.25 F/F2 10/Courier@0 SF(".:~:/usr")144 120 Q F0(.)A F1 -.3
-(BA)108 132 S(SH_XTRA).3 E(CEFD)-.55 E F0 .481(If set to an inte)144 144
+(alue is)-.25 F/F4 10/Courier@0 SF(".:~:/usr")144 180 Q F0(.)A F1 -.3
+(BA)108 192 S(SH_XTRA).3 E(CEFD)-.55 E F0 .481(If set to an inte)144 204
R .481(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25
F(,)-.4 E F1(bash)2.98 E F0 .48(will write the trace output gener)2.98 F
-(-)-.2 E 3.114(ated when)144 156 R F2 3.114(set -x)5.614 F F0 3.114
+(-)-.2 E 3.114(ated when)144 216 R F4 3.114(set -x)5.614 F F0 3.114
(is enabled to that \214le descriptor)5.614 F 8.114(.T)-.55 G 3.114
-(he \214le descriptor is closed when)-8.114 F F1 -.3(BA)144 168 S
+(he \214le descriptor is closed when)-8.114 F F1 -.3(BA)144 228 S
(SH_XTRA).3 E(CEFD)-.55 E F0 .117(is unset or assigned a ne)2.617 F
2.616(wv)-.25 G 2.616(alue. Unsetting)-2.866 F F1 -.3(BA)2.616 G
(SH_XTRA).3 E(CEFD)-.55 E F0 .116(or assign-)2.616 F .953(ing it the em\
pty string causes the trace output to be sent to the standard error)144
-180 R 5.953(.N)-.55 G .953(ote that setting)-5.953 F F1 -.3(BA)144 192 S
+240 R 5.953(.N)-.55 G .953(ote that setting)-5.953 F F1 -.3(BA)144 252 S
(SH_XTRA).3 E(CEFD)-.55 E F0 .144(to 2 \(the standard error \214le desc\
riptor\) and then unsetting it will result in the)2.644 F
-(standard error being closed.)144 204 Q F1(COLUMNS)108 216 Q F0 .425
-(Used by the)144 228 R F1(select)2.925 E F0 -.2(bu)2.925 G .425(iltin c\
+(standard error being closed.)144 264 Q F1(COLUMNS)108 276 Q F0 .425
+(Used by the)144 288 R F1(select)2.925 E F0 -.2(bu)2.925 G .425(iltin c\
ommand to determine the terminal width when printing selection lists.).2
-F(Automatically set upon receipt of a SIGWINCH.)144 240 Q F1(COMPREPL)
-108 252 Q(Y)-.92 E F0 .848(An array v)144 264 R .848(ariable from which)
+F(Automatically set upon receipt of a SIGWINCH.)144 300 Q F1(COMPREPL)
+108 312 Q(Y)-.92 E F0 .848(An array v)144 324 R .848(ariable from which)
-.25 F F1(bash)3.348 E F0 .848
(reads the possible completions generated by a shell function)3.348 F
-(in)144 276 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+(in)144 336 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(EMA)108 288 Q
-(CS)-.55 E F0(If)144 300 Q F1(bash)2.535 E F0 .035(\214nds this v)2.535
+(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(EMA)108 348 Q
+(CS)-.55 E F0(If)144 360 Q F1(bash)2.535 E F0 .035(\214nds this v)2.535
F .035(ariable in the en)-.25 F .036
-(vironment when the shell starts with v)-.4 F(alue)-.25 E F2(t)2.536 E
+(vironment when the shell starts with v)-.4 F(alue)-.25 E F4(t)2.536 E
F0 2.536(,i)C 2.536(ta)-2.536 G .036(ssumes that the)-2.536 F
-(shell is running in an emacs shell b)144 312 Q(uf)-.2 E
-(fer and disables line editing.)-.25 E F1(FCEDIT)108 324 Q F0(The def)
-144 336 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G
-(iltin command.).2 E F1(FIGNORE)108 348 Q F0 2.599(Ac)144 360 S .098
+(shell is running in an emacs shell b)144 372 Q(uf)-.2 E
+(fer and disables line editing.)-.25 E F1(FCEDIT)108 384 Q F0(The def)
+144 396 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G
+(iltin command.).2 E F1(FIGNORE)108 408 Q F0 2.599(Ac)144 420 S .098
(olon-separated list of suf)-2.599 F<8c78>-.25 E .098
-(es to ignore when performing \214lename completion \(see)-.15 F/F3 9
-/Times-Bold@0 SF(READLINE)2.598 E F0(belo)144 372 Q 2.704(w\). A)-.25 F
-.204(\214lename whose suf)2.704 F .205
-(\214x matches one of the entries in)-.25 F F3(FIGNORE)2.705 E F0 .205
-(is e)2.455 F .205(xcluded from the list)-.15 F(of matched \214lenames.)
-144 384 Q 2.5(As)5 G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)
-A F1(GLOBIGNORE)108 396 Q F0 3.118(Ac)144 408 S .618(olon-separated lis\
-t of patterns de\214ning the set of \214lenames to be ignored by pathna\
-me e)-3.118 F(xpan-)-.15 E 3.131(sion. If)144 420 R 3.132<618c>3.131 G
-.632(lename matched by a pathname e)-3.132 F .632
+(es to ignore when performing \214lename completion \(see)-.15 F F3
+(READLINE)2.598 E F0(belo)144 432 Q 2.704(w\). A)-.25 F .204
+(\214lename whose suf)2.704 F .205(\214x matches one of the entries in)
+-.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .205
+(xcluded from the list)-.15 F(of matched \214lenames.)144 444 Q 2.5(As)5
+G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A F1(GLOBIGNORE)108
+456 Q F0 3.118(Ac)144 468 S .618(olon-separated list of patterns de\214\
+ning the set of \214lenames to be ignored by pathname e)-3.118 F(xpan-)
+-.15 E 3.131(sion. If)144 480 R 3.132<618c>3.131 G .632
+(lename matched by a pathname e)-3.132 F .632
(xpansion pattern also matches one of the patterns in)-.15 F F3
-(GLOBIGNORE)144 432 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E
+(GLOBIGNORE)144 492 Q/F5 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E
-.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)-2.5 E F1
-(HISTCONTR)108 444 Q(OL)-.3 E F0 2.654(Ac)144 456 S .153
+(HISTCONTR)108 504 Q(OL)-.3 E F0 2.654(Ac)144 516 S .153
(olon-separated list of v)-2.654 F .153(alues controlling ho)-.25 F
2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15
G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .153(If the list)
-5.153 F .49(of v)144 468 R .49(alues includes)-.25 F/F5 10
-/Times-Italic@0 SF(ignor)2.99 E(espace)-.37 E F0 2.99(,l).18 G .49
-(ines which be)-2.99 F .491(gin with a)-.15 F F1(space)2.991 E F0 .491
-(character are not sa)2.991 F -.15(ve)-.2 G 2.991(di).15 G 2.991(nt)
--2.991 G .491(he his-)-2.991 F .558(tory list.)144 480 R 3.058(Av)5.558
-G .558(alue of)-3.308 F F5(ignor)3.068 E(edups)-.37 E F0 .558
-(causes lines matching the pre)3.328 F .557
-(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.958
-(Av)144 492 S .458(alue of)-3.208 F F5(ignor)2.968 E(eboth)-.37 E F0
-.458(is shorthand for)3.238 F F5(ignor)2.959 E(espace)-.37 E F0(and)
-2.959 E F5(ignor)2.959 E(edups)-.37 E F0 5.459(.A)C -.25(va)-2.5 G .459
-(lue of).25 F F5(er)2.959 E(asedups)-.15 E F0(causes)2.959 E .699
-(all pre)144 504 R .698
+5.153 F .49(of v)144 528 R .49(alues includes)-.25 F F2(ignor)2.99 E
+(espace)-.37 E F0 2.99(,l).18 G .49(ines which be)-2.99 F .491
+(gin with a)-.15 F F1(space)2.991 E F0 .491(character are not sa)2.991 F
+-.15(ve)-.2 G 2.991(di).15 G 2.991(nt)-2.991 G .491(he his-)-2.991 F
+.558(tory list.)144 540 R 3.058(Av)5.558 G .558(alue of)-3.308 F F2
+(ignor)3.068 E(edups)-.37 E F0 .558(causes lines matching the pre)3.328
+F .557(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E
+2.958(Av)144 552 S .458(alue of)-3.208 F F2(ignor)2.968 E(eboth)-.37 E
+F0 .458(is shorthand for)3.238 F F2(ignor)2.959 E(espace)-.37 E F0(and)
+2.959 E F2(ignor)2.959 E(edups)-.37 E F0 5.459(.A)C -.25(va)-2.5 G .459
+(lue of).25 F F2(er)2.959 E(asedups)-.15 E F0(causes)2.959 E .699
+(all pre)144 564 R .698
(vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
3.198(df).15 G .698(rom the history list before that line is)-3.198 F
-(sa)144 516 Q -.15(ve)-.2 G 4.296(d. An).15 F 4.296(yv)-.15 G 1.797
+(sa)144 576 Q -.15(ve)-.2 G 4.296(d. An).15 F 4.296(yv)-.15 G 1.797
(alue not in the abo)-4.546 F 2.097 -.15(ve l)-.15 H 1.797
(ist is ignored.).15 F(If)6.797 E F1(HISTCONTR)4.297 E(OL)-.3 E F0 1.797
-(is unset, or does not)4.297 F .613(include a v)144 528 R .612(alid v)
+(is unset, or does not)4.297 F .613(include a v)144 588 R .612(alid v)
-.25 F .612(alue, all lines read by the shell parser are sa)-.25 F -.15
(ve)-.2 G 3.112(do).15 G 3.112(nt)-3.112 G .612
-(he history list, subject to the)-3.112 F -.25(va)144 540 S .985(lue of)
+(he history list, subject to the)-3.112 F -.25(va)144 600 S .985(lue of)
.25 F F1(HISTIGNORE)3.485 E F0 5.986(.T)C .986
(he second and subsequent lines of a multi-line compound command)-5.986
-F(are not tested, and are added to the history re)144 552 Q -.05(ga)-.15
+F(are not tested, and are added to the history re)144 612 Q -.05(ga)-.15
G(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR)2.5 E(OL)-.3 E F0(.)
-A F1(HISTFILE)108 564 Q F0 .181
-(The name of the \214le in which command history is sa)144 576 R -.15
+A F1(HISTFILE)108 624 Q F0 .181
+(The name of the \214le in which command history is sa)144 636 R -.15
(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y)
-.315 E F0(belo)2.431 E 2.681(w\). The)-.25 F(def)2.681 E .181(ault v)
--.1 F(alue)-.25 E(is)144 588 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
+-.1 F(alue)-.25 E(is)144 648 Q F2(~/.bash_history)2.5 E F0 5(.I)C 2.5
(fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5
(dw).15 G(hen an interacti)-2.5 E .3 -.15(ve s)-.25 H(hell e).15 E
-(xits.)-.15 E F1(HISTFILESIZE)108 600 Q F0 1.622
-(The maximum number of lines contained in the history \214le.)144 612 R
+(xits.)-.15 E F1(HISTFILESIZE)108 660 Q F0 1.622
+(The maximum number of lines contained in the history \214le.)144 672 R
1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25(va)144
-624 S .305(lue, the history \214le is truncated, if necessary).25 F
+684 S .305(lue, the history \214le is truncated, if necessary).25 F
2.805(,b)-.65 G 2.805(yr)-2.805 G(emo)-2.805 E .305
(ving the oldest entries, to contain no more)-.15 F .601
-(than that number of lines.)144 636 R .601(The def)5.601 F .602(ault v)
+(than that number of lines.)144 696 R .601(The def)5.601 F .602(ault v)
-.1 F .602(alue is 500.)-.25 F .602
(The history \214le is also truncated to this size)5.602 F
-(after writing it when an interacti)144 648 Q .3 -.15(ve s)-.25 H
-(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 660 Q F0 2.658(Ac)144 672 S
+(after writing it when an interacti)144 708 Q .3 -.15(ve s)-.25 H
+(hell e).15 E(xits.)-.15 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905
+E(13)192.895 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(HISTIGNORE)108 84 Q F0 2.658(Ac)144 96 S
.158(olon-separated list of patterns used to decide which command lines\
should be sa)-2.658 F -.15(ve)-.2 G 2.657(do).15 G 2.657(nt)-2.657 G
-.157(he his-)-2.657 F .707(tory list.)144 684 R .707
+.157(he his-)-2.657 F .707(tory list.)144 108 R .707
(Each pattern is anchored at the be)5.707 F .708
(ginning of the line and must match the complete line)-.15 F .626
-(\(no implicit `)144 696 R F1(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
+(\(no implicit `)144 120 R F1(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
(ppended\). Each)-3.126 F .626(pattern is tested ag)3.126 F .625
(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144
-708 Q(OL)-.3 E F0 1.154(are applied.)3.654 F 1.154
+132 Q(OL)-.3 E F0 1.154(are applied.)3.654 F 1.154
(In addition to the normal shell pattern matching characters, `)6.154 F
-F1(&)A F0(')A 2.515(matches the pre)144 720 R 2.515(vious history line.)
+F1(&)A F0(')A 2.515(matches the pre)144 144 R 2.515(vious history line.)
-.25 F(`)7.514 E F1(&)A F0 5.014('m)C 2.514
-(ay be escaped using a backslash; the backslash is)-5.014 F
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(13)185.115 E 0 Cg EP
-%%Page: 14 14
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(remo)144 84 Q -.15(ve)-.15 G 3.352(db).15 G .852
-(efore attempting a match.)-3.352 F .852
-(The second and subsequent lines of a multi-line compound)5.852 F
-(command are not tested, and are added to the history re)144 96 Q -.05
-(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E/F1 10/Times-Bold@0 SF
-(HISTIGNORE)2.5 E F0(.)A F1(HISTSIZE)108 108 Q F0 1.942
-(The number of commands to remember in the command history \(see)144 120
+(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 156
+Q -.15(ve)-.15 G 3.352(db).15 G .852(efore attempting a match.)-3.352 F
+.852(The second and subsequent lines of a multi-line compound)5.852 F
+(command are not tested, and are added to the history re)144 168 Q -.05
+(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTIGNORE)2.5 E F0
+(.)A F1(HISTSIZE)108 180 Q F0 1.942
+(The number of commands to remember in the command history \(see)144 192
R/F2 9/Times-Bold@0 SF(HIST)4.442 E(OR)-.162 E(Y)-.315 E F0(belo)4.192 E
-4.442(w\). The)-.25 F(def)144 132 Q(ault v)-.1 E(alue is 500.)-.25 E F1
-(HISTTIMEFORMA)108 144 Q(T)-.95 E F0 .951(If this v)144 156 R .951
+4.442(w\). The)-.25 F(def)144 204 Q(ault v)-.1 E(alue is 500.)-.25 E F1
+(HISTTIMEFORMA)108 216 Q(T)-.95 E F0 .951(If this v)144 228 R .951
(ariable is set and not null, its v)-.25 F .952
(alue is used as a format string for)-.25 F/F3 10/Times-Italic@0 SF
(strftime)3.452 E F0 .952(\(3\) to print the)B .673
-(time stamp associated with each history entry displayed by the)144 168
+(time stamp associated with each history entry displayed by the)144 240
R F1(history)3.173 E F0 -.2(bu)3.172 G 3.172(iltin. If).2 F .672(this v)
3.172 F .672(ariable is)-.25 F .144
-(set, time stamps are written to the history \214le so the)144 180 R
+(set, time stamps are written to the history \214le so the)144 252 R
2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144
(ed across shell sessions.)-.15 F(This)5.145 E(uses the history comment\
- character to distinguish timestamps from other history lines.)144 192 Q
-F1(HOME)108 204 Q F0 1.27
-(The home directory of the current user; the def)144 216 R 1.27(ault ar)
+ character to distinguish timestamps from other history lines.)144 264 Q
+F1(HOME)108 276 Q F0 1.27
+(The home directory of the current user; the def)144 288 R 1.27(ault ar)
-.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27
-(iltin command.).2 F(The)6.27 E -.25(va)144 228 S(lue of this v).25 E
+(iltin command.).2 F(The)6.27 E -.25(va)144 300 S(lue of this v).25 E
(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1
-(HOSTFILE)108 240 Q F0 1.015
-(Contains the name of a \214le in the same format as)144 252 R F3
+(HOSTFILE)108 312 Q F0 1.015
+(Contains the name of a \214le in the same format as)144 324 R F3
(/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F
-.551(needs to complete a hostname.)144 264 R .551
+.551(needs to complete a hostname.)144 336 R .551
(The list of possible hostname completions may be changed while)5.551 F
-1.058(the shell is running; the ne)144 276 R 1.059
+1.058(the shell is running; the ne)144 348 R 1.059
(xt time hostname completion is attempted after the v)-.15 F 1.059
-(alue is changed,)-.25 F F1(bash)144 288 Q F0 .138
+(alue is changed,)-.25 F F1(bash)144 360 Q F0 .138
(adds the contents of the ne)2.639 F 2.638<778c>-.25 G .138(le to the e)
-2.638 F .138(xisting list.)-.15 F(If)5.138 E F2(HOSTFILE)2.638 E F0
.138(is set, b)2.388 F .138(ut has no v)-.2 F .138(alue, or)-.25 F .517
-(does not name a readable \214le,)144 300 R F1(bash)3.017 E F0 .517
+(does not name a readable \214le,)144 372 R F1(bash)3.017 E F0 .517
(attempts to read)3.017 F F3(/etc/hosts)4.684 E F0 .518
-(to obtain the list of possible host-)4.684 F(name completions.)144 312
+(to obtain the list of possible host-)4.684 F(name completions.)144 384
Q(When)5 E F2(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.)
-2.25 E F1(IFS)108 324 Q F0(The)20.44 E F3 .556(Internal F)3.636 F .556
+2.25 E F1(IFS)108 396 Q F0(The)20.44 E F3 .556(Internal F)3.636 F .556
(ield Separ)-.45 F(ator)-.15 E F0 .556(that is used for w)3.786 F .556
(ord splitting after e)-.1 F .555(xpansion and to split lines into)-.15
-F -.1(wo)144 336 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
+F -.1(wo)144 408 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
(bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E
-(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 348 Q
-F0 .503(Controls the action of an interacti)144 360 R .803 -.15(ve s)
+(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 420 Q
+F0 .503(Controls the action of an interacti)144 432 R .803 -.15(ve s)
-.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503
(character as the sole input.)2.753 F .504(If set,)5.504 F .426(the v)
-144 372 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
+144 444 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
(EOF)3.076 E F0 .426
(characters which must be typed as the \214rst characters)2.676 F .302
-(on an input line before)144 384 R F1(bash)2.802 E F0 -.15(ex)2.802 G
+(on an input line before)144 456 R F1(bash)2.802 E F0 -.15(ex)2.802 G
2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302
(xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302
-(umeric v).15 F .303(alue, or has)-.25 F(no v)144 396 Q(alue, the def)
+(umeric v).15 F .303(alue, or has)-.25 F(no v)144 468 Q(alue, the def)
-.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E
F2(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1
-(INPUTRC)108 408 Q F0 1.436(The \214lename for the)144 420 R F1 -.18(re)
+(INPUTRC)108 480 Q F0 1.436(The \214lename for the)144 492 R F1 -.18(re)
3.936 G(adline).18 E F0 1.436(startup \214le, o)3.936 F -.15(ve)-.15 G
1.436(rriding the def).15 F 1.436(ault of)-.1 F F3(~/.inputr)5.602 E(c)
--.37 E F0(\(see)5.601 E F2(READLINE)3.935 E F0(belo)144 432 Q(w\).)-.25
-E F1(LANG)108 444 Q F0 1.239(Used to determine the locale cate)7.11 F
+-.37 E F0(\(see)5.601 E F2(READLINE)3.935 E F0(belo)144 504 Q(w\).)-.25
+E F1(LANG)108 516 Q F0 1.239(Used to determine the locale cate)7.11 F
1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.24
(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
-(starting with)144 456 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 468 Q F0 .764
-(This v)144 480 R .764(ariable o)-.25 F -.15(ve)-.15 G .764
+(starting with)144 528 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 540 Q F0 .764
+(This v)144 552 R .764(ariable o)-.25 F -.15(ve)-.15 G .764
(rrides the v).15 F .764(alue of)-.25 F F1(LANG)3.264 E F0 .764(and an)
3.264 F 3.264(yo)-.15 G(ther)-3.264 E F1(LC_)3.264 E F0 -.25(va)3.264 G
-.764(riable specifying a locale cate-).25 F(gory)144 492 Q(.)-.65 E F1
-(LC_COLLA)108 504 Q(TE)-.95 E F0 .411(This v)144 516 R .412(ariable det\
+.764(riable specifying a locale cate-).25 F(gory)144 564 Q(.)-.65 E F1
+(LC_COLLA)108 576 Q(TE)-.95 E F0 .411(This v)144 588 R .412(ariable det\
ermines the collation order used when sorting the results of pathname e)
--.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 528 R 1.465
+-.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 600 R 1.465
(vior of range e)-.2 F 1.464(xpressions, equi)-.15 F -.25(va)-.25 G
1.464(lence classes, and collating sequences).25 F(within pathname e)144
-540 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 552 Q F0
-1.935(This v)144 564 R 1.936
+612 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 624 Q F0
+1.935(This v)144 636 R 1.936
(ariable determines the interpretation of characters and the beha)-.25 F
-1.936(vior of character classes)-.2 F(within pathname e)144 576 Q
-(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 588 Q(GES)-.55 E
-F0(This v)144 600 Q(ariable determines the locale used to translate dou\
+1.936(vior of character classes)-.2 F(within pathname e)144 648 Q
+(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 660 Q(GES)-.55 E
+F0(This v)144 672 Q(ariable determines the locale used to translate dou\
ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
-108 612 Q F0(This v)144 624 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F1(LINES)108 636 Q F0 1.219
+108 684 Q F0(This v)144 696 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F1(LINES)108 708 Q F0 1.219
(Used by the)5.99 F F1(select)3.719 E F0 -.2(bu)3.719 G 1.218(iltin com\
mand to determine the column length for printing selection lists.).2 F
-(Automatically set upon receipt of a SIGWINCH.)144 648 Q F1(MAIL)108 660
-Q F0 .187(If this parameter is set to a \214le name and the)8.78 F F2
-(MAILP)2.687 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.438 G .188
-(riable is not set,).25 F F1(bash)2.688 E F0 .188(informs the user)2.688
-F(of the arri)144 672 Q -.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G
-(ail in the speci\214ed \214le.)-2.5 E F1(MAILCHECK)108 684 Q F0 .099
-(Speci\214es ho)144 696 R 2.599(wo)-.25 G .099(ften \(in seconds\))
--2.599 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
-5.098 F .098(ault is 60 seconds.)-.1 F .098(When it is time)5.098 F .223
-(to check for mail, the shell does so before displaying the primary pro\
-mpt.)144 708 R .224(If this v)5.224 F .224(ariable is unset,)-.25 F .066
-(or set to a v)144 720 R .066(alue that is not a number greater than or\
- equal to zero, the shell disables mail checking.)-.25 F(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(14)185.115 E 0 Cg EP
+(Automatically set upon receipt of a SIGWINCH.)144 720 Q(GNU Bash-4.1)72
+768 Q(2009 October 9)142.905 E(14)192.895 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(MAILP)108 84 Q -.95(AT)-.74 G(H).95 E F0
-2.814(Ac)144 96 S .314(olon-separated list of \214le names to be check)
--2.814 F .314(ed for mail.)-.1 F .314
-(The message to be printed when mail)5.314 F(arri)144 108 Q -.15(ve)-.25
-G 3.42(si).15 G 3.42(nap)-3.42 G .92(articular \214le may be speci\214e\
-d by separating the \214le name from the message with a)-3.42 F 2.807
-(`?'. When)144 120 R .307(used in the te)2.807 F .308
-(xt of the message,)-.15 F F1($_)2.808 E F0 -.15(ex)2.808 G .308
-(pands to the name of the current mail\214le.).15 F(Exam-)5.308 E(ple:)
-144 132 Q F1(MAILP)144 144 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A
+-.35 E/F1 10/Times-Bold@0 SF(MAIL)108 84 Q F0 .187
+(If this parameter is set to a \214le name and the)8.78 F/F2 9
+/Times-Bold@0 SF(MAILP)2.687 E -.855(AT)-.666 G(H).855 E F0 -.25(va)
+2.438 G .188(riable is not set,).25 F F1(bash)2.688 E F0 .188
+(informs the user)2.688 F(of the arri)144 96 Q -.25(va)-.25 G 2.5(lo).25
+G 2.5(fm)-2.5 G(ail in the speci\214ed \214le.)-2.5 E F1(MAILCHECK)108
+108 Q F0 .099(Speci\214es ho)144 120 R 2.599(wo)-.25 G .099
+(ften \(in seconds\))-2.599 F F1(bash)2.598 E F0 .098(checks for mail.)
+2.598 F .098(The def)5.098 F .098(ault is 60 seconds.)-.1 F .098
+(When it is time)5.098 F .223(to check for mail, the shell does so befo\
+re displaying the primary prompt.)144 132 R .224(If this v)5.224 F .224
+(ariable is unset,)-.25 F .066(or set to a v)144 144 R .066(alue that i\
+s not a number greater than or equal to zero, the shell disables mail c\
+hecking.)-.25 F F1(MAILP)108 156 Q -.95(AT)-.74 G(H).95 E F0 2.814(Ac)
+144 168 S .314(olon-separated list of \214le names to be check)-2.814 F
+.314(ed for mail.)-.1 F .314(The message to be printed when mail)5.314 F
+(arri)144 180 Q -.15(ve)-.25 G 3.42(si).15 G 3.42(nap)-3.42 G .92(artic\
+ular \214le may be speci\214ed by separating the \214le name from the m\
+essage with a)-3.42 F 2.807(`?'. When)144 192 R .307(used in the te)
+2.807 F .308(xt of the message,)-.15 F F1($_)2.808 E F0 -.15(ex)2.808 G
+.308(pands to the name of the current mail\214le.).15 F(Exam-)5.308 E
+(ple:)144 204 Q F1(MAILP)144 216 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A
(ar/mail/bfox?"Y)-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H
-(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 156 Q F0 .389
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 228 Q F0 .389
(supplies a def)2.889 F .389(ault v)-.1 F .389(alue for this v)-.25 F
.389(ariable, b)-.25 F .388
(ut the location of the user mail \214les that it uses is)-.2 F
-(system dependent \(e.g., /v)144 168 Q(ar/mail/)-.25 E F1($USER)A F0
-(\).)A F1(OPTERR)108 180 Q F0 .389(If set to the v)144 192 R .389
+(system dependent \(e.g., /v)144 240 Q(ar/mail/)-.25 E F1($USER)A F0
+(\).)A F1(OPTERR)108 252 Q F0 .389(If set to the v)144 264 R .389
(alue 1,)-.25 F F1(bash)2.889 E F0 .389
(displays error messages generated by the)2.889 F F1(getopts)2.89 E F0
--.2(bu)2.89 G .39(iltin command \(see).2 F/F2 9/Times-Bold@0 SF .36
-(SHELL B)144 204 R(UIL)-.09 E .36(TIN COMMANDS)-.828 F F0(belo)2.61 E
-(w\).)-.25 E F2(OPTERR)5.36 E F0 .359
-(is initialized to 1 each time the shell is in)2.61 F -.2(vo)-.4 G -.1
-(ke).2 G(d).1 E(or a shell script is e)144 216 Q -.15(xe)-.15 G(cuted.)
-.15 E F1 -.74(PA)108 228 S(TH)-.21 E F0 .587
+-.2(bu)2.89 G .39(iltin command \(see).2 F F2 .36(SHELL B)144 276 R(UIL)
+-.09 E .36(TIN COMMANDS)-.828 F F0(belo)2.61 E(w\).)-.25 E F2(OPTERR)
+5.36 E F0 .359(is initialized to 1 each time the shell is in)2.61 F -.2
+(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 288 Q -.15(xe)
+-.15 G(cuted.).15 E F1 -.74(PA)108 300 S(TH)-.21 E F0 .587
(The search path for commands.)9.91 F .588
(It is a colon-separated list of directories in which the shell looks)
-5.587 F .472(for commands \(see)144 240 R F2 .472(COMMAND EXECUTION)
+5.587 F .472(for commands \(see)144 312 R F2 .472(COMMAND EXECUTION)
2.972 F F0(belo)2.722 E 2.972(w\). A)-.25 F .471
-(zero-length \(null\) directory name in the)2.972 F -.25(va)144 252 S
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 324 S
.344(lue of).25 F F1 -.74(PA)2.844 G(TH)-.21 E F0 .344
(indicates the current directory)2.844 F 5.345(.A)-.65 G .345
(null directory name may appear as tw)-2.5 F 2.845(oa)-.1 G(djacent)
--2.845 E .868(colons, or as an initial or trailing colon.)144 264 R .868
+-2.845 E .868(colons, or as an initial or trailing colon.)144 336 R .868
(The def)5.868 F .867(ault path is system-dependent, and is set by the)
--.1 F 26.328(administrator who installs)144 276 R F1(bash)28.828 E F0
+-.1 F 26.328(administrator who installs)144 348 R F1(bash)28.828 E F0
31.329(.A)C 26.329(common v)-2.5 F 26.329(alue is)-.25 F/F3 10/Courier@0
-SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 288 Q F0(.)A
-F1(POSIXL)108 300 Q(Y_CORRECT)-.92 E F0 .472(If this v)144 312 R .472
+SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 360 Q F0(.)A
+F1(POSIXL)108 372 Q(Y_CORRECT)-.92 E F0 .472(If this v)144 384 R .472
(ariable is in the en)-.25 F .471(vironment when)-.4 F F1(bash)2.971 E
F0 .471(starts, the shell enters)2.971 F/F4 10/Times-Italic@0 SF .471
(posix mode)2.971 F F0 .471(before reading)2.971 F .011
-(the startup \214les, as if the)144 324 R F1(\255\255posix)2.511 E F0
+(the startup \214les, as if the)144 396 R F1(\255\255posix)2.511 E F0
(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F .011
-(If it is set while the shell is)5.011 F(running,)144 336 Q F1(bash)2.5
+(If it is set while the shell is)5.011 F(running,)144 408 Q F1(bash)2.5
E F0(enables)2.5 E F4(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft)
-2.5 G(he command)-2.5 E F3(set -o posix)2.5 E F0(had been e)2.5 E -.15
-(xe)-.15 G(cuted.).15 E F1(PR)108 348 Q(OMPT_COMMAND)-.3 E F0
-(If set, the v)144 360 Q(alue is e)-.25 E -.15(xe)-.15 G
+(xe)-.15 G(cuted.).15 E F1(PR)108 420 Q(OMPT_COMMAND)-.3 E F0
+(If set, the v)144 432 Q(alue is e)-.25 E -.15(xe)-.15 G
(cuted as a command prior to issuing each primary prompt.).15 E F1(PR)
-108 372 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
-(If set to a number greater than zero, the v)144 384 R .676
+108 444 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
+(If set to a number greater than zero, the v)144 456 R .676
(alue is used as the number of trailing directory compo-)-.25 F .923
-(nents to retain when e)144 396 R .923(xpanding the)-.15 F F1(\\w)3.423
+(nents to retain when e)144 468 R .923(xpanding the)-.15 F F1(\\w)3.423
E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see)
3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E
-(Characters remo)144 408 Q -.15(ve)-.15 G 2.5(da).15 G
-(re replaced with an ellipsis.)-2.5 E F1(PS1)108 420 Q F0 .065(The v)
+(Characters remo)144 480 Q -.15(ve)-.15 G 2.5(da).15 G
+(re replaced with an ellipsis.)-2.5 E F1(PS1)108 492 Q F0 .065(The v)
19.33 F .065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15
F F2(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065
-(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 432 R
+(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 504 R
(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0
--.74('')2.5 G(.).74 E F1(PS2)108 444 Q F0 .004(The v)19.33 F .004
+-.74('')2.5 G(.).74 E F1(PS2)108 516 Q F0 .004(The v)19.33 F .004
(alue of this parameter is e)-.25 F .005(xpanded as with)-.15 F F1(PS1)
2.505 E F0 .005(and used as the secondary prompt string.)2.505 F(The)
-5.005 E(def)144 456 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
-(.).74 E F1(PS3)108 468 Q F0 1.116(The v)19.33 F 1.115
+5.005 E(def)144 528 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
+(.).74 E F1(PS3)108 540 Q F0 1.116(The v)19.33 F 1.115
(alue of this parameter is used as the prompt for the)-.25 F F1(select)
3.615 E F0 1.115(command \(see)3.615 F F2 1.115(SHELL GRAM-)3.615 F(MAR)
-144 480 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 492 Q F0
+144 552 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 564 Q F0
1.098(The v)19.33 F 1.099(alue of this parameter is e)-.25 F 1.099
(xpanded as with)-.15 F F1(PS1)3.599 E F0 1.099(and the v)3.599 F 1.099
-(alue is printed before each com-)-.25 F(mand)144 504 Q F1(bash)3.726 E
+(alue is printed before each com-)-.25 F(mand)144 576 Q F1(bash)3.726 E
F0 1.226(displays during an e)3.726 F -.15(xe)-.15 G 1.226
(cution trace.).15 F 1.225(The \214rst character of)6.226 F F2(PS4)3.725
-E F0 1.225(is replicated multiple)3.475 F(times, as necessary)144 516 Q
+E F0 1.225(is replicated multiple)3.475 F(times, as necessary)144 588 Q
2.5(,t)-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G
(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0
--.74('')2.5 G(.).74 E F1(SHELL)108 528 Q F0 .663
-(The full pathname to the shell is k)144 540 R .664(ept in this en)-.1 F
+-.74('')2.5 G(.).74 E F1(SHELL)108 600 Q F0 .663
+(The full pathname to the shell is k)144 612 R .664(ept in this en)-.1 F
.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .664
-(it is not set when the shell)3.164 F(starts,)144 552 Q F1(bash)2.5 E F0
+(it is not set when the shell)3.164 F(starts,)144 624 Q F1(bash)2.5 E F0
(assigns to it the full pathname of the current user')2.5 E 2.5(sl)-.55
-G(ogin shell.)-2.5 E F1(TIMEFORMA)108 564 Q(T)-.95 E F0 .827(The v)144
-576 R .826
+G(ogin shell.)-2.5 E F1(TIMEFORMA)108 636 Q(T)-.95 E F0 .827(The v)144
+648 R .826
(alue of this parameter is used as a format string specifying ho)-.25 F
3.326(wt)-.25 G .826(he timing information for)-3.326 F .648
-(pipelines pre\214x)144 588 R .648(ed with the)-.15 F F1(time)3.148 E F0
+(pipelines pre\214x)144 660 R .648(ed with the)-.15 F F1(time)3.148 E F0
(reserv)3.148 E .648(ed w)-.15 F .649(ord should be displayed.)-.1 F
(The)5.649 E F1(%)3.149 E F0 .649(character introduces)3.149 F .712
-(an escape sequence that is e)144 600 R .711(xpanded to a time v)-.15 F
+(an escape sequence that is e)144 672 R .711(xpanded to a time v)-.15 F
.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F
-(and their meanings are as follo)144 612 Q
-(ws; the braces denote optional portions.)-.25 E F1(%%)144 630 Q F0 2.5
-(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 642 Q F4(p)A F1
-(][l]R)A F0(The elapsed time in seconds.)11.68 E F1(%[)144 654 Q F4(p)A
-F1(][l]U)A F0(The number of CPU seconds spent in user mode.)11.68 E F1
-(%[)144 666 Q F4(p)A F1(][l]S)A F0
-(The number of CPU seconds spent in system mode.)13.34 E F1(%P)144 678 Q
-F0(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
-(The optional)144 694.8 R F4(p)3.37 E F0 .87(is a digit specifying the)
-3.37 F F4(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
-(he number of fractional digits after a decimal)-3.37 F 2.526(point. A)
-144 706.8 R -.25(va)2.526 G .025
-(lue of 0 causes no decimal point or fraction to be output.).25 F .025
-(At most three places after the)5.025 F .537
-(decimal point may be speci\214ed; v)144 718.8 R .537(alues of)-.25 F F4
-(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E
-F4(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 730.8 Q
-(alue 3 is used.)-.25 E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125
-E(15)185.115 E 0 Cg EP
+(and their meanings are as follo)144 684 Q
+(ws; the braces denote optional portions.)-.25 E F1(%%)144 702 Q F0 2.5
+(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 714 Q F4(p)A F1
+(][l]R)A F0(The elapsed time in seconds.)11.68 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(15)192.895 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .668(The optional)144 84 R/F1 10/Times-Bold@0 SF(l)3.168 E F0
+-.35 E/F1 10/Times-Bold@0 SF(%[)144 84 Q/F2 10/Times-Italic@0 SF(p)A F1
+(][l]U)A F0(The number of CPU seconds spent in user mode.)11.68 E F1(%[)
+144 96 Q F2(p)A F1(][l]S)A F0
+(The number of CPU seconds spent in system mode.)13.34 E F1(%P)144 108 Q
+F0(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
+(The optional)144 124.8 R F2(p)3.37 E F0 .87(is a digit specifying the)
+3.37 F F2(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
+(he number of fractional digits after a decimal)-3.37 F 2.526(point. A)
+144 136.8 R -.25(va)2.526 G .025
+(lue of 0 causes no decimal point or fraction to be output.).25 F .025
+(At most three places after the)5.025 F .537
+(decimal point may be speci\214ed; v)144 148.8 R .537(alues of)-.25 F F2
+(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E
+F2(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 160.8 Q
+(alue 3 is used.)-.25 E .668(The optional)144 177.6 R F1(l)3.168 E F0
.668(speci\214es a longer format, including minutes, of the form)3.168 F
-/F2 10/Times-Italic@0 SF(MM)3.168 E F0(m)A F2(SS)A F0(.)A F2(FF)A F0
-3.167(s. The)B -.25(va)3.167 G(lue).25 E(of)144 96 Q F2(p)2.5 E F0
+F2(MM)3.168 E F0(m)A F2(SS)A F0(.)A F2(FF)A F0 3.167(s. The)B -.25(va)
+3.167 G(lue).25 E(of)144 189.6 Q F2(p)2.5 E F0
(determines whether or not the fraction is included.)2.5 E(If this v)144
-112.8 Q(ariable is not set,)-.25 E F1(bash)2.501 E F0 .001
+206.4 Q(ariable is not set,)-.25 E F1(bash)2.501 E F0 .001
(acts as if it had the v)2.501 F(alue)-.25 E F1($\010\\nr)2.501 E
(eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS\010)-.18 E F0(.)A .495(If the v)144
-124.8 R .494(alue is null, no timing information is displayed.)-.25 F
+218.4 R .494(alue is null, no timing information is displayed.)-.25 F
2.994(At)5.494 G .494(railing ne)-2.994 F .494
(wline is added when the for)-.25 F(-)-.2 E(mat string is displayed.)144
-136.8 Q F1(TMOUT)108 153.6 Q F0 .717(If set to a v)144 165.6 R .717
+230.4 Q F1(TMOUT)108 247.2 Q F0 .717(If set to a v)144 259.2 R .717
(alue greater than zero,)-.25 F F1(TMOUT)3.217 E F0 .717
(is treated as the def)3.217 F .718(ault timeout for the)-.1 F F1 -.18
-(re)3.218 G(ad).18 E F0 -.2(bu)3.218 G(iltin.).2 E(The)144 177.6 Q F1
+(re)3.218 G(ad).18 E F0 -.2(bu)3.218 G(iltin.).2 E(The)144 271.2 Q F1
(select)2.542 E F0 .042(command terminates if input does not arri)2.542
F .342 -.15(ve a)-.25 H(fter).15 E F1(TMOUT)2.542 E F0 .042
-(seconds when input is com-)2.542 F .885(ing from a terminal.)144 189.6
+(seconds when input is com-)2.542 F .885(ing from a terminal.)144 283.2
R .885(In an interacti)5.885 F 1.185 -.15(ve s)-.25 H .885(hell, the v)
.15 F .886(alue is interpreted as the number of seconds to)-.25 F -.1
-(wa)144 201.6 S .546(it for input after issuing the primary prompt.).1 F
+(wa)144 295.2 S .546(it for input after issuing the primary prompt.).1 F
F1(Bash)5.546 E F0 .546(terminates after w)3.046 F .546
(aiting for that number of)-.1 F(seconds if input does not arri)144
-213.6 Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 230.4 Q F0 .273(If set,)144
-242.4 R F1(Bash)2.773 E F0 .273(uses its v)2.773 F .274
+307.2 Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 324 Q F0 .273(If set,)144
+336 R F1(Bash)2.773 E F0 .273(uses its v)2.773 F .274
(alue as the name of a directory in which)-.25 F F1(Bash)2.774 E F0 .274
-(creates temporary \214les for the)2.774 F(shell')144 254.4 Q 2.5(su)
--.55 G(se.)-2.5 E F1(auto_r)108 271.2 Q(esume)-.18 E F0 .531(This v)144
-283.2 R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G .531
+(creates temporary \214les for the)2.774 F(shell')144 348 Q 2.5(su)-.55
+G(se.)-2.5 E F1(auto_r)108 364.8 Q(esume)-.18 E F0 .531(This v)144 376.8
+R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G .531
(he shell interacts with the user and job control.)-3.031 F .53
-(If this v)5.53 F .53(ariable is set,)-.25 F .538(single w)144 295.2 R
+(If this v)5.53 F .53(ariable is set,)-.25 F .538(single w)144 388.8 R
.538(ord simple commands without redirections are treated as candidates\
- for resumption of an)-.1 F -.15(ex)144 307.2 S .367(isting stopped job)
+ for resumption of an)-.1 F -.15(ex)144 400.8 S .367(isting stopped job)
.15 F 5.367(.T)-.4 G .366(here is no ambiguity allo)-5.367 F .366
(wed; if there is more than one job be)-.25 F .366(ginning with)-.15 F
1.124(the string typed, the job most recently accessed is selected.)144
-319.2 R(The)6.125 E F2(name)3.985 E F0 1.125(of a stopped job, in this)
-3.805 F(conte)144 331.2 Q 1.133
+412.8 R(The)6.125 E F2(name)3.985 E F0 1.125(of a stopped job, in this)
+3.805 F(conte)144 424.8 Q 1.133
(xt, is the command line used to start it.)-.15 F 1.133(If set to the v)
6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E F0 3.632(,t).68 G 1.132
(he string supplied must)-3.632 F .624
-(match the name of a stopped job e)144 343.2 R .624(xactly; if set to)
+(match the name of a stopped job e)144 436.8 R .624(xactly; if set to)
-.15 F F2(substring)3.125 E F0 3.125(,t).22 G .625
(he string supplied needs to match a)-3.125 F .885
-(substring of the name of a stopped job)144 355.2 R 5.884(.T)-.4 G(he)
+(substring of the name of a stopped job)144 448.8 R 5.884(.T)-.4 G(he)
-5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .884(lue pro).25 F .884
-(vides functionality analogous to)-.15 F(the)144 367.2 Q F1(%?)3.333 E
+(vides functionality analogous to)-.15 F(the)144 460.8 Q F1(%?)3.333 E
F0 .833(job identi\214er \(see)5.833 F/F3 9/Times-Bold@0 SF .834
(JOB CONTR)3.334 F(OL)-.27 E F0(belo)3.084 E 3.334(w\). If)-.25 F .834
(set to an)3.334 F 3.334(yo)-.15 G .834(ther v)-3.334 F .834
(alue, the supplied string)-.25 F .316
-(must be a pre\214x of a stopped job')144 379.2 R 2.816(sn)-.55 G .316
+(must be a pre\214x of a stopped job')144 472.8 R 2.816(sn)-.55 G .316
(ame; this pro)-2.816 F .315(vides functionality analogous to the)-.15 F
-F1(%)2.815 E F2(string)A F0(job)2.815 E(identi\214er)144 391.2 Q(.)-.55
-E F1(histchars)108 408 Q F0 2.069(The tw)144 420 R 4.57(oo)-.1 G 4.57
-(rt)-4.57 G 2.07(hree characters which control history e)-4.57 F 2.07
-(xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F3(HIST)4.57 E(OR)
--.162 E(Y)-.315 E(EXP)144 432 Q(ANSION)-.666 E F0(belo)3.466 E 3.716
-(w\). The)-.25 F 1.216(\214rst character is the)3.716 F F2 1.215
+F1(%)2.815 E F2(string)A F0(job)2.815 E(identi\214er)144 484.8 Q(.)-.55
+E F1(histchars)108 501.6 Q F0 2.069(The tw)144 513.6 R 4.57(oo)-.1 G
+4.57(rt)-4.57 G 2.07(hree characters which control history e)-4.57 F
+2.07(xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F3(HIST)4.57 E
+(OR)-.162 E(Y)-.315 E(EXP)144 525.6 Q(ANSION)-.666 E F0(belo)3.466 E
+3.716(w\). The)-.25 F 1.216(\214rst character is the)3.716 F F2 1.215
(history e)3.715 F(xpansion)-.2 E F0(character)3.715 E 3.715(,t)-.4 G
1.215(he character which)-3.715 F .798(signals the start of a history e)
-144 444 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B .798
-(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G
-(ubstitu-)-3.298 E(tion)144 456 Q F0(character)2.74 E 2.74(,w)-.4 G .239
-(hich is used as shorthand for re-running the pre)-2.74 F .239
+144 537.6 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B
+.798(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G
+(ubstitu-)-3.298 E(tion)144 549.6 Q F0(character)2.74 E 2.74(,w)-.4 G
+.239(hich is used as shorthand for re-running the pre)-2.74 F .239
(vious command entered, substitut-)-.25 F .575
-(ing one string for another in the command.)144 468 R .575(The def)5.575
-F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .576
+(ing one string for another in the command.)144 561.6 R .575(The def)
+5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .576
(optional third character is the)3.076 F .223(character which indicates\
that the remainder of the line is a comment when found as the \214rst \
-char)144 480 R(-)-.2 E 1.293(acter of a w)144 492 R 1.293
+char)144 573.6 R(-)-.2 E 1.293(acter of a w)144 585.6 R 1.293
(ord, normally `)-.1 F F1(#)A F0 3.793('. The)B 1.294
(history comment character causes history substitution to be)3.794 F .38
-(skipped for the remaining w)144 504 R .38(ords on the line.)-.1 F .379
-(It does not necessarily cause the shell parser to treat)5.379 F
-(the rest of the line as a comment.)144 516 Q F1(Arrays)87 532.8 Q(Bash)
-108 544.8 Q F0(pro)3.39 E .89(vides one-dimensional inde)-.15 F -.15(xe)
--.15 G 3.39(da).15 G .891(nd associati)-3.39 F 1.191 -.15(ve a)-.25 H
-.891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .891
-(ariable may be used as an)-3.641 F(inde)108 556.8 Q -.15(xe)-.15 G
+(skipped for the remaining w)144 597.6 R .38(ords on the line.)-.1 F
+.379(It does not necessarily cause the shell parser to treat)5.379 F
+(the rest of the line as a comment.)144 609.6 Q F1(Arrays)87 626.4 Q
+(Bash)108 638.4 Q F0(pro)3.39 E .89(vides one-dimensional inde)-.15 F
+-.15(xe)-.15 G 3.39(da).15 G .891(nd associati)-3.39 F 1.191 -.15(ve a)
+-.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .891
+(ariable may be used as an)-3.641 F(inde)108 650.4 Q -.15(xe)-.15 G
2.574(da).15 G .074(rray; the)-2.574 F F1(declar)2.574 E(e)-.18 E F0 -.2
(bu)2.574 G .074(iltin will e).2 F .073(xplicitly declare an array)-.15
F 5.073(.T)-.65 G .073(here is no maximum limit on the size of)-5.073 F
-.328(an array)108 568.8 R 2.828(,n)-.65 G .328(or an)-2.828 F 2.828(yr)
+.328(an array)108 662.4 R 2.828(,n)-.65 G .328(or an)-2.828 F 2.828(yr)
-.15 G .329(equirement that members be inde)-2.828 F -.15(xe)-.15 G
2.829(do).15 G 2.829(ra)-2.829 G .329(ssigned contiguously)-2.829 F
5.329(.I)-.65 G(nde)-5.329 E -.15(xe)-.15 G 2.829(da).15 G .329
-(rrays are refer)-2.829 F(-)-.2 E 1.387(enced using inte)108 580.8 R
+(rrays are refer)-2.829 F(-)-.2 E 1.387(enced using inte)108 674.4 R
1.387(gers \(including arithmetic e)-.15 F 3.887(xpressions\) and)-.15 F
1.387(are zero-based; associati)3.887 F 1.686 -.15(ve a)-.25 H 1.386
-(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 592.8
-Q 2.462(An inde)108 609.6 R -.15(xe)-.15 G 4.962(da).15 G 2.462
+(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 686.4
+Q 2.462(An inde)108 703.2 R -.15(xe)-.15 G 4.962(da).15 G 2.462
(rray is created automatically if an)-4.962 F 4.963(yv)-.15 G 2.463
(ariable is assigned to using the syntax)-5.213 F F2(name)4.963 E F0([)A
-F2(sub-)A(script)108 621.6 Q F0(]=)A F2(value)A F0 5.682(.T)C(he)-5.682
+F2(sub-)A(script)108 715.2 Q F0(]=)A F2(value)A F0 5.682(.T)C(he)-5.682
E F2(subscript)3.522 E F0 .682(is treated as an arithmetic e)3.862 F
.682(xpression that must e)-.15 F -.25(va)-.25 G .682
-(luate to a number greater).25 F .749(than or equal to zero.)108 633.6 R
+(luate to a number greater).25 F .749(than or equal to zero.)108 727.2 R
2.349 -.8(To e)5.749 H .749(xplicitly declare an inde).65 F -.15(xe)-.15
G 3.249(da).15 G(rray)-3.249 E 3.249(,u)-.65 G(se)-3.249 E F1(declar)
3.249 E 3.249<65ad>-.18 G(a)-3.249 E F2(name)3.249 E F0(\(see)3.25 E F3
-.75(SHELL B)3.25 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)108 645.6 Q F0(belo)
-2.25 E(w\).)-.25 E F1(declar)5 E 2.5<65ad>-.18 G(a)-2.5 E F2(name)2.5 E
-F1([)A F2(subscript)A F1(])A F0(is also accepted; the)2.5 E F2
-(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 662.4 Q .3 -.15
-(ve a)-.25 H(rrays are created using).15 E F1(declar)2.5 E 2.5<65ad>-.18
-G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108 679.2 Q .941
-(utes may be speci\214ed for an array v)-.2 F .941(ariable using the)
--.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.44 E F1 -.18(re)3.44 G
-(adonly).18 E F0 -.2(bu)3.44 G 3.44(iltins. Each).2 F(attrib)3.44 E(ute)
--.2 E(applies to all members of an array)108 691.2 Q(.)-.65 E 1.647
-(Arrays are assigned to using compound assignments of the form)108 708 R
-F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647
-(... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.148(,w)C 1.648(here each)
--4.148 F F2(value)108 720 Q F0 .122(is of the form [)2.622 F F2
-(subscript)A F0(]=)A F2(string)A F0 5.122(.I)C(nde)-5.122 E -.15(xe)-.15
-G 2.622(da).15 G .122(rray assignments do not require the brack)-2.622 F
-.122(et and subscript.)-.1 F(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(16)185.115 E 0 Cg EP
+.75(SHELL B)3.25 F(UIL)-.09 E(TIN)-.828 E F0(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(16)192.895 E 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .163(When assigning to inde)108 84 R -.15(xe)-.15 G 2.663(da).15
-G .163(rrays, if the optional brack)-2.663 F .163
-(ets and subscript are supplied, that inde)-.1 F 2.664(xi)-.15 G 2.664
-(sa)-2.664 G(ssigned)-2.664 E 1.411(to; otherwise the inde)108 96 R
-3.911(xo)-.15 G 3.911(ft)-3.911 G 1.411
+-.35 E/F1 9/Times-Bold@0 SF(COMMANDS)108 84 Q F0(belo)2.25 E(w\).)-.25 E
+/F2 10/Times-Bold@0 SF(declar)5 E 2.5<65ad>-.18 G(a)-2.5 E/F3 10
+/Times-Italic@0 SF(name)2.5 E F2([)A F3(subscript)A F2(])A F0
+(is also accepted; the)2.5 E F3(subscript)2.5 E F0(is ignored.)2.5 E
+(Associati)108 100.8 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E
+F2(declar)2.5 E 2.5<65ad>-.18 G(A)-2.5 E F3(name)2.5 E F0(.)A(Attrib)108
+117.6 Q .941(utes may be speci\214ed for an array v)-.2 F .941
+(ariable using the)-.25 F F2(declar)3.441 E(e)-.18 E F0(and)3.44 E F2
+-.18(re)3.44 G(adonly).18 E F0 -.2(bu)3.44 G 3.44(iltins. Each).2 F
+(attrib)3.44 E(ute)-.2 E(applies to all members of an array)108 129.6 Q
+(.)-.65 E 1.647
+(Arrays are assigned to using compound assignments of the form)108 146.4
+R F3(name)4.147 E F0(=)A F2(\()A F0 -.25(va)C(lue).25 E F3(1)A F0 1.647
+(... v)4.147 F(alue)-.25 E F3(n)A F2(\))A F0 4.148(,w)C 1.648(here each)
+-4.148 F F3(value)108 158.4 Q F0 .122(is of the form [)2.622 F F3
+(subscript)A F0(]=)A F3(string)A F0 5.122(.I)C(nde)-5.122 E -.15(xe)-.15
+G 2.622(da).15 G .122(rray assignments do not require the brack)-2.622 F
+.122(et and subscript.)-.1 F .163(When assigning to inde)108 170.4 R
+-.15(xe)-.15 G 2.663(da).15 G .163(rrays, if the optional brack)-2.663 F
+.163(ets and subscript are supplied, that inde)-.1 F 2.664(xi)-.15 G
+2.664(sa)-2.664 G(ssigned)-2.664 E 1.411(to; otherwise the inde)108
+182.4 R 3.911(xo)-.15 G 3.911(ft)-3.911 G 1.411
(he element assigned is the last inde)-3.911 F 3.91(xa)-.15 G 1.41
-(ssigned to by the statement plus one.)-3.91 F(Inde)108 108 Q
-(xing starts at zero.)-.15 E(When assigning to an associati)108 124.8 Q
+(ssigned to by the statement plus one.)-3.91 F(Inde)108 194.4 Q
+(xing starts at zero.)-.15 E(When assigning to an associati)108 211.2 Q
.3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.)
--2.5 E .239(This syntax is also accepted by the)108 141.6 R/F1 10
-/Times-Bold@0 SF(declar)2.739 E(e)-.18 E F0 -.2(bu)2.739 G 2.739
-(iltin. Indi).2 F .24
-(vidual array elements may be assigned to using the)-.25 F/F2 10
-/Times-Italic@0 SF(name)108 153.6 Q F0([)A F2(subscript)A F0(]=)A F2
-(value)A F0(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E(An)108
-170.4 Q 3.576(ye)-.15 G 1.076
-(lement of an array may be referenced using ${)-3.576 F F2(name)A F0([)A
-F2(subscript)A F0 3.575(]}. The)B 1.075(braces are required to a)3.575 F
--.2(vo)-.2 G(id).2 E 1.541(con\215icts with pathname e)108 182.4 R 4.041
-(xpansion. If)-.15 F F2(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0
-(or)4.041 E F1(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)
--.1 F 1.541(xpands to all members of)-.15 F F2(name)4.042 E F0(.)A 1.057
-(These subscripts dif)108 194.4 R 1.057(fer only when the w)-.25 F 1.057
+-2.5 E .239(This syntax is also accepted by the)108 228 R F2(declar)
+2.739 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .24
+(vidual array elements may be assigned to using the)-.25 F F3(name)108
+240 Q F0([)A F3(subscript)A F0(]=)A F3(value)A F0(syntax introduced abo)
+2.5 E -.15(ve)-.15 G(.).15 E(An)108 256.8 Q 3.576(ye)-.15 G 1.076
+(lement of an array may be referenced using ${)-3.576 F F3(name)A F0([)A
+F3(subscript)A F0 3.575(]}. The)B 1.075(braces are required to a)3.575 F
+-.2(vo)-.2 G(id).2 E 1.541(con\215icts with pathname e)108 268.8 R 4.041
+(xpansion. If)-.15 F F3(subscript)4.041 E F0(is)4.041 E F2(@)4.041 E F0
+(or)4.041 E F2(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)
+-.1 F 1.541(xpands to all members of)-.15 F F3(name)4.042 E F0(.)A 1.057
+(These subscripts dif)108 280.8 R 1.057(fer only when the w)-.25 F 1.057
(ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056
-(ord is double-quoted,)-.1 F(${)108 206.4 Q F2(name)A F0 .52([*]} e)B
+(ord is double-quoted,)-.1 F(${)108 292.8 Q F3(name)A F0 .52([*]} e)B
.52(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521
(alue of each array member separated by the \214rst character)-.25 F
-1.375(of the)108 218.4 R/F3 9/Times-Bold@0 SF(IFS)3.875 E F0 1.375
-(special v)3.625 F 1.375(ariable, and ${)-.25 F F2(name)A F0 1.375
-([@]} e)B 1.375(xpands each element of)-.15 F F2(name)3.875 E F0 1.374
-(to a separate w)3.875 F 3.874(ord. When)-.1 F 2.027
-(there are no array members, ${)108 230.4 R F2(name)A F0 2.028([@]} e)B
-2.028(xpands to nothing.)-.15 F 2.028(If the double-quoted e)7.028 F
-2.028(xpansion occurs)-.15 F .759(within a w)108 242.4 R .759
-(ord, the e)-.1 F .759
+1.375(of the)108 304.8 R F1(IFS)3.875 E F0 1.375(special v)3.625 F 1.375
+(ariable, and ${)-.25 F F3(name)A F0 1.375([@]} e)B 1.375
+(xpands each element of)-.15 F F3(name)3.875 E F0 1.374(to a separate w)
+3.875 F 3.874(ord. When)-.1 F 2.027(there are no array members, ${)108
+316.8 R F3(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
+2.028(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759
+(within a w)108 328.8 R .759(ord, the e)-.1 F .759
(xpansion of the \214rst parameter is joined with the be)-.15 F .759
(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108
-254.4 R .516(xpansion of the last parameter is joined with the last par\
+340.8 R .516(xpansion of the last parameter is joined with the last par\
t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016
-F .228(to the e)108 266.4 R .228(xpansion of the special parameters)-.15
-F F1(*)2.728 E F0(and)2.728 E F1(@)2.728 E F0(\(see)2.728 E F1 .228
+F .228(to the e)108 352.8 R .228(xpansion of the special parameters)-.15
+F F2(*)2.728 E F0(and)2.728 E F2(@)2.728 E F0(\(see)2.728 E F2 .228
(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
-(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 278.4
-S .886(pands to the length of ${).15 F F2(name)A F0([)A F2(subscript)A
-F0 3.386(]}. If)B F2(subscript)3.386 E F0(is)3.386 E F1(*)3.386 E F0(or)
-3.386 E F1(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
-(xpansion is the number of ele-)-.15 F .463(ments in the array)108 290.4
+(\). ${#).15 F F3(name)A F0([)A F3(subscript)A F0(]})A -.15(ex)108 364.8
+S .886(pands to the length of ${).15 F F3(name)A F0([)A F3(subscript)A
+F0 3.386(]}. If)B F3(subscript)3.386 E F0(is)3.386 E F2(*)3.386 E F0(or)
+3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
+(xpansion is the number of ele-)-.15 F .463(ments in the array)108 376.8
R 5.463(.R)-.65 G .463(eferencing an array v)-5.463 F .462
(ariable without a subscript is equi)-.25 F -.25(va)-.25 G .462
-(lent to referencing the array).25 F(with a subscript of 0.)108 302.4 Q
-.168(An array v)108 319.2 R .168
+(lent to referencing the array).25 F(with a subscript of 0.)108 388.8 Q
+.168(An array v)108 405.6 R .168
(ariable is considered set if a subscript has been assigned a v)-.25 F
2.668(alue. The)-.25 F .168(null string is a v)2.668 F .168(alid v)-.25
-F(alue.)-.25 E(The)108 336 Q F1(unset)2.767 E F0 -.2(bu)2.767 G .267
-(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F1(unset)
-5.267 E F2(name)2.767 E F0([)A F2(subscript)A F0 2.767(]d)C(estro)-2.767
-E .267(ys the array element at inde)-.1 F(x)-.15 E F2(sub-)2.766 E
-(script)108 348 Q F0 6.204(.C)C 1.204(are must be tak)-6.204 F 1.204
+F(alue.)-.25 E(The)108 422.4 Q F2(unset)2.767 E F0 -.2(bu)2.767 G .267
+(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F2(unset)
+5.267 E F3(name)2.767 E F0([)A F3(subscript)A F0 2.767(]d)C(estro)-2.767
+E .267(ys the array element at inde)-.1 F(x)-.15 E F3(sub-)2.766 E
+(script)108 434.4 Q F0 6.204(.C)C 1.204(are must be tak)-6.204 F 1.204
(en to a)-.1 F -.2(vo)-.2 G 1.205(id unw).2 F 1.205(anted side ef)-.1 F
-1.205(fects caused by pathname e)-.25 F(xpansion.)-.15 E F1(unset)6.205
-E F2(name)3.705 E F0(,)A(where)108 360 Q F2(name)2.5 E F0(is an array)
-2.5 E 2.5(,o)-.65 G(r)-2.5 E F1(unset)2.5 E F2(name)2.5 E F0([)A F2
-(subscript)A F0(], where)A F2(subscript)2.5 E F0(is)2.5 E F1(*)2.5 E F0
-(or)2.5 E F1(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G
-(he entire array)-2.5 E(.)-.65 E(The)108 376.8 Q F1(declar)3.574 E(e)
--.18 E F0(,)A F1(local)3.574 E F0 3.574(,a)C(nd)-3.574 E F1 -.18(re)
+1.205(fects caused by pathname e)-.25 F(xpansion.)-.15 E F2(unset)6.205
+E F3(name)3.705 E F0(,)A(where)108 446.4 Q F3(name)2.5 E F0(is an array)
+2.5 E 2.5(,o)-.65 G(r)-2.5 E F2(unset)2.5 E F3(name)2.5 E F0([)A F3
+(subscript)A F0(], where)A F3(subscript)2.5 E F0(is)2.5 E F2(*)2.5 E F0
+(or)2.5 E F2(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G
+(he entire array)-2.5 E(.)-.65 E(The)108 463.2 Q F2(declar)3.574 E(e)
+-.18 E F0(,)A F2(local)3.574 E F0 3.574(,a)C(nd)-3.574 E F2 -.18(re)
3.574 G(adonly).18 E F0 -.2(bu)3.574 G 1.073(iltins each accept a).2 F
-F1<ad61>3.573 E F0 1.073(option to specify an inde)3.573 F -.15(xe)-.15
-G 3.573(da).15 G 1.073(rray and a)-3.573 F F1<ad41>3.573 E F0 .751
-(option to specify an associati)108 388.8 R 1.051 -.15(ve a)-.25 H(rray)
-.15 E 5.751(.T)-.65 G(he)-5.751 E F1 -.18(re)3.251 G(ad).18 E F0 -.2(bu)
-3.251 G .752(iltin accepts a).2 F F1<ad61>3.252 E F0 .752
+F2<ad61>3.573 E F0 1.073(option to specify an inde)3.573 F -.15(xe)-.15
+G 3.573(da).15 G 1.073(rray and a)-3.573 F F2<ad41>3.573 E F0 .751
+(option to specify an associati)108 475.2 R 1.051 -.15(ve a)-.25 H(rray)
+.15 E 5.751(.T)-.65 G(he)-5.751 E F2 -.18(re)3.251 G(ad).18 E F0 -.2(bu)
+3.251 G .752(iltin accepts a).2 F F2<ad61>3.252 E F0 .752
(option to assign a list of w)3.252 F .752(ords read)-.1 F .502
-(from the standard input to an array)108 400.8 R 5.502(.T)-.65 G(he)
--5.502 E F1(set)3.002 E F0(and)3.002 E F1(declar)3.002 E(e)-.18 E F0 -.2
+(from the standard input to an array)108 487.2 R 5.502(.T)-.65 G(he)
+-5.502 E F2(set)3.002 E F0(and)3.002 E F2(declar)3.002 E(e)-.18 E F0 -.2
(bu)3.002 G .502(iltins display array v).2 F .502(alues in a w)-.25 F
.502(ay that allo)-.1 F(ws)-.25 E(them to be reused as assignments.)108
-412.8 Q/F4 10.95/Times-Bold@0 SF(EXP)72 429.6 Q(ANSION)-.81 E F0 .76(Ex\
-pansion is performed on the command line after it has been split into w)
-108 441.6 R 3.26(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26
-(nk).15 G .76(inds of)-3.26 F -.15(ex)108 453.6 S .37
-(pansion performed:).15 F F2(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E
-F0(,).24 E F2 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F2(par)
-2.869 E .369(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F2
-.369(command sub-)2.869 F(stitution)108 465.6 Q F0(,).24 E F2
-(arithmetic e)2.5 E(xpansion)-.2 E F0(,).24 E F2(wor)2.5 E 2.5(ds)-.37 G
-(plitting)-2.5 E F0 2.5(,a).22 G(nd)-2.5 E F2(pathname e)2.5 E(xpansion)
--.2 E F0(.).24 E .47(The order of e)108 482.4 R .471
-(xpansions is: brace e)-.15 F .471(xpansion, tilde e)-.15 F .471
-(xpansion, parameter)-.15 F 2.971(,v)-.4 G .471
-(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
-(and command substitution \(done in a left-to-right f)108 494.4 Q
+499.2 Q/F4 10.95/Times-Bold@0 SF(EXP)72 516 Q(ANSION)-.81 E F0 .76(Expa\
+nsion is performed on the command line after it has been split into w)
+108 528 R 3.26(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26
+(nk).15 G .76(inds of)-3.26 F -.15(ex)108 540 S .37(pansion performed:)
+.15 F F3(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F3 .369
+(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F3(par)2.869 E .369
+(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F3 .369
+(command sub-)2.869 F(stitution)108 552 Q F0(,).24 E F3(arithmetic e)2.5
+E(xpansion)-.2 E F0(,).24 E F3(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E
+F0 2.5(,a).22 G(nd)-2.5 E F3(pathname e)2.5 E(xpansion)-.2 E F0(.).24 E
+.47(The order of e)108 568.8 R .471(xpansions is: brace e)-.15 F .471
+(xpansion, tilde e)-.15 F .471(xpansion, parameter)-.15 F 2.971(,v)-.4 G
+.471(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
+(and command substitution \(done in a left-to-right f)108 580.8 Q
(ashion\), w)-.1 E(ord splitting, and pathname e)-.1 E(xpansion.)-.15 E
-(On systems that can support it, there is an additional e)108 511.2 Q
-(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F2(pr)2.5 E
-(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 528 R 1.487
+(On systems that can support it, there is an additional e)108 597.6 Q
+(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F3(pr)2.5 E
+(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 614.4 R 1.487
(xpansion, w)-.15 F 1.487(ord splitting, and pathname e)-.1 F 1.487
(xpansion can change the number of w)-.15 F 1.486(ords of the)-.1 F -.15
-(ex)108 540 S 1.164(pansion; other e).15 F 1.164(xpansions e)-.15 F
+(ex)108 626.4 S 1.164(pansion; other e).15 F 1.164(xpansions e)-.15 F
1.164(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665
(ord. The)-.1 F 1.165(only e)3.665 F 1.165(xceptions to this are the)
--.15 F -.15(ex)108 552 S(pansions of ").15 E F1($@)A F0 2.5("a)C(nd ")
--2.5 E F1(${)A F2(name)A F1([@]})A F0 2.5("a)C 2.5(se)-2.5 G
-(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E F3 -.666(PA)2.5 G
-(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F1(Brace Expansion)87 568.8
-Q F2(Br)108.58 580.8 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
+-.15 F -.15(ex)108 638.4 S(pansions of ").15 E F2($@)A F0 2.5("a)C(nd ")
+-2.5 E F2(${)A F3(name)A F2([@]})A F0 2.5("a)C 2.5(se)-2.5 G
+(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E F1 -.666(PA)2.5 G
+(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F2(Brace Expansion)87 655.2
+Q F3(Br)108.58 667.2 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
(is a mechanism by which arbitrary strings may be generated.)3.346 F
-.606(This mechanism is similar)5.606 F(to)108 592.8 Q F2 .415
+.606(This mechanism is similar)5.606 F(to)108 679.2 Q F3 .415
(pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
(ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F
.415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G
-(he)-2.915 E .152(form of an optional)108 604.8 R F2(pr)2.652 E(eamble)
+(he)-2.915 E .152(form of an optional)108 691.2 R F3(pr)2.652 E(eamble)
-.37 E F0 2.651(,f).18 G(ollo)-2.651 E .151
(wed by either a series of comma-separated strings or a sequence e)-.25
-F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 616.8 R
-.563(wed by an optional)-.25 F F2(postscript)3.063 E F0 5.563(.T).68 G
+F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 703.2 R
+.563(wed by an optional)-.25 F F3(postscript)3.063 E F0 5.563(.T).68 G
.563(he preamble is pre\214x)-5.563 F .563(ed to each string)-.15 F .659
(contained within the braces, and the postscript is then appended to ea\
-ch resulting string, e)108 628.8 R .658(xpanding left to)-.15 F(right.)
-108 640.8 Q .718(Brace e)108 657.6 R .719(xpansions may be nested.)-.15
-F .719(The results of each e)5.719 F .719
+ch resulting string, e)108 715.2 R .658(xpanding left to)-.15 F(right.)
+108 727.2 Q(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(17)192.895 E
+0 Cg EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .718(Brace e)108 84 R .719(xpansions may be nested.)-.15 F .719
+(The results of each e)5.719 F .719
(xpanded string are not sorted; left to right order is)-.15 F(preserv)
-108 669.6 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F1({)A F0
-(d,c,b)A F1(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.243(As)
-108 686.4 S .743(equence e)-3.243 F .743(xpression tak)-.15 F .743
-(es the form)-.1 F F1({)3.243 E F2(x)A F1(..)A F2(y)A F1([..)A F2(incr)A
-F1(]})A F0 3.243(,w)C(here)-3.243 E F2(x)3.243 E F0(and)3.242 E F2(y)
-3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,)
--.15 F(and)108 698.4 Q F2(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G
-.532(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G
-.532(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532
+108 96 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E/F1 10
+/Times-Bold@0 SF({)A F0(d,c,b)A F1(})A F0 2.5(ee)C
+(xpands into `ade ace abe'.)-2.65 E 3.243(As)108 112.8 S .743(equence e)
+-3.243 F .743(xpression tak)-.15 F .743(es the form)-.1 F F1({)3.243 E
+/F2 10/Times-Italic@0 SF(x)A F1(..)A F2(y)A F1([..)A F2(incr)A F1(]})A
+F0 3.243(,w)C(here)-3.243 E F2(x)3.243 E F0(and)3.242 E F2(y)3.242 E F0
+.742(are either inte)3.242 F .742(gers or single characters,)-.15 F(and)
+108 124.8 Q F2(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G .532
+(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G .532
+(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532
(xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108
-710.4 R F2(x)2.578 E F0(and)2.578 E F2(y)2.578 E F0 2.578(,i)C(nclusi)
+136.8 R F2(x)2.578 E F0(and)2.578 E F2(y)2.578 E F0 2.578(,i)C(nclusi)
-2.578 E -.15(ve)-.25 G 5.078(.S).15 G .078(upplied inte)-5.078 F .077
(gers may be pre\214x)-.15 F .077(ed with)-.15 F F2(0)2.577 E F0 .077
(to force each term to ha)2.577 F .377 -.15(ve t)-.2 H(he).15 E .014
-(same width.)108 722.4 R .014(When either)5.014 F F2(x)2.514 E F0(or)
+(same width.)108 148.8 R .014(When either)5.014 F F2(x)2.514 E F0(or)
2.514 E F2(y)2.514 E F0(be)2.514 E .015(gins with a zero, the shell att\
-empts to force all generated terms to contain)-.15 F(GNU Bash-4.1)72 768
-Q(2009 September 16)135.125 E(17)185.115 E 0 Cg EP
-%%Page: 18 18
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 1.143(the same number of digits, zero-padding where necessary)108
-84 R 6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F
-(xpression)-.15 E -.15(ex)108 96 S .541(pands to each character le).15 F
-.541(xicographically between)-.15 F/F1 10/Times-Italic@0 SF(x)3.041 E F0
-(and)3.042 E F1(y)3.042 E F0 3.042(,i)C(nclusi)-3.042 E -.15(ve)-.25 G
-5.542(.N).15 G .542(ote that both)-5.542 F F1(x)3.042 E F0(and)3.042 E
-F1(y)3.042 E F0 .542(must be of)3.042 F .183(the same type.)108 108 R
-.182(When the increment is supplied, it is used as the dif)5.183 F .182
+empts to force all generated terms to contain)-.15 F 1.143
+(the same number of digits, zero-padding where necessary)108 160.8 R
+6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F
+(xpression)-.15 E -.15(ex)108 172.8 S .541(pands to each character le)
+.15 F .541(xicographically between)-.15 F F2(x)3.041 E F0(and)3.042 E F2
+(y)3.042 E F0 3.042(,i)C(nclusi)-3.042 E -.15(ve)-.25 G 5.542(.N).15 G
+.542(ote that both)-5.542 F F2(x)3.042 E F0(and)3.042 E F2(y)3.042 E F0
+.542(must be of)3.042 F .183(the same type.)108 184.8 R .182
+(When the increment is supplied, it is used as the dif)5.183 F .182
(ference between each term.)-.25 F .182(The def)5.182 F(ault)-.1 E
-(increment is 1 or -1 as appropriate.)108 120 Q .581(Brace e)108 136.8 R
-.581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581(ther e)
--3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582
+(increment is 1 or -1 as appropriate.)108 196.8 Q .581(Brace e)108 213.6
+R .581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581
+(ther e)-3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582
(haracters special to other e)-3.082 F(xpansions)-.15 E .016
-(are preserv)108 148.8 R .016(ed in the result.)-.15 F .016
-(It is strictly te)5.016 F(xtual.)-.15 E/F2 10/Times-Bold@0 SF(Bash)
-5.016 E F0 .015(does not apply an)2.516 F 2.515(ys)-.15 G .015
-(yntactic interpretation to the con-)-2.515 F(te)108 160.8 Q
+(are preserv)108 225.6 R .016(ed in the result.)-.15 F .016
+(It is strictly te)5.016 F(xtual.)-.15 E F1(Bash)5.016 E F0 .015
+(does not apply an)2.516 F 2.515(ys)-.15 G .015
+(yntactic interpretation to the con-)-2.515 F(te)108 237.6 Q
(xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.)
--.15 E 3.632(Ac)108 177.6 S 1.132(orrectly-formed brace e)-3.632 F 1.132
+-.15 E 3.632(Ac)108 254.4 S 1.132(orrectly-formed brace e)-3.632 F 1.132
(xpansion must contain unquoted opening and closing braces, and at leas\
-t one)-.15 F 3.441(unquoted comma or a v)108 189.6 R 3.441
+t one)-.15 F 3.441(unquoted comma or a v)108 266.4 R 3.441
(alid sequence e)-.25 F 5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441
(ncorrectly formed brace e)-5.941 F 3.44(xpansion is left)-.15 F 2.755
-(unchanged. A)108 201.6 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0
+(unchanged. A)108 278.4 R F1({)2.755 E F0(or)2.755 E F1(,)2.755 E F0
.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.911
-(sion. T)108 213.6 R 2.911(oa)-.8 G -.2(vo)-3.111 G .411
+(sion. T)108 290.4 R 2.911(oa)-.8 G -.2(vo)-3.111 G .411
(id con\215icts with parameter e).2 F .411(xpansion, the string)-.15 F
-F2(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
-(xpan-)-.15 E(sion.)108 225.6 Q 1.476(This construct is typically used \
+F1(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
+(xpan-)-.15 E(sion.)108 302.4 Q 1.476(This construct is typically used \
as shorthand when the common pre\214x of the strings to be generated is)
-108 242.4 R(longer than in the abo)108 254.4 Q .3 -.15(ve ex)-.15 H
-(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 271.2 Q -.65(w,)-.25
-G(dist,b).65 E(ugs})-.2 E(or)108 283.2 Q(cho)144 295.2 Q
+108 319.2 R(longer than in the abo)108 331.2 Q .3 -.15(ve ex)-.15 H
+(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 348 Q -.65(w,)-.25 G
+(dist,b).65 E(ugs})-.2 E(or)108 360 Q(cho)144 372 Q
(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15 E(w_e)
--.25 E(x}})-.15 E .618(Brace e)108 312 R .618
+-.25 E(x}})-.15 E .618(Brace e)108 388.8 R .618
(xpansion introduces a slight incompatibility with historical v)-.15 F
-.618(ersions of)-.15 F F2(sh)3.118 E F0(.)A F2(sh)5.618 E F0 .618
+.618(ersions of)-.15 F F1(sh)3.118 E F0(.)A F1(sh)5.618 E F0 .618
(does not treat open-)3.118 F .247
-(ing or closing braces specially when the)108 324 R 2.747(ya)-.15 G .247
-(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248
-(es them in the output.)-.15 F F2(Bash)5.248 E F0(remo)108 336 Q -.15
+(ing or closing braces specially when the)108 400.8 R 2.747(ya)-.15 G
+.247(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248
+(es them in the output.)-.15 F F1(Bash)5.248 E F0(remo)108 412.8 Q -.15
(ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03
(ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03
-(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh)
-3.53 E F0(as)3.53 E F1(\214le{1,2})108 348 Q F0 .514
+(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F1(sh)
+3.53 E F0(as)3.53 E F2(\214le{1,2})108 424.8 Q F0 .514
(appears identically in the output.)3.014 F .515(The same w)5.515 F .515
-(ord is output as)-.1 F F1 .515(\214le1 \214le2)4.925 F F0 .515(after e)
-3.035 F .515(xpansion by)-.15 F F2(bash)3.015 E F0(.)A .437
-(If strict compatibility with)108 360 R F2(sh)2.936 E F0 .436
-(is desired, start)2.936 F F2(bash)2.936 E F0 .436(with the)2.936 F F2
+(ord is output as)-.1 F F2 .515(\214le1 \214le2)4.925 F F0 .515(after e)
+3.035 F .515(xpansion by)-.15 F F1(bash)3.015 E F0(.)A .437
+(If strict compatibility with)108 436.8 R F1(sh)2.936 E F0 .436
+(is desired, start)2.936 F F1(bash)2.936 E F0 .436(with the)2.936 F F1
(+B)2.936 E F0 .436(option or disable brace e)2.936 F .436
-(xpansion with the)-.15 F F2(+B)108 372 Q F0(option to the)2.5 E F2(set)
-2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09
-E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2 -.18(Ti)87 388.8 S
-(lde Expansion).18 E F0 1.086(If a w)108 400.8 R 1.086(ord be)-.1 F
-1.086(gins with an unquoted tilde character \(`)-.15 F F2(~)A F0 1.087
-('\), all of the characters preceding the \214rst unquoted)B .185(slash\
- \(or all characters, if there is no unquoted slash\) are considered a)
-108 412.8 R F1(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685(fn)
--5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\214x\
- are quoted, the characters in the tilde-pre\214x follo)108 424.8 R .726
-(wing the tilde are treated as a possible)-.25 F F1(lo)108 436.8 Q .523
-(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523
+(xpansion with the)-.15 F F1(+B)108 448.8 Q F0(option to the)2.5 E F1
+(set)2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E
+(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1 -.18(Ti)
+87 465.6 S(lde Expansion).18 E F0 1.086(If a w)108 477.6 R 1.086(ord be)
+-.1 F 1.086(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0
+1.087('\), all of the characters preceding the \214rst unquoted)B .185(\
+slash \(or all characters, if there is no unquoted slash\) are consider\
+ed a)108 489.6 R F2(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685
+(fn)-5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\
+\214x are quoted, the characters in the tilde-pre\214x follo)108 501.6 R
+.726(wing the tilde are treated as a possible)-.25 F F2(lo)108 513.6 Q
+.523(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523
(his login name is the null string, the tilde is replaced with the v)
--3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 448.8 Q/F4
+-3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 525.6 Q/F4
9/Times-Roman@0 SF(.)A F0(If)4.786 E F3(HOME)2.786 E F0 .287
(is unset, the home directory of the user e)2.536 F -.15(xe)-.15 G .287
(cuting the shell is substituted instead.).15 F(Other)5.287 E(-)-.2 E(w\
ise, the tilde-pre\214x is replaced with the home directory associated \
-with the speci\214ed login name.)108 460.8 Q .093
-(If the tilde-pre\214x is a `~+', the v)108 477.6 R .092
+with the speci\214ed login name.)108 537.6 Q .093
+(If the tilde-pre\214x is a `~+', the v)108 554.4 R .092
(alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092
(replaces the tilde-pre\214x.)2.342 F .092(If the tilde-pre\214x is)
-5.092 F 3.403(a`)108 489.6 S .903(~\255', the v)-3.403 F .903
+5.092 F 3.403(a`)108 566.4 S .903(~\255', the v)-3.403 F .903
(alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0
.904(if it is set, is substituted.)3.154 F .904(If the characters follo)
5.904 F .904(wing the)-.25 F 1.642
-(tilde in the tilde-pre\214x consist of a number)108 501.6 R F1(N)4.142
+(tilde in the tilde-pre\214x consist of a number)108 578.4 R F2(N)4.142
E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.641
(ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F 1.437(replaced w\
ith the corresponding element from the directory stack, as it w)108
-513.6 R 1.438(ould be displayed by the)-.1 F F2(dirs)3.938 E F0 -.2(bu)
-108 525.6 S .455(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.955(dw).1 G
+590.4 R 1.438(ould be displayed by the)-.1 F F1(dirs)3.938 E F0 -.2(bu)
+108 602.4 S .455(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.955(dw).1 G
.455(ith the tilde-pre\214x as an ar)-2.955 F 2.954(gument. If)-.18 F
.454(the characters follo)2.954 F .454
(wing the tilde in the tilde-pre\214x)-.25 F
(consist of a number without a leading `+' or `\255', `+' is assumed.)
-108 537.6 Q(If the login name is in)108 554.4 Q -.25(va)-.4 G
+108 614.4 Q(If the login name is in)108 631.2 Q -.25(va)-.4 G
(lid, or the tilde e).25 E(xpansion f)-.15 E(ails, the w)-.1 E
-(ord is unchanged.)-.1 E .166(Each v)108 571.2 R .167
+(ord is unchanged.)-.1 E .166(Each v)108 648 R .167
(ariable assignment is check)-.25 F .167(ed for unquoted tilde-pre\214x)
--.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F2(:)2.667 E
-F0 .167(or the \214rst)2.667 F F2(=)2.667 E F0 5.167(.I)C(n)-5.167 E
-.282(these cases, tilde e)108 583.2 R .282(xpansion is also performed.)
+-.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E
+F0 .167(or the \214rst)2.667 F F1(=)2.667 E F0 5.167(.I)C(n)-5.167 E
+.282(these cases, tilde e)108 660 R .282(xpansion is also performed.)
-.15 F(Consequently)5.282 E 2.782(,o)-.65 G .282
(ne may use \214le names with tildes in assign-)-2.782 F(ments to)108
-595.2 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E -.855(AT)
--.666 G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)-.666 G(H)
-.855 E F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E
-(alue.)-.25 E F2 -.1(Pa)87 612 S(rameter Expansion).1 E F0 1.605(The `)
-108 624 R F2($)A F0 4.105('c)C 1.605(haracter introduces parameter e)
--4.105 F 1.606(xpansion, command substitution, or arithmetic e)-.15 F
-4.106(xpansion. The)-.15 F .407(parameter name or symbol to be e)108 636
-R .407(xpanded may be enclosed in braces, which are optional b)-.15 F
-.406(ut serv)-.2 F 2.906(et)-.15 G 2.906(op)-2.906 G(ro-)-2.906 E .032
-(tect the v)108 648 R .032(ariable to be e)-.25 F .032
+672 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E -.855(AT)-.666
+G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)-.666 G(H).855 E
+F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E(alue.)-.25
+E F1 -.1(Pa)87 688.8 S(rameter Expansion).1 E F0 1.605(The `)108 700.8 R
+F1($)A F0 4.105('c)C 1.605(haracter introduces parameter e)-4.105 F
+1.606(xpansion, command substitution, or arithmetic e)-.15 F 4.106
+(xpansion. The)-.15 F .407(parameter name or symbol to be e)108 712.8 R
+.407(xpanded may be enclosed in braces, which are optional b)-.15 F .406
+(ut serv)-.2 F 2.906(et)-.15 G 2.906(op)-2.906 G(ro-)-2.906 E .032
+(tect the v)108 724.8 R .032(ariable to be e)-.25 F .032
(xpanded from characters immediately follo)-.15 F .033
-(wing it which could be interpreted as part)-.25 F(of the name.)108 660
-Q 1.19(When braces are used, the matching ending brace is the \214rst `)
-108 676.8 R F2(})A F0 3.689('n)C 1.189
-(ot escaped by a backslash or within a)-3.689 F 2.15
-(quoted string, and not within an embedded arithmetic e)108 688.8 R 2.15
-(xpansion, command substitution, or parameter)-.15 F -.15(ex)108 700.8 S
-(pansion.).15 E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(18)
-185.115 E 0 Cg EP
+(wing it which could be interpreted as part)-.25 F(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(18)192.895 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E F0(})A
-1.205(The v)144 96 R 1.205(alue of)-.25 F F1(par)3.705 E(ameter)-.15 E
-F0 1.204(is substituted.)3.705 F 1.204(The braces are required when)
-6.204 F F1(par)4.954 E(ameter)-.15 E F0 1.204(is a positional)4.434 F
-.264(parameter with more than one digit, or when)144 108 R F1(par)4.014
-E(ameter)-.15 E F0 .264(is follo)3.494 F .264
+-.35 E(of the name.)108 84 Q 1.19
+(When braces are used, the matching ending brace is the \214rst `)108
+100.8 R/F1 10/Times-Bold@0 SF(})A F0 3.689('n)C 1.189
+(ot escaped by a backslash or within a)-3.689 F 2.15
+(quoted string, and not within an embedded arithmetic e)108 112.8 R 2.15
+(xpansion, command substitution, or parameter)-.15 F -.15(ex)108 124.8 S
+(pansion.).15 E(${)108 141.6 Q/F2 10/Times-Italic@0 SF(par)A(ameter)-.15
+E F0(})A 1.205(The v)144 153.6 R 1.205(alue of)-.25 F F2(par)3.705 E
+(ameter)-.15 E F0 1.204(is substituted.)3.705 F 1.204
+(The braces are required when)6.204 F F2(par)4.954 E(ameter)-.15 E F0
+1.204(is a positional)4.434 F .264
+(parameter with more than one digit, or when)144 165.6 R F2(par)4.014 E
+(ameter)-.15 E F0 .264(is follo)3.494 F .264
(wed by a character which is not to)-.25 F
-(be interpreted as part of its name.)144 120 Q 1.509
-(If the \214rst character of)108 136.8 R F1(par)4.009 E(ameter)-.15 E F0
-1.509(is an e)4.009 F 1.509(xclamation point, a le)-.15 F -.15(ve)-.25 G
-4.009(lo).15 G 4.008(fv)-4.009 G 1.508
-(ariable indirection is introduced.)-4.258 F/F2 10/Times-Bold@0 SF(Bash)
-108 148.8 Q F0 .106(uses the v)2.606 F .106(alue of the v)-.25 F .106
-(ariable formed from the rest of)-.25 F F1(par)2.606 E(ameter)-.15 E F0
+(be interpreted as part of its name.)144 177.6 Q .686
+(If the \214rst character of)108 194.4 R F2(par)3.186 E(ameter)-.15 E F0
+.685(is an e)3.185 F .685(xclamation point \()-.15 F F1(!)A F0 .685
+(\), a le)B -.15(ve)-.25 G 3.185(lo).15 G 3.185(fv)-3.185 G .685
+(ariable indirection is introduced.)-3.435 F F1(Bash)108 206.4 Q F0 .106
+(uses the v)2.606 F .106(alue of the v)-.25 F .106
+(ariable formed from the rest of)-.25 F F2(par)2.606 E(ameter)-.15 E F0
.106(as the name of the v)2.606 F .106(ariable; this v)-.25 F(ari-)-.25
-E .352(able is then e)108 160.8 R .352(xpanded and that v)-.15 F .351
+E .352(able is then e)108 218.4 R .352(xpanded and that v)-.15 F .351
(alue is used in the rest of the substitution, rather than the v)-.25 F
-.351(alue of)-.25 F F1(par)2.851 E(ame-)-.15 E(ter)108 172.8 Q F0 2.519
-(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F1(indir)
+.351(alue of)-.25 F F2(par)2.851 E(ame-)-.15 E(ter)108 230.4 Q F0 2.519
+(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F2(indir)
2.519 E .019(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019
-F .02(xceptions to this are the e)-.15 F .02(xpansions of ${!)-.15 F F1
-(pr)A(e\214x)-.37 E F0 .02(*} and)B(${)108 184.8 Q F2(!)A F1(name)A F0
-([)A F1(@)A F0 .763(]} described belo)B 4.563 -.65(w. T)-.25 H .763
+F .02(xceptions to this are the e)-.15 F .02(xpansions of ${!)-.15 F F2
+(pr)A(e\214x)-.37 E F0 .02(*} and)B(${)108 242.4 Q F1(!)A F2(name)A F0
+([)A F2(@)A F0 .763(]} described belo)B 4.563 -.65(w. T)-.25 H .763
(he e).65 F .763(xclamation point must immediately follo)-.15 F 3.263
(wt)-.25 G .763(he left brace in order to)-3.263 F
-(introduce indirection.)108 196.8 Q .334(In each of the cases belo)108
-213.6 R -.65(w,)-.25 G F1(wor)3.484 E(d)-.37 E F0 .334
+(introduce indirection.)108 254.4 Q .334(In each of the cases belo)108
+271.2 R -.65(w,)-.25 G F2(wor)3.484 E(d)-.37 E F0 .334
(is subject to tilde e)2.834 F .334(xpansion, parameter e)-.15 F .334
-(xpansion, command substitution,)-.15 F(and arithmetic e)108 225.6 Q
-(xpansion.)-.15 E .698(When not performing substring e)108 242.4 R .698
-(xpansion, using the forms documented belo)-.15 F -.65(w,)-.25 G F2
+(xpansion, command substitution,)-.15 F(and arithmetic e)108 283.2 Q
+(xpansion.)-.15 E .698(When not performing substring e)108 300 R .698
+(xpansion, using the forms documented belo)-.15 F -.65(w,)-.25 G F1
(bash)3.848 E F0 .697(tests for a parameter)3.198 F
-(that is unset or null.)108 254.4 Q(Omitting the colon results in a tes\
-t only for a parameter that is unset.)5 E(${)108 271.2 Q F1(par)A
-(ameter)-.15 E F2<3aad>A F1(wor)A(d)-.37 E F0(})A F2 .722(Use Default V)
-144 283.2 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 E F1(par)4.472 E(ameter)
--.15 E F0 .723(is unset or null, the e)3.952 F .723(xpansion of)-.15 F
-F1(wor)3.563 E(d)-.37 E F0 .723(is substituted.)3.993 F(Other)5.723 E(-)
--.2 E(wise, the v)144 295.2 Q(alue of)-.25 E F1(par)3.75 E(ameter)-.15 E
-F0(is substituted.)3.23 E(${)108 307.2 Q F1(par)A(ameter)-.15 E F2(:=)A
-F1(wor)A(d)-.37 E F0(})A F2 2.005(Assign Default V)144 319.2 R(alues)
--.92 E F0 7.005(.I)C(f)-7.005 E F1(par)5.755 E(ameter)-.15 E F0 2.005
-(is unset or null, the e)5.235 F 2.004(xpansion of)-.15 F F1(wor)4.844 E
-(d)-.37 E F0 2.004(is assigned to)5.274 F F1(par)144 331.2 Q(ameter)-.15
-E F0 5.278(.T).73 G .278(he v)-5.278 F .278(alue of)-.25 F F1(par)4.028
+(that is unset or null.)108 312 Q(Omitting the colon results in a test \
+only for a parameter that is unset.)5 E(${)108 328.8 Q F2(par)A(ameter)
+-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})A F1 .722(Use Default V)144
+340.8 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 E F2(par)4.472 E(ameter)-.15
+E F0 .723(is unset or null, the e)3.952 F .723(xpansion of)-.15 F F2
+(wor)3.563 E(d)-.37 E F0 .723(is substituted.)3.993 F(Other)5.723 E(-)
+-.2 E(wise, the v)144 352.8 Q(alue of)-.25 E F2(par)3.75 E(ameter)-.15 E
+F0(is substituted.)3.23 E(${)108 364.8 Q F2(par)A(ameter)-.15 E F1(:=)A
+F2(wor)A(d)-.37 E F0(})A F1 2.005(Assign Default V)144 376.8 R(alues)
+-.92 E F0 7.005(.I)C(f)-7.005 E F2(par)5.755 E(ameter)-.15 E F0 2.005
+(is unset or null, the e)5.235 F 2.004(xpansion of)-.15 F F2(wor)4.844 E
+(d)-.37 E F0 2.004(is assigned to)5.274 F F2(par)144 388.8 Q(ameter)-.15
+E F0 5.278(.T).73 G .278(he v)-5.278 F .278(alue of)-.25 F F2(par)4.028
E(ameter)-.15 E F0 .278(is then substituted.)3.508 F .279
(Positional parameters and special param-)5.278 F
-(eters may not be assigned to in this w)144 343.2 Q(ay)-.1 E(.)-.65 E
-(${)108 355.2 Q F1(par)A(ameter)-.15 E F2(:?)A F1(wor)A(d)-.37 E F0(})A
-F2 .535(Display Err)144 367.2 R .535(or if Null or Unset)-.18 F F0 5.535
-(.I)C(f)-5.535 E F1(par)4.285 E(ameter)-.15 E F0 .535
-(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F1(wor)3.035 E
-(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 379.2 R
-.661(fect if)-.25 F F1(wor)3.501 E(d)-.37 E F0 .662(is not present\) is\
+(eters may not be assigned to in this w)144 400.8 Q(ay)-.1 E(.)-.65 E
+(${)108 412.8 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A
+F1 .535(Display Err)144 424.8 R .535(or if Null or Unset)-.18 F F0 5.535
+(.I)C(f)-5.535 E F2(par)4.285 E(ameter)-.15 E F0 .535
+(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F2(wor)3.035 E
+(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 436.8 R
+.661(fect if)-.25 F F2(wor)3.501 E(d)-.37 E F0 .662(is not present\) is\
written to the standard error and the shell, if it is not)3.931 F
-(interacti)144 391.2 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
--2.65 F(the v)2.5 E(alue of)-.25 E F1(par)2.5 E(ameter)-.15 E F0
-(is substituted.)2.5 E(${)108 403.2 Q F1(par)A(ameter)-.15 E F2(:+)A F1
-(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 415.2 R .745(nate V)-.15 F
-(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E(ameter)-.15 E F0
+(interacti)144 448.8 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
+-2.65 F(the v)2.5 E(alue of)-.25 E F2(par)2.5 E(ameter)-.15 E F0
+(is substituted.)2.5 E(${)108 460.8 Q F2(par)A(ameter)-.15 E F1(:+)A F2
+(wor)A(d)-.37 E F0(})A F1 .745(Use Alter)144 472.8 R .745(nate V)-.15 F
+(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F2(par)4.495 E(ameter)-.15 E F0
.745(is null or unset, nothing is substituted, otherwise the e)3.975 F
-(xpan-)-.15 E(sion of)144 427.2 Q F1(wor)2.84 E(d)-.37 E F0
-(is substituted.)3.27 E(${)108 439.2 Q F1(par)A(ameter)-.15 E F2(:)A F1
-(of)A(fset)-.18 E F0(})A(${)108 451.2 Q F1(par)A(ameter)-.15 E F2(:)A F1
-(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .796
-(Substring Expansion.)144 463.2 R F0 .796(Expands to up to)5.796 F F1
-(length)3.296 E F0 .796(characters of)3.296 F F1(par)3.296 E(ameter)-.15
+(xpan-)-.15 E(sion of)144 484.8 Q F2(wor)2.84 E(d)-.37 E F0
+(is substituted.)3.27 E(${)108 496.8 Q F2(par)A(ameter)-.15 E F1(:)A F2
+(of)A(fset)-.18 E F0(})A(${)108 508.8 Q F2(par)A(ameter)-.15 E F1(:)A F2
+(of)A(fset)-.18 E F1(:)A F2(length)A F0(})A F1 .796
+(Substring Expansion.)144 520.8 R F0 .796(Expands to up to)5.796 F F2
+(length)3.296 E F0 .796(characters of)3.296 F F2(par)3.296 E(ameter)-.15
E F0 .797(starting at the character)3.296 F .229(speci\214ed by)144
-475.2 R F1(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F1(length)
+532.8 R F2(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F2(length)
2.729 E F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)
--.15 F F1(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F
-(-)-.2 E .432(acter speci\214ed by)144 487.2 R F1(of)2.933 E(fset)-.18 E
-F0(.)A F1(length)5.433 E F0(and)2.933 E F1(of)2.933 E(fset)-.18 E F0
+-.15 F F2(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F
+(-)-.2 E .432(acter speci\214ed by)144 544.8 R F2(of)2.933 E(fset)-.18 E
+F0(.)A F2(length)5.433 E F0(and)2.933 E F2(of)2.933 E(fset)-.18 E F0
.433(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F/F3 9
/Times-Bold@0 SF .433(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144
-499.2 S(ION).855 E F0(belo)2.577 E(w\).)-.25 E F1(length)5.327 E F0 .327
+556.8 S(ION).855 E F0(belo)2.577 E(w\).)-.25 E F2(length)5.327 E F0 .327
(must e)2.827 F -.25(va)-.25 G .326
-(luate to a number greater than or equal to zero.).25 F(If)5.326 E F1
+(luate to a number greater than or equal to zero.).25 F(If)5.326 E F2
(of)2.826 E(fset)-.18 E F0 -.25(eva)2.826 G(luates).25 E .015
-(to a number less than zero, the v)144 511.2 R .015
+(to a number less than zero, the v)144 568.8 R .015
(alue is used as an of)-.25 F .015(fset from the end of the v)-.25 F
-.016(alue of)-.25 F F1(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016
-E F1(par)144 523.2 Q(ameter)-.15 E F0(is)3.25 E F2(@)3.25 E F0 3.25(,t)C
-.75(he result is)-3.25 F F1(length)3.25 E F0 .75
-(positional parameters be)3.25 F .75(ginning at)-.15 F F1(of)3.25 E
-(fset)-.18 E F0 5.75(.I)C(f)-5.75 E F1(par)3.25 E(ameter)-.15 E F0 .75
-(is an)3.25 F(inde)144 535.2 Q -.15(xe)-.15 G 2.701(da).15 G .201
-(rray name subscripted by @ or *, the result is the)-2.701 F F1(length)
+.016(alue of)-.25 F F2(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016
+E F2(par)144 580.8 Q(ameter)-.15 E F0(is)3.25 E F1(@)3.25 E F0 3.25(,t)C
+.75(he result is)-3.25 F F2(length)3.25 E F0 .75
+(positional parameters be)3.25 F .75(ginning at)-.15 F F2(of)3.25 E
+(fset)-.18 E F0 5.75(.I)C(f)-5.75 E F2(par)3.25 E(ameter)-.15 E F0 .75
+(is an)3.25 F(inde)144 592.8 Q -.15(xe)-.15 G 2.701(da).15 G .201
+(rray name subscripted by @ or *, the result is the)-2.701 F F2(length)
2.701 E F0 .202(members of the array be)2.701 F(ginning)-.15 E 1.283
-(with ${)144 547.2 R F1(par)A(ameter)-.15 E F0([)A F1(of)A(fset)-.18 E
-F0 3.783(]}. A)B(ne)3.783 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1
+(with ${)144 604.8 R F2(par)A(ameter)-.15 E F0([)A F2(of)A(fset)-.18 E
+F0 3.783(]}. A)B(ne)3.783 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F2
(of)3.933 E(fset)-.18 E F0 1.282(is tak)3.782 F 1.282(en relati)-.1 F
1.582 -.15(ve t)-.25 H 3.782(oo).15 G 1.282(ne greater than the maximum)
--3.782 F(inde)144 559.2 Q 3.434(xo)-.15 G 3.434(ft)-3.434 G .934
+-3.782 F(inde)144 616.8 Q 3.434(xo)-.15 G 3.434(ft)-3.434 G .934
(he speci\214ed array)-3.434 F 5.934(.S)-.65 G .935(ubstring e)-5.934 F
.935(xpansion applied to an associati)-.15 F 1.235 -.15(ve a)-.25 H .935
-(rray produces unde-).15 F .262(\214ned results.)144 571.2 R .261
+(rray produces unde-).15 F .262(\214ned results.)144 628.8 R .261
(Note that a ne)5.262 F -.05(ga)-.15 G(ti).05 E .561 -.15(ve o)-.25 H
-.25(ff).15 G .261
(set must be separated from the colon by at least one space to).25 F -.2
-(avo)144 583.2 S .154(id being confused with the :- e).2 F 2.655
+(avo)144 640.8 S .154(id being confused with the :- e).2 F 2.655
(xpansion. Substring)-.15 F(inde)2.655 E .155
(xing is zero-based unless the positional)-.15 F .532
-(parameters are used, in which case the inde)144 595.2 R .532
-(xing starts at 1 by def)-.15 F 3.032(ault. If)-.1 F F1(of)3.032 E(fset)
+(parameters are used, in which case the inde)144 652.8 R .532
+(xing starts at 1 by def)-.15 F 3.032(ault. If)-.1 F F2(of)3.032 E(fset)
-.18 E F0 .532(is 0, and the posi-)3.032 F(tional parameters are used,)
-144 607.2 Q F2($0)2.5 E F0(is pre\214x)2.5 E(ed to the list.)-.15 E(${)
-108 624 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 636 Q F2(!)A
-F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .084(Names matching pr)144 648 R
-(e\214x.)-.18 E F0 .084(Expands to the names of v)5.084 F .084
-(ariables whose names be)-.25 F .085(gin with)-.15 F F1(pr)2.585 E
+144 664.8 Q F1($0)2.5 E F0(is pre\214x)2.5 E(ed to the list.)-.15 E(${)
+108 681.6 Q F1(!)A F2(pr)A(e\214x)-.37 E F1(*)A F0(})A(${)108 693.6 Q F1
+(!)A F2(pr)A(e\214x)-.37 E F1(@)A F0(})A F1 .084(Names matching pr)144
+705.6 R(e\214x.)-.18 E F0 .084(Expands to the names of v)5.084 F .084
+(ariables whose names be)-.25 F .085(gin with)-.15 F F2(pr)2.585 E
(e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258
-(rated by the \214rst character of the)144 660 R F3(IFS)2.758 E F0 .257
-(special v)2.507 F 2.757(ariable. When)-.25 F F1(@)2.757 E F0 .257
+(rated by the \214rst character of the)144 717.6 R F3(IFS)2.758 E F0
+.257(special v)2.507 F 2.757(ariable. When)-.25 F F2(@)2.757 E F0 .257
(is used and the e)2.757 F .257(xpansion appears)-.15 F
-(within double quotes, each v)144 672 Q(ariable name e)-.25 E
-(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 688.8 Q F2(!)A F1(name)
-A F0([)A F1(@)A F0(]})A(${)108 700.8 Q F2(!)A F1(name)A F0([)A F1(*)A F0
-(]})A F2 2.035(List of array k)144 712.8 R(eys.)-.1 E F0(If)7.036 E F1
-(name)4.536 E F0 2.036(is an array v)4.536 F 2.036(ariable, e)-.25 F
-2.036(xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G(s\))
-.15 E .596(assigned in)144 724.8 R F1(name)3.096 E F0 5.596(.I)C(f)
--5.596 E F1(name)3.096 E F0 .595(is not an array)3.096 F 3.095(,e)-.65 G
-.595(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .595
-(is set and null otherwise.)3.095 F(When)5.595 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(19)185.115 E 0 Cg EP
+(within double quotes, each v)144 729.6 Q(ariable name e)-.25 E
+(xpands to a separate w)-.15 E(ord.)-.1 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(19)192.895 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Italic@0 SF(@)144 84 Q F0(is used and the e)2.5 E
-(xpansion appears within double quotes, each k)-.15 E .3 -.15(ey ex)-.1
-H(pands to a separate w).15 E(ord.)-.1 E(${)108 100.8 Q/F2 10
-/Times-Bold@0 SF(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 112.8 S
-.47(rameter length.).1 F F0 .471(The length in characters of the v)5.47
-F .471(alue of)-.25 F F1(par)2.971 E(ameter)-.15 E F0 .471
-(is substituted.)2.971 F(If)5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144
-124.8 Q F0(is)4.439 E F2(*)3.709 E F0(or)3.709 E F2(@)3.709 E F0 3.708
+-.35 E(${)108 84 Q/F1 10/Times-Bold@0 SF(!)A/F2 10/Times-Italic@0 SF
+(name)A F0([)A F2(@)A F0(]})A(${)108 96 Q F1(!)A F2(name)A F0([)A F2(*)A
+F0(]})A F1 2.035(List of array k)144 108 R(eys.)-.1 E F0(If)7.036 E F2
+(name)4.536 E F0 2.036(is an array v)4.536 F 2.036(ariable, e)-.25 F
+2.036(xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G(s\))
+.15 E .596(assigned in)144 120 R F2(name)3.096 E F0 5.596(.I)C(f)-5.596
+E F2(name)3.096 E F0 .595(is not an array)3.096 F 3.095(,e)-.65 G .595
+(xpands to 0 if)-3.245 F F2(name)3.095 E F0 .595
+(is set and null otherwise.)3.095 F(When)5.595 E F2(@)144 132 Q F0
+(is used and the e)2.5 E(xpansion appears within double quotes, each k)
+-.15 E .3 -.15(ey ex)-.1 H(pands to a separate w).15 E(ord.)-.1 E(${)108
+148.8 Q F1(#)A F2(par)A(ameter)-.15 E F0(})A F1 -.1(Pa)144 160.8 S .47
+(rameter length.).1 F F0 .471(The length in characters of the v)5.47 F
+.471(alue of)-.25 F F2(par)2.971 E(ameter)-.15 E F0 .471
+(is substituted.)2.971 F(If)5.471 E F2(par)4.221 E(ame-)-.15 E(ter)144
+172.8 Q F0(is)4.439 E F1(*)3.709 E F0(or)3.709 E F1(@)3.709 E F0 3.708
(,t)C 1.208(he v)-3.708 F 1.208
(alue substituted is the number of positional parameters.)-.25 F(If)
-6.208 E F1(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F
-(array name subscripted by)144 136.8 Q F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E
+6.208 E F2(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F
+(array name subscripted by)144 184.8 Q F1(*)2.5 E F0(or)2.5 E F1(@)2.5 E
F0 2.5(,t)C(he v)-2.5 E
(alue substituted is the number of elements in the array)-.25 E(.)-.65 E
-(${)108 153.6 Q F1(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A
-(${)108 165.6 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A
-F2(Remo)144 177.6 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196
-(e\214x patter)-.18 F(n.)-.15 E F0(The)6.196 E F1(wor)4.036 E(d)-.37 E
+(${)108 201.6 Q F2(par)A(ameter)-.15 E F1(#)A F2(wor)A(d)-.37 E F0(})A
+(${)108 213.6 Q F2(par)A(ameter)-.15 E F1(##)A F2(wor)A(d)-.37 E F0(})A
+F1(Remo)144 225.6 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196
+(e\214x patter)-.18 F(n.)-.15 E F0(The)6.196 E F2(wor)4.036 E(d)-.37 E
F0 1.196(is e)4.466 F 1.196
(xpanded to produce a pattern just as in path-)-.15 F .152(name e)144
-189.6 R 2.652(xpansion. If)-.15 F .152(the pattern matches the be)2.652
-F .152(ginning of the v)-.15 F .152(alue of)-.25 F F1(par)2.652 E
+237.6 R 2.652(xpansion. If)-.15 F .152(the pattern matches the be)2.652
+F .152(ginning of the v)-.15 F .152(alue of)-.25 F F2(par)2.652 E
(ameter)-.15 E F0 2.652(,t).73 G .151(hen the result of)-2.652 F 1.4
-(the e)144 201.6 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4
-(alue of)-.25 F F1(par)5.15 E(ameter)-.15 E F0 1.4
-(with the shortest matching pattern \(the `)4.63 F(`)-.74 E F2(#)A F0
--.74('')C .281(case\) or the longest matching pattern \(the `)144 213.6
-R(`)-.74 E F2(##)A F0 1.761 -.74('' c)D .281(ase\) deleted.).74 F(If)
-5.281 E F1(par)4.031 E(ameter)-.15 E F0(is)3.511 E F2(@)2.781 E F0(or)
-2.781 E F2(*)2.781 E F0 2.781(,t)C .281(he pattern)-2.781 F(remo)144
-225.6 Q -.25(va)-.15 G 3.274(lo).25 G .774
+(the e)144 249.6 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4
+(alue of)-.25 F F2(par)5.15 E(ameter)-.15 E F0 1.4
+(with the shortest matching pattern \(the `)4.63 F(`)-.74 E F1(#)A F0
+-.74('')C .281(case\) or the longest matching pattern \(the `)144 261.6
+R(`)-.74 E F1(##)A F0 1.761 -.74('' c)D .281(ase\) deleted.).74 F(If)
+5.281 E F2(par)4.031 E(ameter)-.15 E F0(is)3.511 E F1(@)2.781 E F0(or)
+2.781 E F1(*)2.781 E F0 2.781(,t)C .281(he pattern)-2.781 F(remo)144
+273.6 Q -.25(va)-.15 G 3.274(lo).25 G .774
(peration is applied to each positional parameter in turn, and the e)
--3.274 F .774(xpansion is the resul-)-.15 F .402(tant list.)144 237.6 R
-(If)5.402 E F1(par)4.152 E(ameter)-.15 E F0 .401(is an array v)3.632 F
-.401(ariable subscripted with)-.25 F F2(@)2.901 E F0(or)2.901 E F2(*)
+-3.274 F .774(xpansion is the resul-)-.15 F .402(tant list.)144 285.6 R
+(If)5.402 E F2(par)4.152 E(ameter)-.15 E F0 .401(is an array v)3.632 F
+.401(ariable subscripted with)-.25 F F1(@)2.901 E F0(or)2.901 E F1(*)
2.901 E F0 2.901(,t)C .401(he pattern remo)-2.901 F -.25(va)-.15 G 2.901
(lo).25 G(peration)-2.901 E
-(is applied to each member of the array in turn, and the e)144 249.6 Q
-(xpansion is the resultant list.)-.15 E(${)108 266.4 Q F1(par)A(ameter)
--.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 278.4 Q F1(par)A(ameter)
--.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 290.4 Q .346 -.1
+(is applied to each member of the array in turn, and the e)144 297.6 Q
+(xpansion is the resultant list.)-.15 E(${)108 314.4 Q F2(par)A(ameter)
+-.15 E F1(%)A F2(wor)A(d)-.37 E F0(})A(${)108 326.4 Q F2(par)A(ameter)
+-.15 E F1(%%)A F2(wor)A(d)-.37 E F0(})A F1(Remo)144 338.4 Q .346 -.1
(ve m)-.1 H .146(atching suf\214x patter).1 F(n.)-.15 E F0(The)5.146 E
-F1(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147
+F2(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147
(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144
-302.4 S 3.088(pansion. If).15 F .588
+350.4 S 3.088(pansion. If).15 F .588
(the pattern matches a trailing portion of the e)3.088 F .588(xpanded v)
--.15 F .588(alue of)-.25 F F1(par)3.088 E(ameter)-.15 E F0 3.088(,t).73
-G .588(hen the)-3.088 F .226(result of the e)144 314.4 R .226
-(xpansion is the e)-.15 F .226(xpanded v)-.15 F .226(alue of)-.25 F F1
+-.15 F .588(alue of)-.25 F F2(par)3.088 E(ameter)-.15 E F0 3.088(,t).73
+G .588(hen the)-3.088 F .226(result of the e)144 362.4 R .226
+(xpansion is the e)-.15 F .226(xpanded v)-.15 F .226(alue of)-.25 F F2
(par)3.976 E(ameter)-.15 E F0 .226
-(with the shortest matching pattern \(the)3.456 F -.74(``)144 326.4 S F2
+(with the shortest matching pattern \(the)3.456 F -.74(``)144 374.4 S F1
(%).74 E F0 1.522 -.74('' c)D .042
-(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(%%)A F0
-1.522 -.74('' c)D .042(ase\) deleted.).74 F(If)5.042 E F1(par)3.792 E
-(ameter)-.15 E F0(is)3.272 E F2(@)2.541 E F0(or)2.541 E F2(*)2.541 E F0
-2.541(,t)C(he)-2.541 E .44(pattern remo)144 338.4 R -.25(va)-.15 G 2.94
+(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F1(%%)A F0
+1.522 -.74('' c)D .042(ase\) deleted.).74 F(If)5.042 E F2(par)3.792 E
+(ameter)-.15 E F0(is)3.272 E F1(@)2.541 E F0(or)2.541 E F1(*)2.541 E F0
+2.541(,t)C(he)-2.541 E .44(pattern remo)144 386.4 R -.25(va)-.15 G 2.94
(lo).25 G .441
(peration is applied to each positional parameter in turn, and the e)
--2.94 F .441(xpansion is the)-.15 F .241(resultant list.)144 350.4 R(If)
-5.241 E F1(par)3.991 E(ameter)-.15 E F0 .241(is an array v)3.471 F .241
-(ariable subscripted with)-.25 F F2(@)2.741 E F0(or)2.74 E F2(*)2.74 E
+-2.94 F .441(xpansion is the)-.15 F .241(resultant list.)144 398.4 R(If)
+5.241 E F2(par)3.991 E(ameter)-.15 E F0 .241(is an array v)3.471 F .241
+(ariable subscripted with)-.25 F F1(@)2.741 E F0(or)2.74 E F1(*)2.74 E
F0 2.74(,t)C .24(he pattern remo)-2.74 F -.25(va)-.15 G 2.74(lo).25 G
(per)-2.74 E(-)-.2 E
(ation is applied to each member of the array in turn, and the e)144
-362.4 Q(xpansion is the resultant list.)-.15 E(${)108 379.2 Q F1(par)A
-(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A F2 -.1(Pa)
-144 391.2 S(tter).1 E 3.606(ns)-.15 G(ubstitution.)-3.606 E F0(The)6.106
-E F1(pattern)3.606 E F0 1.106(is e)3.606 F 1.107
+410.4 Q(xpansion is the resultant list.)-.15 E(${)108 427.2 Q F2(par)A
+(ameter)-.15 E F1(/)A F2(pattern)A F1(/)A F2(string)A F0(})A F1 -.1(Pa)
+144 439.2 S(tter).1 E 3.606(ns)-.15 G(ubstitution.)-3.606 E F0(The)6.106
+E F2(pattern)3.606 E F0 1.106(is e)3.606 F 1.107
(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E
-(sion.)144 403.2 Q F1 -.8(Pa)6.034 G -.15(ra).8 G(meter).15 E F0 1.034
-(is e)3.534 F 1.033(xpanded and the longest match of)-.15 F F1(pattern)
+(sion.)144 451.2 Q F2 -.8(Pa)6.034 G -.15(ra).8 G(meter).15 E F0 1.034
+(is e)3.534 F 1.033(xpanded and the longest match of)-.15 F F2(pattern)
3.533 E F0(ag)3.533 E 1.033(ainst its v)-.05 F 1.033
-(alue is replaced with)-.25 F F1(string)144 415.2 Q F0 5.16(.I)C(f)-5.16
-E F1(pattern)2.66 E F0(be)2.66 E .16(gins with)-.15 F F2(/)2.66 E F0
-2.66(,a)C .161(ll matches of)-2.66 F F1(pattern)2.661 E F0 .161
-(are replaced with)2.661 F F1(string)2.661 E F0 5.161(.N)C .161
-(ormally only the)-5.161 F .807(\214rst match is replaced.)144 427.2 R
-(If)5.807 E F1(pattern)3.307 E F0(be)3.307 E .807(gins with)-.15 F F2(#)
+(alue is replaced with)-.25 F F2(string)144 463.2 Q F0 5.16(.I)C(f)-5.16
+E F2(pattern)2.66 E F0(be)2.66 E .16(gins with)-.15 F F1(/)2.66 E F0
+2.66(,a)C .161(ll matches of)-2.66 F F2(pattern)2.661 E F0 .161
+(are replaced with)2.661 F F2(string)2.661 E F0 5.161(.N)C .161
+(ormally only the)-5.161 F .807(\214rst match is replaced.)144 475.2 R
+(If)5.807 E F2(pattern)3.307 E F0(be)3.307 E .807(gins with)-.15 F F1(#)
3.307 E F0 3.306(,i)C 3.306(tm)-3.306 G .806(ust match at the be)-3.306
-F .806(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 439.2 S .62
-(lue of).25 F F1(par)3.12 E(ameter)-.15 E F0 5.62(.I)C(f)-5.62 E F1
-(pattern)3.12 E F0(be)3.12 E .62(gins with)-.15 F F2(%)3.12 E F0 3.12
+F .806(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 487.2 S .62
+(lue of).25 F F2(par)3.12 E(ameter)-.15 E F0 5.62(.I)C(f)-5.62 E F2
+(pattern)3.12 E F0(be)3.12 E .62(gins with)-.15 F F1(%)3.12 E F0 3.12
(,i)C 3.121(tm)-3.12 G .621(ust match at the end of the e)-3.121 F .621
-(xpanded v)-.15 F .621(alue of)-.25 F F1(par)144 451.2 Q(ameter)-.15 E
-F0 6.254(.I)C(f)-6.254 E F1(string)3.754 E F0 1.253(is null, matches of)
-3.753 F F1(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F2(/)
-3.753 E F0(follo)3.753 E(wing)-.25 E F1(pattern)3.753 E F0 1.253(may be)
-3.753 F 2.678(omitted. If)144 463.2 R F1(par)3.928 E(ameter)-.15 E F0
-(is)3.408 E F2(@)2.678 E F0(or)2.678 E F2(*)2.679 E F0 2.679(,t)C .179
+(xpanded v)-.15 F .621(alue of)-.25 F F2(par)144 499.2 Q(ameter)-.15 E
+F0 6.254(.I)C(f)-6.254 E F2(string)3.754 E F0 1.253(is null, matches of)
+3.753 F F2(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F1(/)
+3.753 E F0(follo)3.753 E(wing)-.25 E F2(pattern)3.753 E F0 1.253(may be)
+3.753 F 2.678(omitted. If)144 511.2 R F2(par)3.928 E(ameter)-.15 E F0
+(is)3.408 E F1(@)2.678 E F0(or)2.678 E F1(*)2.679 E F0 2.679(,t)C .179
(he substitution operation is applied to each positional parameter)
--2.679 F .619(in turn, and the e)144 475.2 R .619
-(xpansion is the resultant list.)-.15 F(If)5.619 E F1(par)4.369 E
+-2.679 F .619(in turn, and the e)144 523.2 R .619
+(xpansion is the resultant list.)-.15 F(If)5.619 E F2(par)4.369 E
(ameter)-.15 E F0 .618(is an array v)3.849 F .618
-(ariable subscripted with)-.25 F F2(@)144 487.2 Q F0(or)3.223 E F2(*)
+(ariable subscripted with)-.25 F F1(@)144 535.2 Q F0(or)3.223 E F1(*)
3.223 E F0 3.223(,t)C .723(he substitution operation is applied to each\
member of the array in turn, and the e)-3.223 F(xpan-)-.15 E
-(sion is the resultant list.)144 499.2 Q(${)108 516 Q F1(par)A(ameter)
--.15 E F2(^)A F1(pattern)A F0(})A(${)108 528 Q F1(par)A(ameter)-.15 E F2
-(^^)A F1(pattern)A F0(})A(${)108 540 Q F1(par)A(ameter)-.15 E F2(,)A F1
-(pattern)A F0(})A(${)108 552 Q F1(par)A(ameter)-.15 E F2(,,)A F1
-(pattern)A F0(})A F2 .438(Case modi\214cation.)144 564 R F0 .438(This e)
+(sion is the resultant list.)144 547.2 Q(${)108 564 Q F2(par)A(ameter)
+-.15 E F1(^)A F2(pattern)A F0(})A(${)108 576 Q F2(par)A(ameter)-.15 E F1
+(^^)A F2(pattern)A F0(})A(${)108 588 Q F2(par)A(ameter)-.15 E F1(,)A F2
+(pattern)A F0(})A(${)108 600 Q F2(par)A(ameter)-.15 E F1(,,)A F2
+(pattern)A F0(})A F1 .438(Case modi\214cation.)144 612 R F0 .438(This e)
5.438 F .437(xpansion modi\214es the case of alphabetic characters in)
--.15 F F1(par)2.937 E(ameter)-.15 E F0 5.437(.T)C(he)-5.437 E F1
-(pattern)144 576 Q F0 .813(is e)3.313 F .813
+-.15 F F2(par)2.937 E(ameter)-.15 E F0 5.437(.T)C(he)-5.437 E F2
+(pattern)144 624 Q F0 .813(is e)3.313 F .813
(xpanded to produce a pattern just as in pathname e)-.15 F 3.314
-(xpansion. The)-.15 F F2(^)3.314 E F0 .814(operator con)3.314 F -.15(ve)
--.4 G(rts).15 E(lo)144 588 Q .181(wercase letters matching)-.25 F F1
-(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F2(,)2.681 E F0 .181
+(xpansion. The)-.15 F F1(^)3.314 E F0 .814(operator con)3.314 F -.15(ve)
+-.4 G(rts).15 E(lo)144 636 Q .181(wercase letters matching)-.25 F F2
+(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F1(,)2.681 E F0 .181
(operator con)2.681 F -.15(ve)-.4 G .18(rts matching uppercase letters)
-.15 F .085(to lo)144 600 R 2.585(wercase. The)-.25 F F2(^^)2.585 E F0
-(and)2.585 E F2(,,)2.585 E F0 -.15(ex)2.585 G .085(pansions con).15 F
+.15 F .085(to lo)144 648 R 2.585(wercase. The)-.25 F F1(^^)2.585 E F0
+(and)2.585 E F1(,,)2.585 E F0 -.15(ex)2.585 G .085(pansions con).15 F
-.15(ve)-.4 G .085(rt each matched character in the e).15 F .085
-(xpanded v)-.15 F .085(alue; the)-.25 F F2(^)2.585 E F0(and)144 612 Q F2
+(xpanded v)-.15 F .085(alue; the)-.25 F F1(^)2.585 E F0(and)144 660 Q F1
(,)3.435 E F0 -.15(ex)3.435 G .935(pansions match and con).15 F -.15(ve)
-.4 G .934(rt only the \214rst character in the e).15 F .934(xpanded v)
--.15 F 3.434(alue.. If)-.25 F F1(pattern)3.434 E F0(is)3.434 E 1.12
-(omitted, it is treated lik)144 624 R 3.62(ea)-.1 G F2(?)A F0 3.62(,w)C
+-.15 F 3.434(alue.. If)-.25 F F2(pattern)3.434 E F0(is)3.434 E 1.12
+(omitted, it is treated lik)144 672 R 3.62(ea)-.1 G F1(?)A F0 3.62(,w)C
1.12(hich matches e)-3.62 F -.15(ve)-.25 G 1.121(ry character).15 F
-6.121(.I)-.55 G(f)-6.121 E F1(par)4.871 E(ameter)-.15 E F0(is)4.351 E F2
-(@)3.621 E F0(or)3.621 E F2(*)3.621 E F0 3.621(,t)C 1.121(he case)-3.621
+6.121(.I)-.55 G(f)-6.121 E F2(par)4.871 E(ameter)-.15 E F0(is)4.351 E F1
+(@)3.621 E F0(or)3.621 E F1(*)3.621 E F0 3.621(,t)C 1.121(he case)-3.621
F 1.335(modi\214cation operation is applied to each positional paramete\
-r in turn, and the e)144 636 R 1.335(xpansion is the)-.15 F 1.308
-(resultant list.)144 648 R(If)6.308 E F1(par)5.058 E(ameter)-.15 E F0
-1.308(is an array v)4.538 F 1.308(ariable subscripted with)-.25 F F2(@)
-3.808 E F0(or)3.808 E F2(*)3.808 E F0 3.808(,t)C 1.308
+r in turn, and the e)144 684 R 1.335(xpansion is the)-.15 F 1.308
+(resultant list.)144 696 R(If)6.308 E F2(par)5.058 E(ameter)-.15 E F0
+1.308(is an array v)4.538 F 1.308(ariable subscripted with)-.25 F F1(@)
+3.808 E F0(or)3.808 E F1(*)3.808 E F0 3.808(,t)C 1.308
(he case modi\214cation)-3.808 F
(operation is applied to each member of the array in turn, and the e)144
-660 Q(xpansion is the resultant list.)-.15 E F2(Command Substitution)87
-676.8 Q F1 1.698(Command substitution)108 688.8 R F0(allo)4.198 E 1.697
-(ws the output of a command to replace the command name.)-.25 F 1.697
-(There are tw)6.697 F(o)-.1 E(forms:)108 700.8 Q F2($\()144 722.4 Q F1
-(command)A F2(\))1.666 E F0(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(20)185.115 E 0 Cg EP
+708 Q(xpansion is the resultant list.)-.15 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(20)192.895 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(or)108 84 Q/F1 10/Times-Bold@0 SF<92>144 96 Q/F2 10
-/Times-Italic@0 SF(command)A F1<92>A(Bash)108 112.8 Q F0 .019
-(performs the e)2.519 F .019(xpansion by e)-.15 F -.15(xe)-.15 G(cuting)
-.15 E F2(command)2.519 E F0 .02
-(and replacing the command substitution with the stan-)2.519 F .768
-(dard output of the command, with an)108 124.8 R 3.268(yt)-.15 G .768
+-.35 E/F1 10/Times-Bold@0 SF(Command Substitution)87 84 Q/F2 10
+/Times-Italic@0 SF 1.698(Command substitution)108 96 R F0(allo)4.198 E
+1.697(ws the output of a command to replace the command name.)-.25 F
+1.697(There are tw)6.697 F(o)-.1 E(forms:)108 108 Q F1($\()144 129.6 Q
+F2(command)A F1(\))1.666 E F0(or)108 141.6 Q F1<92>144 153.6 Q F2
+(command)A F1<92>A(Bash)108 170.4 Q F0 .019(performs the e)2.519 F .019
+(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F2(command)2.519 E F0
+.02(and replacing the command substitution with the stan-)2.519 F .768
+(dard output of the command, with an)108 182.4 R 3.268(yt)-.15 G .768
(railing ne)-3.268 F .768(wlines deleted.)-.25 F .768(Embedded ne)5.768
-F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 136.8 Q 3.218
+F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 194.4 Q 3.218
(ym)-.15 G .718(ay be remo)-3.218 F -.15(ve)-.15 G 3.218(dd).15 G .719
(uring w)-3.218 F .719(ord splitting.)-.1 F .719
(The command substitution)5.719 F F1($\(cat)3.219 E F2(\214le)3.219 E F1
-(\))A F0 .719(can be replaced by the)3.219 F(equi)108 148.8 Q -.25(va)
+(\))A F0 .719(can be replaced by the)3.219 F(equi)108 206.4 Q -.25(va)
-.25 G(lent b).25 E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E
F1(\))A F0(.)A 1.724(When the old-style backquote form of substitution \
-is used, backslash retains its literal meaning e)108 165.6 R(xcept)-.15
-E .314(when follo)108 177.6 R .314(wed by)-.25 F F1($)2.814 E F0(,)A F1
+is used, backslash retains its literal meaning e)108 223.2 R(xcept)-.15
+E .314(when follo)108 235.2 R .314(wed by)-.25 F F1($)2.814 E F0(,)A F1
<92>2.814 E F0 2.814(,o)C(r)-2.814 E F1(\\)2.814 E F0 5.314(.T)C .315(h\
e \214rst backquote not preceded by a backslash terminates the command \
-sub-)-5.314 F 3.887(stitution. When)108 189.6 R 1.387(using the $\()
+sub-)-5.314 F 3.887(stitution. When)108 247.2 R 1.387(using the $\()
3.887 F F2(command).833 E F0 3.887(\)f)1.666 G 1.386
(orm, all characters between the parentheses mak)-3.887 F 3.886(eu)-.1 G
3.886(pt)-3.886 G 1.386(he com-)-3.886 F
-(mand; none are treated specially)108 201.6 Q(.)-.65 E .894
-(Command substitutions may be nested.)108 218.4 R 2.494 -.8(To n)5.894 H
+(mand; none are treated specially)108 259.2 Q(.)-.65 E .894
+(Command substitutions may be nested.)108 276 R 2.494 -.8(To n)5.894 H
.894(est when using the backquoted form, escape the inner back-).8 F
-(quotes with backslashes.)108 230.4 Q .422
-(If the substitution appears within double quotes, w)108 247.2 R .422
+(quotes with backslashes.)108 288 Q .422
+(If the substitution appears within double quotes, w)108 304.8 R .422
(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15
-F(on the results.)108 259.2 Q F1(Arithmetic Expansion)87 276 Q F0 1.034
-(Arithmetic e)108 288 R 1.034(xpansion allo)-.15 F 1.034(ws the e)-.25 F
--.25(va)-.25 G 1.034(luation of an arithmetic e).25 F 1.035
-(xpression and the substitution of the result.)-.15 F
-(The format for arithmetic e)108 300 Q(xpansion is:)-.15 E F1($\(\()144
-316.8 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 333.6 Q
-F2 -.2(ex)2.666 G(pr).2 E(ession)-.37 E F0 .165
+F(on the results.)108 316.8 Q F1(Arithmetic Expansion)87 333.6 Q F0
+1.034(Arithmetic e)108 345.6 R 1.034(xpansion allo)-.15 F 1.034
+(ws the e)-.25 F -.25(va)-.25 G 1.034(luation of an arithmetic e).25 F
+1.035(xpression and the substitution of the result.)-.15 F
+(The format for arithmetic e)108 357.6 Q(xpansion is:)-.15 E F1($\(\()
+144 374.4 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 391.2
+Q F2 -.2(ex)2.666 G(pr).2 E(ession)-.37 E F0 .165
(is treated as if it were within double quotes, b)2.906 F .165
(ut a double quote inside the parentheses is not)-.2 F 1.074
-(treated specially)108 345.6 R 6.074(.A)-.65 G 1.074(ll tok)-6.074 F
+(treated specially)108 403.2 R 6.074(.A)-.65 G 1.074(ll tok)-6.074 F
1.074(ens in the e)-.1 F 1.074(xpression under)-.15 F 1.074
(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.075
-(xpansion, command)-.15 F(substitution, and quote remo)108 357.6 Q -.25
+(xpansion, command)-.15 F(substitution, and quote remo)108 415.2 Q -.25
(va)-.15 G 2.5(l. Arithmetic).25 F -.15(ex)2.5 G
-(pansions may be nested.).15 E 1.379(The e)108 374.4 R -.25(va)-.25 G
+(pansions may be nested.).15 E 1.379(The e)108 432 R -.25(va)-.25 G
1.378(luation is performed according to the rules listed belo).25 F
3.878(wu)-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)
3.878 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)
-A F0(If)5.878 E F2 -.2(ex)108 386.4 S(pr).2 E(ession)-.37 E F0(is in)
-2.74 E -.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0
+A F0(If)5.878 E F2 -.2(ex)108 444 S(pr).2 E(ession)-.37 E F0(is in)2.74
+E -.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0
(prints a message indicating f)2.5 E(ailure and no substitution occurs.)
--.1 E F1(Pr)87 403.2 Q(ocess Substitution)-.18 E F2(Pr)108 415.2 Q .97
+-.1 E F1(Pr)87 460.8 Q(ocess Substitution)-.18 E F2(Pr)108 472.8 Q .97
(ocess substitution)-.45 F F0 .971
(is supported on systems that support named pipes \()3.47 F F2(FIFOs)A
F0 3.471(\)o)C 3.471(rt)-3.471 G(he)-3.471 E F1(/de)3.471 E(v/fd)-.15 E
-F0 .971(method of)3.471 F .022(naming open \214les.)108 427.2 R .021
+F0 .971(method of)3.471 F .022(naming open \214les.)108 484.8 R .021
(It tak)5.022 F .021(es the form of)-.1 F F1(<\()2.521 E F2(list)A F1
(\)).833 E F0(or)2.521 E F1(>\()2.521 E F2(list)A F1(\)).833 E F0 5.021
(.T)C .021(he process)-5.021 F F2(list)2.521 E F0 .021
-(is run with its input or output con-)2.521 F .058(nected to a)108 439.2
+(is run with its input or output con-)2.521 F .058(nected to a)108 496.8
R F2(FIFO)2.558 E F0 .058(or some \214le in)2.558 F F1(/de)2.558 E(v/fd)
-.15 E F0 5.058(.T)C .058(he name of this \214le is passed as an ar)
-5.058 F .059(gument to the current com-)-.18 F .131
-(mand as the result of the e)108 451.2 R 2.631(xpansion. If)-.15 F(the)
+(mand as the result of the e)108 508.8 R 2.631(xpansion. If)-.15 F(the)
2.63 E F1(>\()2.63 E F2(list)A F1(\)).833 E F0 .13
(form is used, writing to the \214le will pro)2.63 F .13(vide input for)
--.15 F F2(list)2.63 E F0(.)A(If the)108 463.2 Q F1(<\()2.5 E F2(list)A
+-.15 F F2(list)2.63 E F0(.)A(If the)108 520.8 Q F1(<\()2.5 E F2(list)A
F1(\)).833 E F0(form is used, the \214le passed as an ar)2.5 E
(gument should be read to obtain the output of)-.18 E F2(list)2.5 E F0
-(.)A .896(When a)108 480 R -.25(va)-.2 G .896(ilable, process substitut\
-ion is performed simultaneously with parameter and v).25 F .897
+(.)A .896(When a)108 537.6 R -.25(va)-.2 G .896(ilable, process substit\
+ution is performed simultaneously with parameter and v).25 F .897
(ariable e)-.25 F(xpansion,)-.15 E
-(command substitution, and arithmetic e)108 492 Q(xpansion.)-.15 E F1
--.75(Wo)87 508.8 S(rd Splitting).75 E F0 1.143
-(The shell scans the results of parameter e)108 520.8 R 1.142
+(command substitution, and arithmetic e)108 549.6 Q(xpansion.)-.15 E F1
+-.75(Wo)87 566.4 S(rd Splitting).75 E F0 1.143
+(The shell scans the results of parameter e)108 578.4 R 1.142
(xpansion, command substitution, and arithmetic e)-.15 F 1.142
-(xpansion that)-.15 F(did not occur within double quotes for)108 532.8 Q
+(xpansion that)-.15 F(did not occur within double quotes for)108 590.4 Q
F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
-(The shell treats each character of)108 549.6 R F3(IFS)2.563 E F0 .063
+(The shell treats each character of)108 607.2 R F3(IFS)2.563 E F0 .063
(as a delimiter)2.313 F 2.563(,a)-.4 G .063
(nd splits the results of the other e)-2.563 F .063(xpansions into w)
--.15 F(ords)-.1 E 1.789(on these characters.)108 561.6 R(If)6.789 E F3
+-.15 F(ords)-.1 E 1.789(on these characters.)108 619.2 R(If)6.789 E F3
(IFS)4.289 E F0 1.788(is unset, or its v)4.039 F 1.788(alue is e)-.25 F
(xactly)-.15 E F1(<space><tab><newline>)4.288 E F0 4.288(,t)C 1.788
-(he def)-4.288 F 1.788(ault, then)-.1 F .021(sequences of)108 573.6 R F1
+(he def)-4.288 F 1.788(ault, then)-.1 F .021(sequences of)108 631.2 R F1
(<space>)2.521 E F0(,)A F1(<tab>)2.521 E F0 2.521(,a)C(nd)-2.521 E F1
(<newline>)2.521 E F0 .021(at the be)2.521 F .021
(ginning and end of the results of the pre)-.15 F .022(vious e)-.25 F
-(xpan-)-.15 E .586(sions are ignored, and an)108 585.6 R 3.086(ys)-.15 G
+(xpan-)-.15 E .586(sions are ignored, and an)108 643.2 R 3.086(ys)-.15 G
.586(equence of)-3.086 F F3(IFS)3.086 E F0 .586
(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .585
-(es to delimit w)-.15 F(ords.)-.1 E(If)108 597.6 Q F3(IFS)3.617 E F0
+(es to delimit w)-.15 F(ords.)-.1 E(If)108 655.2 Q F3(IFS)3.617 E F0
1.117(has a v)3.367 F 1.117(alue other than the def)-.25 F 1.117
(ault, then sequences of the whitespace characters)-.1 F F1(space)3.617
E F0(and)3.617 E F1(tab)3.617 E F0(are)3.617 E .315(ignored at the be)
-108 609.6 R .315(ginning and end of the w)-.15 F .315
+108 667.2 R .315(ginning and end of the w)-.15 F .315
(ord, as long as the whitespace character is in the v)-.1 F .315
-(alue of)-.25 F F3(IFS)2.815 E F0(\(an)2.565 E F3(IFS)108 621.6 Q F0
+(alue of)-.25 F F3(IFS)2.815 E F0(\(an)2.565 E F3(IFS)108 679.2 Q F0
1.053(whitespace character\).)3.303 F(An)6.053 E 3.553(yc)-.15 G 1.053
(haracter in)-3.553 F F3(IFS)3.553 E F0 1.053(that is not)3.303 F F3
(IFS)3.553 E F0 1.054(whitespace, along with an)3.304 F 3.554(ya)-.15 G
(djacent)-3.554 E F3(IFS)3.554 E F0 .332
-(whitespace characters, delimits a \214eld.)108 633.6 R 2.832(As)5.332 G
+(whitespace characters, delimits a \214eld.)108 691.2 R 2.832(As)5.332 G
.332(equence of)-2.832 F F3(IFS)2.832 E F0 .331
(whitespace characters is also treated as a delim-)2.582 F(iter)108
-645.6 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E
+703.2 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E
F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.878
-(Explicit null ar)108 662.4 R 1.878(guments \()-.18 F F1 .833("").833 G
-F0(or)3.545 E F1 .833<0808>5.211 G F0 4.378(\)a)C 1.878(re retained.)
+(Explicit null ar)108 720 R 1.878(guments \()-.18 F F1 .833("").833 G F0
+(or)3.545 E F1 .833<0808>5.211 G F0 4.378(\)a)C 1.878(re retained.)
-4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.879
-(guments, resulting from the)-.18 F -.15(ex)108 674.4 S .177
-(pansion of parameters that ha).15 F .477 -.15(ve n)-.2 H 2.677(ov).15 G
-.177(alues, are remo)-2.927 F -.15(ve)-.15 G 2.676(d. If).15 F 2.676(ap)
-2.676 G .176(arameter with no v)-2.676 F .176(alue is e)-.25 F .176
-(xpanded within)-.15 F(double quotes, a null ar)108 686.4 Q
-(gument results and is retained.)-.18 E(Note that if no e)108 703.2 Q
-(xpansion occurs, no splitting is performed.)-.15 E(GNU Bash-4.1)72 768
-Q(2009 September 16)135.125 E(21)185.115 E 0 Cg EP
+(guments, resulting from the)-.18 F(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(21)192.895 E 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF -.1(Pa)87 84 S(thname Expansion).1 E F0 .37
-(After w)108 96 R .37(ord splitting, unless the)-.1 F F1<ad66>2.87 E F0
-.37(option has been set,)2.87 F F1(bash)2.87 E F0 .371(scans each w)
-2.871 F .371(ord for the characters)-.1 F F1(*)2.871 E F0(,)A F1(?)2.871
-E F0 2.871(,a)C(nd)-2.871 E F1([)2.871 E F0(.)A .678
-(If one of these characters appears, then the w)108 108 R .677
+-.35 E -.15(ex)108 84 S .177(pansion of parameters that ha).15 F .477
+-.15(ve n)-.2 H 2.677(ov).15 G .177(alues, are remo)-2.927 F -.15(ve)
+-.15 G 2.676(d. If).15 F 2.676(ap)2.676 G .176(arameter with no v)-2.676
+F .176(alue is e)-.25 F .176(xpanded within)-.15 F
+(double quotes, a null ar)108 96 Q(gument results and is retained.)-.18
+E(Note that if no e)108 112.8 Q
+(xpansion occurs, no splitting is performed.)-.15 E/F1 10/Times-Bold@0
+SF -.1(Pa)87 129.6 S(thname Expansion).1 E F0 .37(After w)108 141.6 R
+.37(ord splitting, unless the)-.1 F F1<ad66>2.87 E F0 .37
+(option has been set,)2.87 F F1(bash)2.87 E F0 .371(scans each w)2.871 F
+.371(ord for the characters)-.1 F F1(*)2.871 E F0(,)A F1(?)2.871 E F0
+2.871(,a)C(nd)-2.871 E F1([)2.871 E F0(.)A .678
+(If one of these characters appears, then the w)108 153.6 R .677
(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F/F2 10
/Times-Italic@0 SF(pattern)3.177 E F0 3.177(,a).24 G .677
(nd replaced with an alphabeti-)-3.177 F 1.456
-(cally sorted list of \214le names matching the pattern.)108 120 R 1.457
-(If no matching \214le names are found, and the shell)6.457 F(option)108
-132 Q F1(nullglob)2.538 E F0 .038(is not enabled, the w)2.538 F .038
-(ord is left unchanged.)-.1 F .038(If the)5.038 F F1(nullglob)2.538 E F0
-.038(option is set, and no matches are)2.538 F .305(found, the w)108 144
-R .305(ord is remo)-.1 F -.15(ve)-.15 G 2.805(d. If).15 F(the)2.805 E F1
-(failglob)2.805 E F0 .305
+(cally sorted list of \214le names matching the pattern.)108 165.6 R
+1.457(If no matching \214le names are found, and the shell)6.457 F
+(option)108 177.6 Q F1(nullglob)2.538 E F0 .038(is not enabled, the w)
+2.538 F .038(ord is left unchanged.)-.1 F .038(If the)5.038 F F1
+(nullglob)2.538 E F0 .038(option is set, and no matches are)2.538 F .305
+(found, the w)108 189.6 R .305(ord is remo)-.1 F -.15(ve)-.15 G 2.805
+(d. If).15 F(the)2.805 E F1(failglob)2.805 E F0 .305
(shell option is set, and no matches are found, an error message)2.805 F
-.929(is printed and the command is not e)108 156 R -.15(xe)-.15 G 3.428
-(cuted. If).15 F .928(the shell option)3.428 F F1(nocaseglob)3.428 E F0
-.928(is enabled, the match is per)3.428 F(-)-.2 E .032
-(formed without re)108 168 R -.05(ga)-.15 G .032
+.929(is printed and the command is not e)108 201.6 R -.15(xe)-.15 G
+3.428(cuted. If).15 F .928(the shell option)3.428 F F1(nocaseglob)3.428
+E F0 .928(is enabled, the match is per)3.428 F(-)-.2 E .032
+(formed without re)108 213.6 R -.05(ga)-.15 G .032
(rd to the case of alphabetic characters.).05 F .033
(When a pattern is used for pathname e)5.033 F(xpansion,)-.15 E .105
-(the character)108 180 R F1 -.63(``)2.605 G -.55(.').63 G(')-.08 E F0
+(the character)108 225.6 R F1 -.63(``)2.605 G -.55(.').63 G(')-.08 E F0
.105(at the start of a name or immediately follo)5.105 F .104
(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.604(,u)-.65 G
-(nless)-2.604 E .887(the shell option)108 192 R F1(dotglob)3.387 E F0
+(nless)-2.604 E .887(the shell option)108 237.6 R F1(dotglob)3.387 E F0
.887(is set.)3.387 F .888
(When matching a pathname, the slash character must al)5.887 F -.1(wa)
--.1 G .888(ys be matched).1 F -.15(ex)108 204 S(plicitly).15 E 6.166(.I)
--.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F1 -.63(``)3.666
-G -.55(.').63 G(')-.08 E F0 1.166(character is not treated specially)
-6.166 F 6.165(.S)-.65 G 1.165(ee the description of)-6.165 F F1(shopt)
-3.665 E F0(belo)3.665 E(w)-.25 E(under)108 216 Q/F3 9/Times-Bold@0 SF
-.477(SHELL B)2.977 F(UIL)-.09 E .477(TIN COMMANDS)-.828 F F0 .477
-(for a description of the)2.727 F F1(nocaseglob)2.978 E F0(,)A F1
-(nullglob)2.978 E F0(,)A F1(failglob)2.978 E F0 2.978(,a)C(nd)-2.978 E
-F1(dotglob)2.978 E F0(shell options.)108 228 Q(The)108 244.8 Q F3
-(GLOBIGNORE)2.631 E F0 .131(shell v)2.381 F .131
-(ariable may be used to restrict the set of \214le names matching a)-.25
-F F2(pattern)2.63 E F0 5.13(.I).24 G(f)-5.13 E F3(GLO-)2.63 E(BIGNORE)
-108 256.8 Q F0 2.015(is set, each matching \214le name that also matche\
-s one of the patterns in)4.264 F F3(GLOBIGNORE)4.515 E F0(is)4.265 E
-(remo)108 268.8 Q -.15(ve)-.15 G 2.504(df).15 G .004
+-.1 G .888(ys be matched).1 F -.15(ex)108 249.6 S(plicitly).15 E 6.166
+(.I)-.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F1 -.63(``)
+3.666 G -.55(.').63 G(')-.08 E F0 1.166
+(character is not treated specially)6.166 F 6.165(.S)-.65 G 1.165
+(ee the description of)-6.165 F F1(shopt)3.665 E F0(belo)3.665 E(w)-.25
+E(under)108 261.6 Q/F3 9/Times-Bold@0 SF .477(SHELL B)2.977 F(UIL)-.09 E
+.477(TIN COMMANDS)-.828 F F0 .477(for a description of the)2.727 F F1
+(nocaseglob)2.978 E F0(,)A F1(nullglob)2.978 E F0(,)A F1(failglob)2.978
+E F0 2.978(,a)C(nd)-2.978 E F1(dotglob)2.978 E F0(shell options.)108
+273.6 Q(The)108 290.4 Q F3(GLOBIGNORE)2.631 E F0 .131(shell v)2.381 F
+.131(ariable may be used to restrict the set of \214le names matching a)
+-.25 F F2(pattern)2.63 E F0 5.13(.I).24 G(f)-5.13 E F3(GLO-)2.63 E
+(BIGNORE)108 302.4 Q F0 2.015(is set, each matching \214le name that al\
+so matches one of the patterns in)4.264 F F3(GLOBIGNORE)4.515 E F0(is)
+4.265 E(remo)108 314.4 Q -.15(ve)-.15 G 2.504(df).15 G .004
(rom the list of matches.)-2.504 F .003(The \214le names)5.003 F F1 -.63
(``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F1 -.63(``)2.503 G(..)
.63 E -.63('')-.55 G F0 .003(are al)5.633 F -.1(wa)-.1 G .003
(ys ignored when).1 F F3(GLOBIGNORE)2.503 E F0(is)2.253 E .045
-(set and not null.)108 280.8 R(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845
+(set and not null.)108 326.4 R(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845
-.4(r, s).15 H(etting).4 E F3(GLOBIGNORE)2.545 E F0 .046
(to a non-null v)2.296 F .046(alue has the ef)-.25 F .046
(fect of enabling the)-.25 F F1(dotglob)2.546 E F0 .614
-(shell option, so all other \214le names be)108 292.8 R .614
+(shell option, so all other \214le names be)108 338.4 R .614
(ginning with a)-.15 F F1 -.63(``)3.114 G -.55(.').63 G(')-.08 E F0 .614
(will match.)5.614 F 2.213 -.8(To g)5.614 H .613(et the old beha).8 F
-.613(vior of ignoring)-.2 F .456(\214le names be)108 304.8 R .456
+.613(vior of ignoring)-.2 F .456(\214le names be)108 350.4 R .456
(ginning with a)-.15 F F1 -.63(``)2.957 G -.55(.').63 G(')-.08 E F0
2.957(,m)C(ak)-2.957 E(e)-.1 E F1 -.63(``)2.957 G(.*').63 E(')-.63 E F0
.457(one of the patterns in)5.457 F F3(GLOBIGNORE)2.957 E/F4 9
/Times-Roman@0 SF(.)A F0(The)4.957 E F1(dotglob)2.957 E F0 .457
-(option is)2.957 F(disabled when)108 316.8 Q F3(GLOBIGNORE)2.5 E F0
-(is unset.)2.25 E F1 -.1(Pa)108 333.6 S(tter).1 E 2.5(nM)-.15 G(atching)
--2.5 E F0(An)108 350.4 Q 3.138(yc)-.15 G .638(haracter that appears in \
-a pattern, other than the special pattern characters described belo)
--3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 362.4
-R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G
-1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F
-.576(escaping backslash is discarded when matching.)108 374.4 R .576
+(option is)2.957 F(disabled when)108 362.4 Q F3(GLOBIGNORE)2.5 E F0
+(is unset.)2.25 E F1 -.1(Pa)108 379.2 S(tter).1 E 2.5(nM)-.15 G(atching)
+-2.5 E F0(An)108 396 Q 3.138(yc)-.15 G .638(haracter that appears in a \
+pattern, other than the special pattern characters described belo)-3.138
+F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 408 R 1.12
+(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G 1.12
+(ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F .576
+(escaping backslash is discarded when matching.)108 420 R .576
(The special pattern characters must be quoted if the)5.576 F 3.076(ya)
--.15 G(re)-3.076 E(to be matched literally)108 386.4 Q(.)-.65 E
-(The special pattern characters ha)108 403.2 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F1(*)108 420 Q F0 .455(Matches an)
-31 F 2.955(ys)-.15 G .455(tring, including the null string.)-2.955 F
-.455(When the)5.455 F F1(globstar)2.955 E F0 .455
+-.15 G(re)-3.076 E(to be matched literally)108 432 Q(.)-.65 E
+(The special pattern characters ha)108 448.8 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1(*)108 465.6 Q F0 .455
+(Matches an)31 F 2.955(ys)-.15 G .455(tring, including the null string.)
+-2.955 F .455(When the)5.455 F F1(globstar)2.955 E F0 .455
(shell option is enabled, and)2.955 F F1(*)2.955 E F0(is)2.955 E .315
-(used in a pathname e)144 432 R .314(xpansion conte)-.15 F .314(xt, tw)
--.15 F 2.814(oa)-.1 G(djacent)-2.814 E F1(*)2.814 E F0 2.814(su)C .314
-(sed as a single pattern will match all \214les)-2.814 F 1.183
-(and zero or more directories and subdirectories.)144 444 R 1.183
+(used in a pathname e)144 477.6 R .314(xpansion conte)-.15 F .314
+(xt, tw)-.15 F 2.814(oa)-.1 G(djacent)-2.814 E F1(*)2.814 E F0 2.814(su)
+C .314(sed as a single pattern will match all \214les)-2.814 F 1.183
+(and zero or more directories and subdirectories.)144 489.6 R 1.183
(If follo)6.183 F 1.183(wed by a)-.25 F F1(/)3.683 E F0 3.683(,t)C 1.383
-.1(wo a)-3.683 H(djacent).1 E F1(*)3.683 E F0 3.684(sw)C 1.184
-(ill match)-3.684 F(only directories and subdirectories.)144 456 Q F1(?)
-108 468 Q F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55
-E F1([...])108 480 Q F0 .257(Matches an)21.84 F 2.757(yo)-.15 G .257
-(ne of the enclosed characters.)-2.757 F 2.757(Ap)5.257 G .257
+(ill match)-3.684 F(only directories and subdirectories.)144 501.6 Q F1
+(?)108 513.6 Q F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E
+(.)-.55 E F1([...])108 525.6 Q F0 .257(Matches an)21.84 F 2.757(yo)-.15
+G .257(ne of the enclosed characters.)-2.757 F 2.757(Ap)5.257 G .257
(air of characters separated by a h)-2.757 F .256(yphen denotes a)-.05 F
-F2 -.15(ra)144 492 S(ng).15 E 3.289(ee)-.1 G(xpr)-3.489 E(ession)-.37 E
-F0 3.289(;a)C 1.089 -.15(ny c)-3.289 H .789
+F2 -.15(ra)144 537.6 S(ng).15 E 3.289(ee)-.1 G(xpr)-3.489 E(ession)-.37
+E F0 3.289(;a)C 1.089 -.15(ny c)-3.289 H .789
(haracter that sorts between those tw).15 F 3.289(oc)-.1 G .789
(haracters, inclusi)-3.289 F -.15(ve)-.25 G 3.29(,u).15 G .79
-(sing the cur)-3.29 F(-)-.2 E .35(rent locale')144 504 R 2.85(sc)-.55 G
-.35(ollating sequence and character set, is matched.)-2.85 F .349
+(sing the cur)-3.29 F(-)-.2 E .35(rent locale')144 549.6 R 2.85(sc)-.55
+G .35(ollating sequence and character set, is matched.)-2.85 F .349
(If the \214rst character follo)5.349 F .349(wing the)-.25 F F1([)2.849
-E F0 .563(is a)144 516 R F1(!)3.063 E F0 .563(or a)5.563 F F1(^)3.063 E
-F0 .564(then an)3.063 F 3.064(yc)-.15 G .564
+E F0 .563(is a)144 561.6 R F1(!)3.063 E F0 .563(or a)5.563 F F1(^)3.063
+E F0 .564(then an)3.063 F 3.064(yc)-.15 G .564
(haracter not enclosed is matched.)-3.064 F .564
-(The sorting order of characters in range)5.564 F -.15(ex)144 528 S
+(The sorting order of characters in range)5.564 F -.15(ex)144 573.6 S
1.102(pressions is determined by the current locale and the v).15 F
1.102(alue of the)-.25 F F1(LC_COLLA)3.602 E(TE)-.95 E F0 1.102(shell v)
-3.602 F(ari-)-.25 E .088(able, if set.)144 540 R(A)5.088 E F1<ad>2.588 E
-F0 .088(may be matched by including it as the \214rst or last character\
- in the set.)2.588 F(A)5.089 E F1(])2.589 E F0 .089(may be)2.589 F
-(matched by including it as the \214rst character in the set.)144 552 Q
--.4(Wi)144 570 S(thin).4 E F1([)2.915 E F0(and)2.915 E F1(])2.915 E F0
-(,)A F2 -.15(ch)2.915 G(ar).15 E .415(acter classes)-.15 F F0 .415
+3.602 F(ari-)-.25 E .088(able, if set.)144 585.6 R(A)5.088 E F1<ad>2.588
+E F0 .088(may be matched by including it as the \214rst or last charact\
+er in the set.)2.588 F(A)5.089 E F1(])2.589 E F0 .089(may be)2.589 F
+(matched by including it as the \214rst character in the set.)144 597.6
+Q -.4(Wi)144 615.6 S(thin).4 E F1([)2.915 E F0(and)2.915 E F1(])2.915 E
+F0(,)A F2 -.15(ch)2.915 G(ar).15 E .415(acter classes)-.15 F F0 .415
(can be speci\214ed using the syntax)2.915 F F1([:)2.915 E F2(class)A F1
(:])A F0 2.914(,w)C(here)-2.914 E F2(class)2.914 E F0 .414(is one of)
-2.914 F(the follo)144 582 Q
+2.914 F(the follo)144 627.6 Q
(wing classes de\214ned in the POSIX standard:)-.25 E F1 5.421
-(alnum alpha ascii blank cntrl digit graph lo)144 594 R 5.421
-(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 606 Q F0 2.519
-(Ac)144 618 S .019(haracter class matches an)-2.519 F 2.519(yc)-.15 G
-.019(haracter belonging to that class.)-2.519 F(The)5.018 E F1 -.1(wo)
-2.518 G(rd).1 E F0 .018(character class matches)2.518 F
-(letters, digits, and the character _.)144 630 Q -.4(Wi)144 648 S(thin)
-.4 E F1([)3.546 E F0(and)3.546 E F1(])3.546 E F0 3.546(,a)C(n)-3.546 E
-F2 1.046(equivalence class)3.546 F F0 1.046
+(alnum alpha ascii blank cntrl digit graph lo)144 639.6 R 5.421
+(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 651.6 Q F0
+2.519(Ac)144 663.6 S .019(haracter class matches an)-2.519 F 2.519(yc)
+-.15 G .019(haracter belonging to that class.)-2.519 F(The)5.018 E F1
+-.1(wo)2.518 G(rd).1 E F0 .018(character class matches)2.518 F
+(letters, digits, and the character _.)144 675.6 Q -.4(Wi)144 693.6 S
+(thin).4 E F1([)3.546 E F0(and)3.546 E F1(])3.546 E F0 3.546(,a)C(n)
+-3.546 E F2 1.046(equivalence class)3.546 F F0 1.046
(can be speci\214ed using the syntax)3.546 F F1([=)3.547 E F2(c)A F1(=])
A F0 3.547(,w)C 1.047(hich matches all)-3.547 F(characters with the sam\
e collation weight \(as de\214ned by the current locale\) as the charac\
-ter)144 660 Q F2(c)2.5 E F0(.)A -.4(Wi)144 678 S(thin).4 E F1([)2.5 E F0
-(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5 E F2
+ter)144 705.6 Q F2(c)2.5 E F0(.)A -.4(Wi)144 723.6 S(thin).4 E F1([)2.5
+E F0(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5 E F2
(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F2(symbol)2.5 E
-F0(.)A .705(If the)108 694.8 R F1(extglob)3.205 E F0 .705
-(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2(bu)
-3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704
-(xtended pattern matching operators)-.15 F .255(are recognized.)108
-706.8 R .255(In the follo)5.255 F .255(wing description, a)-.25 F F2
-(pattern-list)2.755 E F0 .255
-(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E
-F0(.)A(Composite patterns may be formed using one or more of the follo)
-108 718.8 Q(wing sub-patterns:)-.25 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(22)185.115 E 0 Cg EP
+F0(.)A(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(22)192.895 E 0 Cg
+EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(?\()144 84 Q/F2 10/Times-Italic@0 SF
+-.35 E .705(If the)108 84 R/F1 10/Times-Bold@0 SF(extglob)3.205 E F0
+.705(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2
+(bu)3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704
+(xtended pattern matching operators)-.15 F .255(are recognized.)108 96 R
+.255(In the follo)5.255 F .255(wing description, a)-.25 F/F2 10
+/Times-Italic@0 SF(pattern-list)2.755 E F0 .255
+(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E
+F0(.)A(Composite patterns may be formed using one or more of the follo)
+108 108 Q(wing sub-patterns:)-.25 E F1(?\()144 132 Q F2(pattern-list)
+.833 E F1(\)).833 E F0(Matches zero or one occurrence of the gi)180 144
+Q -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(*\()144 156 Q F2
(pattern-list).833 E F1(\)).833 E F0
-(Matches zero or one occurrence of the gi)180 96 Q -.15(ve)-.25 G 2.5
-(np).15 G(atterns)-2.5 E F1(*\()144 108 Q F2(pattern-list).833 E F1(\))
-.833 E F0(Matches zero or more occurrences of the gi)180 120 Q -.15(ve)
--.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 132 Q F2(pattern-list).833
-E F1(\)).833 E F0(Matches one or more occurrences of the gi)180 144 Q
--.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 156 Q F2
-(pattern-list).833 E F1(\)).833 E F0(Matches one of the gi)180 168 Q
--.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(!\()144 180 Q F2
-(pattern-list).833 E F1(\)).833 E F0(Matches an)180 192 Q(ything e)-.15
-E(xcept one of the gi)-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E
-F1(Quote Remo)87 208.8 Q -.1(va)-.1 G(l).1 E F0 1.113
-(After the preceding e)108 220.8 R 1.113
+(Matches zero or more occurrences of the gi)180 168 Q -.15(ve)-.25 G 2.5
+(np).15 G(atterns)-2.5 E F1(+\()144 180 Q F2(pattern-list).833 E F1(\))
+.833 E F0(Matches one or more occurrences of the gi)180 192 Q -.15(ve)
+-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 204 Q F2(pattern-list).833
+E F1(\)).833 E F0(Matches one of the gi)180 216 Q -.15(ve)-.25 G 2.5(np)
+.15 G(atterns)-2.5 E F1(!\()144 228 Q F2(pattern-list).833 E F1(\)).833
+E F0(Matches an)180 240 Q(ything e)-.15 E(xcept one of the gi)-.15 E
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(Quote Remo)87 256.8 Q -.1
+(va)-.1 G(l).1 E F0 1.113(After the preceding e)108 268.8 R 1.113
(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)
3.613 E F0(,)A F1<08>3.612 E F0 3.612(,a)C(nd)-3.612 E F1(")4.445 E F0
-1.112(that did not result)4.445 F(from one of the abo)108 232.8 Q .3
+1.112(that did not result)4.445 F(from one of the abo)108 280.8 Q .3
-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3
-10.95/Times-Bold@0 SF(REDIRECTION)72 249.6 Q F0 .545
-(Before a command is e)108 261.6 R -.15(xe)-.15 G .545
+10.95/Times-Bold@0 SF(REDIRECTION)72 297.6 Q F0 .545
+(Before a command is e)108 309.6 R -.15(xe)-.15 G .545
(cuted, its input and output may be).15 F F2 -.37(re)3.045 G(dir).37 E
(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .617
-(by the shell.)108 273.6 R .617(Redirection may also be used to open an\
+(by the shell.)108 321.6 R .617(Redirection may also be used to open an\
d close \214les for the current shell e)5.617 F -.15(xe)-.15 G .616
-(cution en).15 F(viron-)-.4 E 3.274(ment. The)108 285.6 R(follo)3.274 E
+(cution en).15 F(viron-)-.4 E 3.274(ment. The)108 333.6 R(follo)3.274 E
.774(wing redirection operators may precede or appear an)-.25 F .774
(ywhere within a)-.15 F F2 .775(simple command)3.615 F F0(or)4.045 E
-(may follo)108 297.6 Q 2.5(wa)-.25 G F2(command)A F0 5(.R).77 G
+(may follo)108 345.6 Q 2.5(wa)-.25 G F2(command)A F0 5(.R).77 G
(edirections are processed in the order the)-5 E 2.5(ya)-.15 G(ppear)
-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Each redirection tha\
t may be preceded by a \214le descriptor number may instead be preceded\
- by a w)108 314.4 R .771(ord of)-.1 F .292(the form {)108 326.4 R F2
+ by a w)108 362.4 R .771(ord of)-.1 F .292(the form {)108 374.4 R F2
(varname)A F0 2.793(}. In)B .293
(this case, for each redirection operator e)2.793 F .293
-(xcept >&- and <&-, the shell will allocate)-.15 F 3.499<618c>108 338.4
+(xcept >&- and <&-, the shell will allocate)-.15 F 3.499<618c>108 386.4
S .999(le descriptor greater than 10 and assign it to)-3.499 F F2
(varname)3.499 E F0 5.999(.I)C 3.499(f>)-5.999 G .999
(&- or <&- is preceded by {)-3.499 F F2(varname)A F0 .998(}, the)B -.25
-(va)108 350.4 S(lue of).25 E F2(varname)2.5 E F0
+(va)108 398.4 S(lue of).25 E F2(varname)2.5 E F0
(de\214nes the \214le descriptor to close.)2.5 E .283(In the follo)108
-367.2 R .284(wing descriptions, if the \214le descriptor number is omit\
+415.2 R .284(wing descriptions, if the \214le descriptor number is omit\
ted, and the \214rst character of the redirect-)-.25 F .513
-(ion operator is)108 379.2 R F1(<)3.012 E F0 3.012(,t)C .512
+(ion operator is)108 427.2 R F1(<)3.012 E F0 3.012(,t)C .512
(he redirection refers to the standard input \(\214le descriptor 0\).)
-3.012 F .512(If the \214rst character of the)5.512 F
-(redirection operator is)108 391.2 Q F1(>)2.5 E F0 2.5(,t)C
+(redirection operator is)108 439.2 Q F1(>)2.5 E F0 2.5(,t)C
(he redirection refers to the standard output \(\214le descriptor 1\).)
--2.5 E .824(The w)108 408 R .824(ord follo)-.1 F .824
+-2.5 E .824(The w)108 456 R .824(ord follo)-.1 F .824
(wing the redirection operator in the follo)-.25 F .825
(wing descriptions, unless otherwise noted, is sub-)-.25 F .773
-(jected to brace e)108 420 R .773(xpansion, tilde e)-.15 F .773
+(jected to brace e)108 468 R .773(xpansion, tilde e)-.15 F .773
(xpansion, parameter e)-.15 F .772
(xpansion, command substitution, arithmetic e)-.15 F(xpan-)-.15 E .843
-(sion, quote remo)108 432 R -.25(va)-.15 G .843(l, pathname e).25 F .843
+(sion, quote remo)108 480 R -.25(va)-.15 G .843(l, pathname e).25 F .843
(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843 F
.843(xpands to more than one w)-.15 F(ord,)-.1 E F1(bash)3.344 E F0
-(reports an error)108 444 Q(.)-.55 E
-(Note that the order of redirections is signi\214cant.)108 460.8 Q -.15
-(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 477.6 Q F1(>)2.5
+(reports an error)108 492 Q(.)-.55 E
+(Note that the order of redirections is signi\214cant.)108 508.8 Q -.15
+(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 525.6 Q F1(>)2.5
E F0(dirlist 2)2.5 E F1(>&)A F0(1)A
-(directs both standard output and standard error to the \214le)108 494.4
+(directs both standard output and standard error to the \214le)108 542.4
Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
-511.2 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527
-(directs only the standard output to \214le)108 528 R F2(dirlist)3.027 E
+559.2 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527
+(directs only the standard output to \214le)108 576 R F2(dirlist)3.027 E
F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527
(as duplicated from the standard)-.1 F
-(output before the standard output w)108 540 Q(as redirected to)-.1 E F2
-(dirlist)2.5 E F0(.).68 E F1(Bash)108 556.8 Q F0 .598(handles se)3.098 F
+(output before the standard output w)108 588 Q(as redirected to)-.1 E F2
+(dirlist)2.5 E F0(.).68 E F1(Bash)108 604.8 Q F0 .598(handles se)3.098 F
-.15(ve)-.25 G .598(ral \214lenames specially when the).15 F 3.099(ya)
-.15 G .599(re used in redirections, as described in the follo)-3.099 F
-(wing)-.25 E(table:)108 568.8 Q F1(/de)144 585.6 Q(v/fd/)-.15 E F2(fd)A
-F0(If)180 597.6 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15
+(wing)-.25 E(table:)108 616.8 Q F1(/de)144 633.6 Q(v/fd/)-.15 E F2(fd)A
+F0(If)180 645.6 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15
E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F2(fd)2.5 E F0(is duplicated.)2.5
-E F1(/de)144 609.6 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)
-180 621.6 Q F1(/de)144 633.6 Q(v/stdout)-.15 E F0
-(File descriptor 1 is duplicated.)180 645.6 Q F1(/de)144 657.6 Q
-(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 669.6 Q F1(/de)
-144 681.6 Q(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 693.6 Q
-F2(host)2.997 E F0 .497(is a v)2.997 F .497
-(alid hostname or Internet address, and)-.25 F F2(port)2.996 E F0 .496
-(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 705.6 Q F1(bash)2.5 E F0
-(attempts to open a TCP connection to the corresponding sock)2.5 E(et.)
--.1 E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(23)185.115 E 0
-Cg EP
+E F1(/de)144 657.6 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)
+180 669.6 Q F1(/de)144 681.6 Q(v/stdout)-.15 E F0
+(File descriptor 1 is duplicated.)180 693.6 Q F1(/de)144 705.6 Q
+(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 717.6 Q
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(23)192.895 E 0 Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(/de)144 84 Q(v/udp/)-.15 E/F2 10
-/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 96 Q F2(host)2.996
-E F0 .496(is a v)2.996 F .496(alid hostname or Internet address, and)
--.25 F F2(port)2.997 E F0 .497(is an inte)2.997 F .497
+-.35 E/F1 10/Times-Bold@0 SF(/de)144 84 Q(v/tcp/)-.15 E/F2 10
+/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 96 Q F2(host)2.997
+E F0 .497(is a v)2.997 F .497(alid hostname or Internet address, and)
+-.25 F F2(port)2.996 E F0 .496(is an inte)2.996 F .496
(ger port number or ser)-.15 F(-)-.2 E(vice name,)180 108 Q F1(bash)2.5
-E F0(attempts to open a UDP connection to the corresponding sock)2.5 E
-(et.)-.1 E 2.5(Af)108 124.8 S
+E F0(attempts to open a TCP connection to the corresponding sock)2.5 E
+(et.)-.1 E F1(/de)144 120 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0
+(If)180 132 Q F2(host)2.996 E F0 .496(is a v)2.996 F .496
+(alid hostname or Internet address, and)-.25 F F2(port)2.997 E F0 .497
+(is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E
+(vice name,)180 144 Q F1(bash)2.5 E F0
+(attempts to open a UDP connection to the corresponding sock)2.5 E(et.)
+-.1 E 2.5(Af)108 160.8 S
(ailure to open or create a \214le causes the redirection to f)-2.6 E
(ail.)-.1 E .947(Redirections using \214le descriptors greater than 9 s\
-hould be used with care, as the)108 141.6 R 3.446(ym)-.15 G .946
+hould be used with care, as the)108 177.6 R 3.446(ym)-.15 G .946
(ay con\215ict with \214le)-3.446 F
-(descriptors the shell uses internally)108 153.6 Q(.)-.65 E F1(Redir)87
-170.4 Q(ecting Input)-.18 E F0 .391
+(descriptors the shell uses internally)108 189.6 Q(.)-.65 E F1(Redir)87
+206.4 Q(ecting Input)-.18 E F0 .391
(Redirection of input causes the \214le whose name results from the e)
-108 182.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
-(to be opened for read-)3.661 F(ing on \214le descriptor)108 194.4 Q F2
+108 218.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
+(to be opened for read-)3.661 F(ing on \214le descriptor)108 230.4 Q F2
(n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
(he standard input \(\214le descriptor 0\) if)-2.5 E F2(n)2.86 E F0
(is not speci\214ed.)2.74 E
-(The general format for redirecting input is:)108 211.2 Q([)144 228 Q F2
-(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 244.8 Q(ecting Output)
+(The general format for redirecting input is:)108 247.2 Q([)144 264 Q F2
+(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 280.8 Q(ecting Output)
-.18 E F0 .175
(Redirection of output causes the \214le whose name results from the e)
-108 256.8 R .174(xpansion of)-.15 F F2(wor)3.014 E(d)-.37 E F0 .174
-(to be opened for writ-)3.444 F .824(ing on \214le descriptor)108 268.8
+108 292.8 R .174(xpansion of)-.15 F F2(wor)3.014 E(d)-.37 E F0 .174
+(to be opened for writ-)3.444 F .824(ing on \214le descriptor)108 304.8
R F2(n)3.324 E F0 3.324(,o).24 G 3.324(rt)-3.324 G .824
(he standard output \(\214le descriptor 1\) if)-3.324 F F2(n)3.684 E F0
.824(is not speci\214ed.)3.564 F .825(If the \214le does not)5.825 F
--.15(ex)108 280.8 S(ist it is created; if it does e).15 E
+-.15(ex)108 316.8 S(ist it is created; if it does e).15 E
(xist it is truncated to zero size.)-.15 E
-(The general format for redirecting output is:)108 297.6 Q([)144 314.4 Q
+(The general format for redirecting output is:)108 333.6 Q([)144 350.4 Q
F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .155
-(If the redirection operator is)108 331.2 R F1(>)2.655 E F0 2.655(,a)C
+(If the redirection operator is)108 367.2 R F1(>)2.655 E F0 2.655(,a)C
.155(nd the)-2.655 F F1(noclob)2.655 E(ber)-.1 E F0 .154(option to the)
2.654 F F1(set)2.654 E F0 -.2(bu)2.654 G .154
-(iltin has been enabled, the redirection).2 F .657(will f)108 343.2 R
+(iltin has been enabled, the redirection).2 F .657(will f)108 379.2 R
.657(ail if the \214le whose name results from the e)-.1 F .658
(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .658
(ists and is a re).15 F .658(gular \214le.)-.15 F .658(If the redi-)
-5.658 F .409(rection operator is)108 355.2 R F1(>|)2.909 E F0 2.909(,o)C
+5.658 F .409(rection operator is)108 391.2 R F1(>|)2.909 E F0 2.909(,o)C
2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E
F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409
(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.908 G .408
(iltin command).2 F(is not enabled, the redirection is attempted e)108
-367.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
+403.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
-2.5 E F2(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87
-384 S(pending Redir).25 E(ected Output)-.18 E F0 .641
-(Redirection of output in this f)108 396 R .642
+420 S(pending Redir).25 E(ected Output)-.18 E F0 .641
+(Redirection of output in this f)108 432 R .642
(ashion causes the \214le whose name results from the e)-.1 F .642
(xpansion of)-.15 F F2(wor)3.482 E(d)-.37 E F0 .642(to be)3.912 F .474
-(opened for appending on \214le descriptor)108 408 R F2(n)2.974 E F0
+(opened for appending on \214le descriptor)108 444 R F2(n)2.974 E F0
2.974(,o).24 G 2.974(rt)-2.974 G .474
(he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.333 E F0
.473(is not speci\214ed.)3.213 F(If)5.473 E(the \214le does not e)108
-420 Q(xist it is created.)-.15 E
-(The general format for appending output is:)108 436.8 Q([)144 453.6 Q
-F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 475.2 Q
+456 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 472.8 Q([)144 489.6 Q
+F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 511.2 Q
(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .248
-(This construct allo)108 487.2 R .249(ws both the standard output \(\
+(This construct allo)108 523.2 R .249(ws both the standard output \(\
\214le descriptor 1\) and the standard error output \(\214le descrip-)
-.25 F(tor 2\) to be redirected to the \214le whose name is the e)108
-499.2 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
-(There are tw)108 516 Q 2.5(of)-.1 G
+535.2 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
+(There are tw)108 552 Q 2.5(of)-.1 G
(ormats for redirecting standard output and standard error:)-2.5 E F1
-(&>)144 532.8 Q F2(wor)A(d)-.37 E F0(and)108 544.8 Q F1(>&)144 556.8 Q
-F2(wor)A(d)-.37 E F0(Of the tw)108 573.6 Q 2.5(of)-.1 G
+(&>)144 568.8 Q F2(wor)A(d)-.37 E F0(and)108 580.8 Q F1(>&)144 592.8 Q
+F2(wor)A(d)-.37 E F0(Of the tw)108 609.6 Q 2.5(of)-.1 G
(orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
--.25(va)-.25 G(lent to).25 E F1(>)144 590.4 Q F2(wor)A(d)-.37 E F0(2)2.5
-E F1(>&)A F0(1)A F1 -.25(Ap)87 612 S
+-.25(va)-.25 G(lent to).25 E F1(>)144 626.4 Q F2(wor)A(d)-.37 E F0(2)2.5
+E F1(>&)A F0(1)A F1 -.25(Ap)87 648 S
(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .249
-(This construct allo)108 624 R .249(ws both the standard output \(\214l\
+(This construct allo)108 660 R .249(ws both the standard output \(\214l\
e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F
-(tor 2\) to be appended to the \214le whose name is the e)108 636 Q
+(tor 2\) to be appended to the \214le whose name is the e)108 672 Q
(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
(The format for appending standard output and standard error is:)108
-652.8 Q F1(&>>)144 669.6 Q F2(wor)A(d)-.37 E F0
-(This is semantically equi)108 686.4 Q -.25(va)-.25 G(lent to).25 E F1
-(>>)144 703.2 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(24)185.115 E 0 Cg EP
+688.8 Q F1(&>>)144 705.6 Q F2(wor)A(d)-.37 E F0
+(This is semantically equi)108 722.4 Q -.25(va)-.25 G(lent to).25 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(24)192.895 E 0 Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(Her)87 84 Q 2.5(eD)-.18 G(ocuments)-2.5 E
-F0 .33(This type of redirection instructs the shell to read input from \
-the current source until a line containing only)108 96 R/F2 10
-/Times-Italic@0 SF(delimiter)108.35 108 Q F0 .615
+-.35 E/F1 10/Times-Bold@0 SF(>>)144 84 Q/F2 10/Times-Italic@0 SF(wor)A
+(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A F1(Her)87 100.8 Q 2.5(eD)-.18 G
+(ocuments)-2.5 E F0 .33(This type of redirection instructs the shell to\
+ read input from the current source until a line containing only)108
+112.8 R F2(delimiter)108.35 124.8 Q F0 .615
(\(with no trailing blanks\) is seen.)3.845 F .615
(All of the lines read up to that point are then used as the stan-)5.615
-F(dard input for a command.)108 120 Q(The format of here-documents is:)
-108 136.8 Q F1(<<)144 153.6 Q F0([)A F1<ad>A F0(])A F2(wor)A(d)-.37 E
-(her)164 165.6 Q(e-document)-.37 E(delimiter)144 177.6 Q F0 .127
-(No parameter e)108 194.4 R .127
+F(dard input for a command.)108 136.8 Q
+(The format of here-documents is:)108 153.6 Q F1(<<)144 170.4 Q F0([)A
+F1<ad>A F0(])A F2(wor)A(d)-.37 E(her)164 182.4 Q(e-document)-.37 E
+(delimiter)144 194.4 Q F0 .127(No parameter e)108 211.2 R .127
(xpansion, command substitution, arithmetic e)-.15 F .127
(xpansion, or pathname e)-.15 F .128(xpansion is performed)-.15 F(on)108
-206.4 Q F2(wor)3.275 E(d)-.37 E F0 5.775(.I).77 G 3.275(fa)-5.775 G
+223.2 Q F2(wor)3.275 E(d)-.37 E F0 5.775(.I).77 G 3.275(fa)-5.775 G
1.075 -.15(ny c)-3.275 H .774(haracters in).15 F F2(wor)3.614 E(d)-.37 E
F0 .774(are quoted, the)4.044 F F2(delimiter)3.624 E F0 .774
(is the result of quote remo)4.004 F -.25(va)-.15 G 3.274(lo).25 G(n)
-3.274 E F2(wor)3.274 E(d)-.37 E F0 3.274(,a).77 G(nd)-3.274 E .904
-(the lines in the here-document are not e)108 218.4 R 3.405(xpanded. If)
+(the lines in the here-document are not e)108 235.2 R 3.405(xpanded. If)
-.15 F F2(wor)3.405 E(d)-.37 E F0 .905
(is unquoted, all lines of the here-document are)3.405 F .695
-(subjected to parameter e)108 230.4 R .695
+(subjected to parameter e)108 247.2 R .695
(xpansion, command substitution, and arithmetic e)-.15 F 3.194
(xpansion. In)-.15 F .694(the latter case, the)3.194 F
-(character sequence)108 242.4 Q F1(\\<newline>)2.5 E F0(is ignored, and)
+(character sequence)108 259.2 Q F1(\\<newline>)2.5 E F0(is ignored, and)
2.5 E F1(\\)2.5 E F0(must be used to quote the characters)2.5 E F1(\\)
2.5 E F0(,)A F1($)2.5 E F0 2.5(,a)C(nd)-2.5 E F1<92>2.5 E F0(.)A .601
-(If the redirection operator is)108 259.2 R F1(<<\255)3.101 E F0 3.101
-(,t)C .601(hen all leading tab characters are stripped from input lines\
- and the line)-3.101 F(containing)108 271.2 Q F2(delimiter)2.5 E F0 5
-(.T).73 G(his allo)-5 E
+(If the redirection operator is)108 276 R F1(<<\255)3.101 E F0 3.101(,t)
+C .601(hen all leading tab characters are stripped from input lines and\
+ the line)-3.101 F(containing)108 288 Q F2(delimiter)2.5 E F0 5(.T).73 G
+(his allo)-5 E
(ws here-documents within shell scripts to be indented in a natural f)
--.25 E(ashion.)-.1 E F1(Her)87 288 Q 2.5(eS)-.18 G(trings)-2.5 E F0 2.5
-(Av)108 300 S(ariant of here documents, the format is:)-2.75 E F1(<<<)
-144 316.8 Q F2(wor)A(d)-.37 E F0(The)108 333.6 Q F2(wor)2.5 E(d)-.37 E
-F0(is e)2.5 E
+-.25 E(ashion.)-.1 E F1(Her)87 304.8 Q 2.5(eS)-.18 G(trings)-2.5 E F0
+2.5(Av)108 316.8 S(ariant of here documents, the format is:)-2.75 E F1
+(<<<)144 333.6 Q F2(wor)A(d)-.37 E F0(The)108 350.4 Q F2(wor)2.5 E(d)
+-.37 E F0(is e)2.5 E
(xpanded and supplied to the command on its standard input.)-.15 E F1
-(Duplicating File Descriptors)87 350.4 Q F0(The redirection operator)108
-362.4 Q([)144 379.2 Q F2(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .127
-(is used to duplicate input \214le descriptors.)108 396 R(If)5.127 E F2
-(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .126
+(Duplicating File Descriptors)87 367.2 Q F0(The redirection operator)108
+379.2 Q([)144 396 Q F2(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .127
+(is used to duplicate input \214le descriptors.)108 412.8 R(If)5.127 E
+F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .126
(pands to one or more digits, the \214le descriptor denoted).15 F(by)108
-408 Q F2(n)3.317 E F0 .457(is made to be a cop)3.197 F 2.957(yo)-.1 G
+424.8 Q F2(n)3.317 E F0 .457(is made to be a cop)3.197 F 2.957(yo)-.1 G
2.957(ft)-2.957 G .457(hat \214le descriptor)-2.957 F 5.457(.I)-.55 G
2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.298 E(d)-.37 E F0
.458(do not specify a \214le descriptor open)3.728 F .15
-(for input, a redirection error occurs.)108 420 R(If)5.15 E F2(wor)2.99
-E(d)-.37 E F0 -.25(eva)3.42 G .15(luates to).25 F F1<ad>2.65 E F0 2.649
-<2c8c>C .149(le descriptor)-2.649 F F2(n)3.009 E F0 .149(is closed.)
-2.889 F(If)5.149 E F2(n)3.009 E F0 .149(is not speci\214ed,)2.889 F
-(the standard input \(\214le descriptor 0\) is used.)108 432 Q
-(The operator)108 448.8 Q([)144 465.6 Q F2(n)A F0(])A F1(>&)A F2(wor)A
+(for input, a redirection error occurs.)108 436.8 R(If)5.15 E F2(wor)
+2.99 E(d)-.37 E F0 -.25(eva)3.42 G .15(luates to).25 F F1<ad>2.65 E F0
+2.649<2c8c>C .149(le descriptor)-2.649 F F2(n)3.009 E F0 .149
+(is closed.)2.889 F(If)5.149 E F2(n)3.009 E F0 .149(is not speci\214ed,)
+2.889 F(the standard input \(\214le descriptor 0\) is used.)108 448.8 Q
+(The operator)108 465.6 Q([)144 482.4 Q F2(n)A F0(])A F1(>&)A F2(wor)A
(d)-.37 E F0 .443
-(is used similarly to duplicate output \214le descriptors.)108 482.4 R
+(is used similarly to duplicate output \214le descriptors.)108 499.2 R
(If)5.443 E F2(n)3.304 E F0 .444
(is not speci\214ed, the standard output \(\214le descrip-)3.184 F 1.358
-(tor 1\) is used.)108 494.4 R 1.358(If the digits in)6.358 F F2(wor)
+(tor 1\) is used.)108 511.2 R 1.358(If the digits in)6.358 F F2(wor)
4.198 E(d)-.37 E F0 1.357(do not specify a \214le descriptor open for o\
-utput, a redirection error)4.628 F 2.596(occurs. As)108 506.4 R 2.596
+utput, a redirection error)4.628 F 2.596(occurs. As)108 523.2 R 2.596
(as)2.596 G .096(pecial case, if)-2.596 F F2(n)2.596 E F0 .096
(is omitted, and)2.596 F F2(wor)2.596 E(d)-.37 E F0 .096(does not e)
2.596 F .096(xpand to one or more digits, the standard out-)-.15 F
-(put and standard error are redirected as described pre)108 518.4 Q
-(viously)-.25 E(.)-.65 E F1(Mo)87 535.2 Q(ving File Descriptors)-.1 E F0
-(The redirection operator)108 547.2 Q([)144 564 Q F2(n)A F0(])A F1(<&)A
-F2(digit)A F1<ad>A F0(mo)108 580.8 Q -.15(ve)-.15 G 3.036(st).15 G .536
+(put and standard error are redirected as described pre)108 535.2 Q
+(viously)-.25 E(.)-.65 E F1(Mo)87 552 Q(ving File Descriptors)-.1 E F0
+(The redirection operator)108 564 Q([)144 580.8 Q F2(n)A F0(])A F1(<&)A
+F2(digit)A F1<ad>A F0(mo)108 597.6 Q -.15(ve)-.15 G 3.036(st).15 G .536
(he \214le descriptor)-3.036 F F2(digit)3.036 E F0 .536
(to \214le descriptor)3.036 F F2(n)3.036 E F0 3.036(,o).24 G 3.036(rt)
-3.036 G .535(he standard input \(\214le descriptor 0\) if)-3.036 F F2
-(n)3.035 E F0 .535(is not speci-)3.035 F(\214ed.)108 592.8 Q F2(digit)5
+(n)3.035 E F0 .535(is not speci-)3.035 F(\214ed.)108 609.6 Q F2(digit)5
E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
-(Similarly)108 609.6 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
-144 626.4 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 643.2 Q
+(Similarly)108 626.4 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
+144 643.2 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 660 Q
-.15(ve)-.15 G 2.785(st).15 G .285(he \214le descriptor)-2.785 F F2
(digit)2.785 E F0 .285(to \214le descriptor)2.785 F F2(n)2.785 E F0
2.785(,o).24 G 2.785(rt)-2.785 G .286
(he standard output \(\214le descriptor 1\) if)-2.785 F F2(n)2.786 E F0
-.286(is not speci-)2.786 F(\214ed.)108 655.2 Q F1
-(Opening File Descriptors f)87 672 Q(or Reading and Writing)-.25 E F0
-(The redirection operator)108 684 Q([)144 700.8 Q F2(n)A F0(])A F1(<>)A
-F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
-717.6 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
-(to be opened for both reading and writing on \214le)4.619 F(descriptor)
-108 729.6 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
-(le descriptor 0 if)-2.5 E F2(n)2.86 E F0(is not speci\214ed.)2.74 E
-(If the \214le does not e)5 E(xist, it is created.)-.15 E(GNU Bash-4.1)
-72 768 Q(2009 September 16)135.125 E(25)185.115 E 0 Cg EP
+.286(is not speci-)2.786 F(\214ed.)108 672 Q F1
+(Opening File Descriptors f)87 688.8 Q(or Reading and Writing)-.25 E F0
+(The redirection operator)108 700.8 Q([)144 717.6 Q F2(n)A F0(])A F1(<>)
+A F2(wor)A(d)-.37 E F0(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E
+(25)192.895 E 0 Cg EP
%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10.95/Times-Bold@0 SF(ALIASES)72 84 Q/F2 10/Times-Italic@0 SF
-(Aliases)108 96 Q F0(allo)3.173 E 3.173(was)-.25 G .674
-(tring to be substituted for a w)-3.173 F .674
+-.35 E 1.349(causes the \214le whose name is the e)108 84 R 1.349
+(xpansion of)-.15 F/F1 10/Times-Italic@0 SF(wor)4.189 E(d)-.37 E F0
+1.349(to be opened for both reading and writing on \214le)4.619 F
+(descriptor)108 96 Q F1(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>
+-2.5 G(le descriptor 0 if)-2.5 E F1(n)2.86 E F0(is not speci\214ed.)2.74
+E(If the \214le does not e)5 E(xist, it is created.)-.15 E/F2 10.95
+/Times-Bold@0 SF(ALIASES)72 112.8 Q F1(Aliases)108 124.8 Q F0(allo)3.173
+E 3.173(was)-.25 G .674(tring to be substituted for a w)-3.173 F .674
(ord when it is used as the \214rst w)-.1 F .674
(ord of a simple command.)-.1 F .394(The shell maintains a list of alia\
-ses that may be set and unset with the)108 108 R/F3 10/Times-Bold@0 SF
+ses that may be set and unset with the)108 136.8 R/F3 10/Times-Bold@0 SF
(alias)2.893 E F0(and)2.893 E F3(unalias)2.893 E F0 -.2(bu)2.893 G .393
-(iltin commands).2 F(\(see)108 120 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)
-4.479 F(UIL)-.09 E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48
-(w\). The)-.25 F 1.98(\214rst w)4.48 F 1.98
-(ord of each simple command, if unquoted, is)-.1 F(check)108 132 Q .473
-(ed to see if it has an alias.)-.1 F .473(If so, that w)5.473 F .472
+(iltin commands).2 F(\(see)108 148.8 Q/F4 9/Times-Bold@0 SF 1.979
+(SHELL B)4.479 F(UIL)-.09 E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E
+4.48(w\). The)-.25 F 1.98(\214rst w)4.48 F 1.98
+(ord of each simple command, if unquoted, is)-.1 F(check)108 160.8 Q
+.473(ed to see if it has an alias.)-.1 F .473(If so, that w)5.473 F .472
(ord is replaced by the te)-.1 F .472(xt of the alias.)-.15 F .472
(The characters)5.472 F F3(/)2.972 E F0(,)A F3($)2.972 E F0(,)A F3<92>
-2.972 E F0(,)A(and)108 144 Q F3(=)3.611 E F0 1.111(and an)3.611 F 3.611
-(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)-3.611 F F2(metac)3.612 E
-(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
+2.972 E F0(,)A(and)108 172.8 Q F3(=)3.611 E F0 1.111(and an)3.611 F
+3.611(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)-3.611 F F1(metac)3.612
+E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
(or quoting characters listed abo)3.612 F 1.412 -.15(ve m)-.15 H 1.112
-(ay not appear in an alias).15 F 3.62(name. The)108 156 R 1.12
+(ay not appear in an alias).15 F 3.62(name. The)108 184.8 R 1.12
(replacement te)3.62 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
1.119(alid shell input, including shell metacharacters.)-3.869 F 1.119
-(The \214rst)6.119 F -.1(wo)108 168 S .513(rd of the replacement te).1 F
-.513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
+(The \214rst)6.119 F -.1(wo)108 196.8 S .513(rd of the replacement te).1
+F .513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
(ord that is identical to an alias being e)-.1 F .514(xpanded is)-.15 F
-.296(not e)108 180 R .296(xpanded a second time.)-.15 F .296
+.296(not e)108 208.8 R .296(xpanded a second time.)-.15 F .296
(This means that one may alias)5.296 F F3(ls)2.796 E F0(to)2.796 E F3
.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F3
-(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 192 R
+(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 220.8 R
-.15(ve)-.25 G .542(ly e).15 F .542(xpand the replacement te)-.15 F
3.042(xt. If)-.15 F .543(the last character of the alias v)3.042 F .543
-(alue is a)-.25 F F2(blank)3.043 E F0 3.043(,t).67 G .543(hen the ne)
--3.043 F(xt)-.15 E(command w)108 204 Q(ord follo)-.1 E
+(alue is a)-.25 F F1(blank)3.043 E F0 3.043(,t).67 G .543(hen the ne)
+-3.043 F(xt)-.15 E(command w)108 232.8 Q(ord follo)-.1 E
(wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15
-E(Aliases are created and listed with the)108 220.8 Q F3(alias)2.5 E F0
+E(Aliases are created and listed with the)108 249.6 Q F3(alias)2.5 E F0
(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F3
(unalias)2.5 E F0(command.)2.5 E .284
-(There is no mechanism for using ar)108 237.6 R .284
+(There is no mechanism for using ar)108 266.4 R .284
(guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E
.284(guments are needed, a shell func-)-.18 F(tion should be used \(see)
-108 249.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22
-(Aliases are not e)108 266.4 R 1.22
+108 278.4 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22
+(Aliases are not e)108 295.2 R 1.22
(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 3.72(,u)
.15 G 1.22(nless the)-3.72 F F3(expand_aliases)3.72 E F0 1.22
-(shell option is set)3.72 F(using)108 278.4 Q F3(shopt)2.5 E F0
+(shell option is set)3.72 F(using)108 307.2 Q F3(shopt)2.5 E F0
(\(see the description of)2.5 E F3(shopt)2.5 E F0(under)2.5 E F4
(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
E .436
(The rules concerning the de\214nition and use of aliases are some)108
-295.2 R .435(what confusing.)-.25 F F3(Bash)5.435 E F0(al)2.935 E -.1
-(wa)-.1 G .435(ys reads at least).1 F .337
-(one complete line of input before e)108 307.2 R -.15(xe)-.15 G .338
+324 R .435(what confusing.)-.25 F F3(Bash)5.435 E F0(al)2.935 E -.1(wa)
+-.1 G .435(ys reads at least).1 F .337
+(one complete line of input before e)108 336 R -.15(xe)-.15 G .338
(cuting an).15 F 2.838(yo)-.15 G 2.838(ft)-2.838 G .338
(he commands on that line.)-2.838 F .338(Aliases are e)5.338 F .338
-(xpanded when)-.15 F 3.404(ac)108 319.2 S .904
+(xpanded when)-.15 F 3.404(ac)108 348 S .904
(ommand is read, not when it is e)-3.404 F -.15(xe)-.15 G 3.404
(cuted. Therefore,).15 F .904
(an alias de\214nition appearing on the same line as)3.404 F 1.161
-(another command does not tak)108 331.2 R 3.662(ee)-.1 G -.25(ff)-3.662
-G 1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F
+(another command does not tak)108 360 R 3.662(ee)-.1 G -.25(ff)-3.662 G
+1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F
1.162(The commands follo)6.162 F 1.162(wing the)-.25 F .277
-(alias de\214nition on that line are not af)108 343.2 R .277
+(alias de\214nition on that line are not af)108 372 R .277
(fected by the ne)-.25 F 2.777(wa)-.25 G 2.777(lias. This)-2.777 F(beha)
2.777 E .277(vior is also an issue when functions)-.2 F .698(are e)108
-355.2 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 F
-.699(xpanded when a function de\214nition is read, not when the functio\
-n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .495
-(because a function de\214nition is itself a compound command.)108 367.2
-R .494(As a consequence, aliases de\214ned in a func-)5.494 F .084
-(tion are not a)108 379.2 R -.25(va)-.2 G .084
+384 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 F .699
+(xpanded when a function de\214nition is read, not when the function is\
+ e)-.15 F -.15(xe)-.15 G(cuted,).15 E .495
+(because a function de\214nition is itself a compound command.)108 396 R
+.494(As a consequence, aliases de\214ned in a func-)5.494 F .084
+(tion are not a)108 408 R -.25(va)-.2 G .084
(ilable until after that function is e).25 F -.15(xe)-.15 G 2.584
(cuted. T).15 F 2.584(ob)-.8 G 2.584(es)-2.584 G .084(afe, al)-2.584 F
-.1(wa)-.1 G .085(ys put alias de\214nitions on a sepa-).1 F
-(rate line, and do not use)108 391.2 Q F3(alias)2.5 E F0
-(in compound commands.)2.5 E -.15(Fo)108 408 S 2.5(ra).15 G(lmost e)-2.5
-E -.15(ve)-.25 G(ry purpose, aliases are superseded by shell functions.)
-.15 E F1(FUNCTIONS)72 424.8 Q F0 3.468(As)108 436.8 S .968
+(rate line, and do not use)108 420 Q F3(alias)2.5 E F0
+(in compound commands.)2.5 E -.15(Fo)108 436.8 S 2.5(ra).15 G(lmost e)
+-2.5 E -.15(ve)-.25 G
+(ry purpose, aliases are superseded by shell functions.).15 E F2
+(FUNCTIONS)72 453.6 Q F0 3.468(As)108 465.6 S .968
(hell function, de\214ned as described abo)-3.468 F 1.267 -.15(ve u)-.15
H(nder).15 E F4 .967(SHELL GRAMMAR)3.467 F/F5 9/Times-Roman@0 SF(,)A F0
-.967(stores a series of commands for)3.217 F 1.001(later e)108 448.8 R
+.967(stores a series of commands for)3.217 F 1.001(later e)108 477.6 R
-.15(xe)-.15 G 3.501(cution. When).15 F 1.002(the name of a shell funct\
ion is used as a simple command name, the list of com-)3.501 F .316
-(mands associated with that function name is e)108 460.8 R -.15(xe)-.15
+(mands associated with that function name is e)108 489.6 R -.15(xe)-.15
G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .315
(cuted in the conte).15 F .315(xt of the current)-.15 F .035
-(shell; no ne)108 472.8 R 2.535(wp)-.25 G .036
+(shell; no ne)108 501.6 R 2.535(wp)-.25 G .036
(rocess is created to interpret them \(contrast this with the e)-2.535 F
-.15(xe)-.15 G .036(cution of a shell script\).).15 F .036(When a)5.036
-F .64(function is e)108 484.8 R -.15(xe)-.15 G .64(cuted, the ar).15 F
+F .64(function is e)108 513.6 R -.15(xe)-.15 G .64(cuted, the ar).15 F
.639
(guments to the function become the positional parameters during its e)
--.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 496.8
+-.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 525.6
R F3(#)3.032 E F0 .532(is updated to re\215ect the change.)3.032 F .533
(Special parameter 0 is unchanged.)5.532 F .533(The \214rst ele-)5.533 F
-(ment of the)108 508.8 Q F4(FUNCN)2.5 E(AME)-.18 E F0 -.25(va)2.25 G
+(ment of the)108 537.6 Q F4(FUNCN)2.5 E(AME)-.18 E F0 -.25(va)2.25 G
(riable is set to the name of the function while the function is e).25 E
-.15(xe)-.15 G(cuting.).15 E 1.25(All other aspects of the shell e)108
-525.6 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
+554.4 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
(vironment are identical between a function and its caller with)-.4 F
-1.048(these e)108 537.6 R 3.548(xceptions: the)-.15 F F4(DEB)3.548 E(UG)
+1.048(these e)108 566.4 R 3.548(xceptions: the)-.15 F F4(DEB)3.548 E(UG)
-.09 E F0(and)3.298 E F3(RETURN)3.548 E F0 1.048
(traps \(see the description of the)3.548 F F3(trap)3.548 E F0 -.2(bu)
-3.548 G 1.048(iltin under).2 F F4(SHELL)3.549 E -.09(BU)108 549.6 S(IL)
+3.548 G 1.048(iltin under).2 F F4(SHELL)3.549 E -.09(BU)108 578.4 S(IL)
.09 E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479
(w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
-.25 G 2.978(nt).15 G(he)-2.978 E F3(trace)2.978 E F0(attrib)2.978 E
-.478(ute \(see)-.2 F .42(the description of the)108 561.6 R F4(declar)
+.478(ute \(see)-.2 F .42(the description of the)108 590.4 R F4(declar)
2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
-.25 F F3 .42(\255o functrace)2.92 F F0 .42
(shell option has been enabled with the)2.92 F F3(set)2.921 E F0 -.2(bu)
-108 573.6 S .072(iltin \(in which case all functions inherit the).2 F F3
+108 602.4 S .072(iltin \(in which case all functions inherit the).2 F F3
(DEB)2.572 E(UG)-.1 E F0(and)2.572 E F3(RETURN)2.572 E F0 .072
(traps\), and the)2.572 F F4(ERR)2.571 E F0 .071(trap is not inher)2.321
-F(-)-.2 E(ited unless the)108 585.6 Q F3(\255o errtrace)2.5 E F0
-(shell option has been enabled.)2.5 E -1.11(Va)108 602.4 S .655
+F(-)-.2 E(ited unless the)108 614.4 Q F3(\255o errtrace)2.5 E F0
+(shell option has been enabled.)2.5 E -1.11(Va)108 631.2 S .655
(riables local to the function may be declared with the)1.11 F F3(local)
3.155 E F0 -.2(bu)3.156 G .656(iltin command.).2 F(Ordinarily)5.656 E
-3.156(,v)-.65 G .656(ariables and)-3.406 F(their v)108 614.4 Q
+3.156(,v)-.65 G .656(ariables and)-3.406 F(their v)108 643.2 Q
(alues are shared between the function and its caller)-.25 E(.)-.55 E
-.044(If the b)108 631.2 R .043(uiltin command)-.2 F F3 -.18(re)2.543 G
+.044(If the b)108 660 R .043(uiltin command)-.2 F F3 -.18(re)2.543 G
(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043
(cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
-.043(cution resumes with).15 F 1.011(the ne)108 643.2 R 1.011
+.043(cution resumes with).15 F 1.011(the ne)108 672 R 1.011
(xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G
1.011(ommand associated with the)-3.511 F F3(RETURN)3.512 E F0 1.012
-(trap is e)3.512 F -.15(xe)-.15 G(cuted).15 E .214(before e)108 655.2 R
+(trap is e)3.512 F -.15(xe)-.15 G(cuted).15 E .214(before e)108 684 R
-.15(xe)-.15 G .214(cution resumes.).15 F .213
(When a function completes, the v)5.214 F .213
(alues of the positional parameters and the spe-)-.25 F(cial parameter)
-108 667.2 Q F3(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
-2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
--2.65 G(cution.).15 E 1.358
-(Function names and de\214nitions may be listed with the)108 684 R F3
+108 696 Q F3(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E 2.5
+(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)-2.65
+G(cution.).15 E 1.358
+(Function names and de\214nitions may be listed with the)108 712.8 R F3
<ad66>3.858 E F0 1.358(option to the)3.858 F F3(declar)3.858 E(e)-.18 E
F0(or)3.859 E F3(typeset)3.859 E F0 -.2(bu)3.859 G 1.359(iltin com-).2 F
-3.39(mands. The)108 696 R F3<ad46>3.39 E F0 .89(option to)3.39 F F3
+3.39(mands. The)108 724.8 R F3<ad46>3.39 E F0 .89(option to)3.39 F F3
(declar)3.39 E(e)-.18 E F0(or)3.39 E F3(typeset)3.39 E F0 .89
(will list the function names only \(and optionally the source)3.39 F
-.326(\214le and line number)108 708 R 2.826(,i)-.4 G 2.826(ft)-2.826 G
-(he)-2.826 E F3(extdeb)2.826 E(ug)-.2 E F0 .326
-(shell option is enabled\).)2.826 F .327(Functions may be e)5.327 F .327
-(xported so that subshells)-.15 F 1.298(automatically ha)108 720 R 1.598
--.15(ve t)-.2 H 1.298(hem de\214ned with the).15 F F3<ad66>3.798 E F0
-1.298(option to the)3.798 F F3(export)3.797 E F0 -.2(bu)3.797 G 3.797
-(iltin. A).2 F 1.297(function de\214nition may be)3.797 F(GNU Bash-4.1)
-72 768 Q(2009 September 16)135.125 E(26)185.115 E 0 Cg EP
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(26)192.895 E 0 Cg EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .16(deleted using the)108 84 R/F1 10/Times-Bold@0 SF<ad66>2.66 E
-F0 .16(option to the)2.66 F F1(unset)2.66 E F0 -.2(bu)2.66 G 2.661
-(iltin. Note).2 F .161(that shell functions and v)2.661 F .161
-(ariables with the same name)-.25 F 1.325
-(may result in multiple identically-named entries in the en)108 96 R
-1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
-(hildren. Care)-3.825 F(should be tak)108 108 Q
+-.35 E .326(\214le and line number)108 84 R 2.826(,i)-.4 G 2.826(ft)
+-2.826 G(he)-2.826 E/F1 10/Times-Bold@0 SF(extdeb)2.826 E(ug)-.2 E F0
+.326(shell option is enabled\).)2.826 F .327(Functions may be e)5.327 F
+.327(xported so that subshells)-.15 F 1.298(automatically ha)108 96 R
+1.598 -.15(ve t)-.2 H 1.298(hem de\214ned with the).15 F F1<ad66>3.798 E
+F0 1.298(option to the)3.798 F F1(export)3.797 E F0 -.2(bu)3.797 G 3.797
+(iltin. A).2 F 1.297(function de\214nition may be)3.797 F .16
+(deleted using the)108 108 R F1<ad66>2.66 E F0 .16(option to the)2.66 F
+F1(unset)2.66 E F0 -.2(bu)2.66 G 2.661(iltin. Note).2 F .161
+(that shell functions and v)2.661 F .161(ariables with the same name)
+-.25 F 1.325(may result in multiple identically-named entries in the en)
+108 120 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G
+3.825(hildren. Care)-3.825 F(should be tak)108 132 Q
(en in cases where this may cause a problem.)-.1 E
-(Functions may be recursi)108 124.8 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol)
+(Functions may be recursi)108 148.8 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol)
-5 G(imit is imposed on the number of recursi)-2.5 E .3 -.15(ve c)-.25 H
-(alls.).15 E/F2 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 141.6 Q(ALU)
--1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.297(The shell allo)108 153.6 R
+(alls.).15 E/F2 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 165.6 Q(ALU)
+-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.297(The shell allo)108 177.6 R
2.297(ws arithmetic e)-.25 F 2.297(xpressions to be e)-.15 F -.25(va)
-.25 G 2.297(luated, under certain circumstances \(see the).25 F F1(let)
-4.798 E F0(and)4.798 E F1(declar)108 165.6 Q(e)-.18 E F0 -.2(bu)2.706 G
+4.798 E F0(and)4.798 E F1(declar)108 189.6 Q(e)-.18 E F0 -.2(bu)2.706 G
.206(iltin commands and).2 F F1 .206(Arithmetic Expansion)2.706 F F0
2.705(\). Ev)B .205(aluation is done in \214x)-.25 F .205(ed-width inte)
--.15 F .205(gers with no)-.15 F .428(check for o)108 177.6 R -.15(ve)
+-.15 F .205(gers with no)-.15 F .428(check for o)108 201.6 R -.15(ve)
-.15 G(r\215o).15 E 1.728 -.65(w, t)-.25 H .428(hough di).65 F .428
(vision by 0 is trapped and \215agged as an error)-.25 F 5.429(.T)-.55 G
.429(he operators and their prece-)-5.429 F 1.92(dence, associati)108
-189.6 R(vity)-.25 E 4.42(,a)-.65 G 1.92(nd v)-4.42 F 1.92
+213.6 R(vity)-.25 E 4.42(,a)-.65 G 1.92(nd v)-4.42 F 1.92
(alues are the same as in the C language.)-.25 F 1.919(The follo)6.919 F
-1.919(wing list of operators is)-.25 F(grouped into le)108 201.6 Q -.15
+1.919(wing list of operators is)-.25 F(grouped into le)108 225.6 Q -.15
(ve)-.25 G(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve)
-.25 G(ls are listed in order of decreasing precedence.).15 E/F3 10
-/Times-Italic@0 SF(id)108 218.4 Q F1(++)A F3(id)2.5 E F1<adad>A F0 -.25
-(va)144 230.4 S(riable post-increment and post-decrement).25 E F1(++)108
-242.4 Q F3(id)A F1<adad>2.5 E F3(id)A F0 -.25(va)144 254.4 S
-(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 266.4 S F0
-(unary minus and plus)19.6 E F1 2.5(!~)108 278.4 S F0
+/Times-Italic@0 SF(id)108 242.4 Q F1(++)A F3(id)2.5 E F1<adad>A F0 -.25
+(va)144 254.4 S(riable post-increment and post-decrement).25 E F1(++)108
+266.4 Q F3(id)A F1<adad>2.5 E F3(id)A F0 -.25(va)144 278.4 S
+(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 290.4 S F0
+(unary minus and plus)19.6 E F1 2.5(!~)108 302.4 S F0
(logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108
-290.4 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 302.4 S F0
+314.4 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 326.4 S F0
(multiplication, di)10.72 E(vision, remainder)-.25 E F1 2.5<2bad>108
-314.4 S F0(addition, subtraction)19.6 E F1(<< >>)108 326.4 Q F0
-(left and right bitwise shifts)10.7 E F1(<= >= < >)108 338.4 Q F0
-(comparison)144 350.4 Q F1(== !=)108 362.4 Q F0(equality and inequality)
-13.07 E F1(&)108 374.4 Q F0(bitwise AND)27.67 E F1(^)108 386.4 Q F0
+338.4 S F0(addition, subtraction)19.6 E F1(<< >>)108 350.4 Q F0
+(left and right bitwise shifts)10.7 E F1(<= >= < >)108 362.4 Q F0
+(comparison)144 374.4 Q F1(== !=)108 386.4 Q F0(equality and inequality)
+13.07 E F1(&)108 398.4 Q F0(bitwise AND)27.67 E F1(^)108 410.4 Q F0
(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F1(|)108
-398.4 Q F0(bitwise OR)33.8 E F1(&&)108 410.4 Q F0(logical AND)19.34 E F1
-(||)108 422.4 Q F0(logical OR)31.6 E F3 -.2(ex)108 434.4 S(pr).2 E F1(?)
+422.4 Q F0(bitwise OR)33.8 E F1(&&)108 434.4 Q F0(logical AND)19.34 E F1
+(||)108 446.4 Q F0(logical OR)31.6 E F3 -.2(ex)108 458.4 S(pr).2 E F1(?)
A F3 -.2(ex)C(pr).2 E F1(:)A F3 -.2(ex)C(pr).2 E F0
-(conditional operator)144 446.4 Q F1 2.5(=*)108 458.4 S 2.5(=/)-2.5 G
+(conditional operator)144 470.4 Q F1 2.5(=*)108 482.4 S 2.5(=/)-2.5 G
2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G
-(<= >>= &= ^= |=)-2.5 E F0(assignment)144 470.4 Q F3 -.2(ex)108 482.4 S
-(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 494.4 Q .68
-(Shell v)108 511.2 R .68(ariables are allo)-.25 F .68
+(<= >>= &= ^= |=)-2.5 E F0(assignment)144 494.4 Q F3 -.2(ex)108 506.4 S
+(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 518.4 Q .68
+(Shell v)108 535.2 R .68(ariables are allo)-.25 F .68
(wed as operands; parameter e)-.25 F .68
(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
--.25(va)-.25 G(lu-).25 E 3.508(ated. W)108 523.2 R 1.008(ithin an e)-.4
+-.25(va)-.25 G(lu-).25 E 3.508(ated. W)108 547.2 R 1.008(ithin an e)-.4
F 1.008(xpression, shell v)-.15 F 1.007
(ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 535.2 S 1.04(pansion syntax.).15 F 3.54(As)6.04 G
+-.25 F -.15(ex)108 559.2 S 1.04(pansion syntax.).15 F 3.54(As)6.04 G
1.04(hell v)-3.54 F 1.04(ariable that is null or unset e)-.25 F -.25(va)
-.25 G 1.041(luates to 0 when referenced by name without).25 F 1.467
-(using the parameter e)108 547.2 R 1.467(xpansion syntax.)-.15 F 1.467
+(using the parameter e)108 571.2 R 1.467(xpansion syntax.)-.15 F 1.467
(The v)6.467 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
(va)-.25 G 1.466(luated as an arithmetic e).25 F(xpression)-.15 E 1.389
-(when it is referenced, or when a v)108 559.2 R 1.389
+(when it is referenced, or when a v)108 583.2 R 1.389
(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.89(nt).15 G(he)-3.89
E F3(inte)3.89 E -.1(ge)-.4 G(r).1 E F0(attrib)3.89 E 1.39(ute using)-.2
F F1(declar)3.89 E 3.89(e-)-.18 G(i)-3.89 E F0(is)3.89 E .344
-(assigned a v)108 571.2 R 2.844(alue. A)-.25 F .343(null v)2.843 F .343
+(assigned a v)108 595.2 R 2.844(alue. A)-.25 F .343(null v)2.843 F .343
(alue e)-.25 F -.25(va)-.25 G .343(luates to 0.).25 F 2.843(As)5.343 G
.343(hell v)-2.843 F .343(ariable need not ha)-.25 F .643 -.15(ve i)-.2
H .343(ts inte).15 F .343(ger attrib)-.15 F .343(ute turned on)-.2 F
-(to be used in an e)108 583.2 Q(xpression.)-.15 E 1.406
-(Constants with a leading 0 are interpreted as octal numbers.)108 600 R
+(to be used in an e)108 607.2 Q(xpression.)-.15 E 1.406
+(Constants with a leading 0 are interpreted as octal numbers.)108 624 R
3.906(Al)6.406 G 1.407(eading 0x or 0X denotes he)-3.906 F(xadecimal.)
--.15 E .59(Otherwise, numbers tak)108 612 R 3.09(et)-.1 G .59(he form [)
+-.15 E .59(Otherwise, numbers tak)108 636 R 3.09(et)-.1 G .59(he form [)
-3.09 F F3(base#)A F0 .59(]n, where)B F3(base)3.089 E F0 .589
(is a decimal number between 2 and 64 represent-)3.089 F .092
-(ing the arithmetic base, and)108 624 R F3(n)2.592 E F0 .093
+(ing the arithmetic base, and)108 648 R F3(n)2.592 E F0 .093
(is a number in that base.)2.592 F(If)5.093 E F3(base#)2.593 E F0 .093
(is omitted, then base 10 is used.)2.593 F .093(The digits)5.093 F .065
-(greater than 9 are represented by the lo)108 636 R .064
+(greater than 9 are represented by the lo)108 660 R .064
(wercase letters, the uppercase letters, @, and _, in that order)-.25 F
5.064(.I)-.55 G(f)-5.064 E F3(base)2.564 E F0 .432
-(is less than or equal to 36, lo)108 648 R .433(wercase and uppercase l\
+(is less than or equal to 36, lo)108 672 R .433(wercase and uppercase l\
etters may be used interchangeably to represent num-)-.25 F
-(bers between 10 and 35.)108 660 Q .235(Operators are e)108 676.8 R -.25
+(bers between 10 and 35.)108 684 Q .235(Operators are e)108 700.8 R -.25
(va)-.25 G .235(luated in order of precedence.).25 F(Sub-e)5.234 E .234
(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .234
-(luated \214rst and may).25 F -.15(ove)108 688.8 S
-(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E F2
-(CONDITION)72 705.6 Q(AL EXPRESSIONS)-.219 E F0 .255(Conditional e)108
-717.6 R .255(xpressions are used by the)-.15 F F1([[)2.755 E F0 .255
-(compound command and the)2.755 F F1(test)2.755 E F0(and)2.755 E F1([)
-2.756 E F0 -.2(bu)2.756 G .256(iltin commands to test).2 F .77
-(\214le attrib)108 729.6 R .77
-(utes and perform string and arithmetic comparisons.)-.2 F .77
-(Expressions are formed from the follo)5.77 F(wing)-.25 E(GNU Bash-4.1)
-72 768 Q(2009 September 16)135.125 E(27)185.115 E 0 Cg EP
+(luated \214rst and may).25 F -.15(ove)108 712.8 S
+(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(27)192.895 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 1.04(unary or binary primaries.)108 84 R 1.04(If an)6.04 F(y)-.15
-E/F1 10/Times-Italic@0 SF(\214le)3.54 E F0(ar)3.54 E 1.041
-(gument to one of the primaries is of the form)-.18 F F1(/de)3.541 E
-(v/fd/n)-.15 E F0 3.541(,t)C 1.041(hen \214le)-3.541 F(descriptor)108 96
-Q F1(n)3.789 E F0 1.289(is check)3.789 F 3.789(ed. If)-.1 F(the)3.789 E
-F1(\214le)3.789 E F0(ar)3.789 E 1.289
-(gument to one of the primaries is one of)-.18 F F1(/de)3.789 E(v/stdin)
--.15 E F0(,)A F1(/de)3.788 E(v/stdout)-.15 E F0 3.788(,o)C(r)-3.788 E F1
-(/de)108 108 Q(v/stderr)-.15 E F0 2.5<2c8c>C
+-.35 E/F1 10.95/Times-Bold@0 SF(CONDITION)72 84 Q(AL EXPRESSIONS)-.219 E
+F0 .255(Conditional e)108 96 R .255(xpressions are used by the)-.15 F/F2
+10/Times-Bold@0 SF([[)2.755 E F0 .255(compound command and the)2.755 F
+F2(test)2.755 E F0(and)2.755 E F2([)2.756 E F0 -.2(bu)2.756 G .256
+(iltin commands to test).2 F .77(\214le attrib)108 108 R .77
+(utes and perform string and arithmetic comparisons.)-.2 F .77
+(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.04
+(unary or binary primaries.)108 120 R 1.04(If an)6.04 F(y)-.15 E/F3 10
+/Times-Italic@0 SF(\214le)3.54 E F0(ar)3.54 E 1.041
+(gument to one of the primaries is of the form)-.18 F F3(/de)3.541 E
+(v/fd/n)-.15 E F0 3.541(,t)C 1.041(hen \214le)-3.541 F(descriptor)108
+132 Q F3(n)3.789 E F0 1.289(is check)3.789 F 3.789(ed. If)-.1 F(the)
+3.789 E F3(\214le)3.789 E F0(ar)3.789 E 1.289
+(gument to one of the primaries is one of)-.18 F F3(/de)3.789 E(v/stdin)
+-.15 E F0(,)A F3(/de)3.788 E(v/stdout)-.15 E F0 3.788(,o)C(r)-3.788 E F3
+(/de)108 144 Q(v/stderr)-.15 E F0 2.5<2c8c>C
(le descriptor 0, 1, or 2, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5
(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .721
(Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 124.8 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
--3.221 F(get)-.18 E(of the link, rather than the link itself.)108 136.8
-Q/F2 10/Times-Bold@0 SF<ad61>108 160.8 Q F1(\214le)2.5 E F0 -.35(Tr)
-10.58 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F2
-<ad62>108 172.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a block special \214le.).15 E
-F2<ad63>108 184.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a character special \214le.)
-.15 E F2<ad64>108 196.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E
-F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a directory).15 E(.)-.65 E
-F2<ad65>108 208.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F2<ad66>108 220.8 Q F1
-(\214le)2.5 E F0 -.35(Tr)12.25 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is a re).15 E(gular \214le.)-.15 E F2<ad67>108 232.8 Q F1
-(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is set-group-id.).15 E F2<ad68>108 244.8 Q F1(\214le)2.5
-E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F2<ad6b>108 256.8 Q F1(\214le)2.5 E
-F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
+108 160.8 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 172.8
+Q F2<ad61>108 196.8 Q F3(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F3
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F2<ad62>108 208.8 Q F3
+(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a block special \214le.).15 E F2<ad63>108 220.8 Q F3
+(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a character special \214le.).15 E F2<ad64>108 232.8 Q
+F3(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F3(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F2<ad65>108 244.8 Q F3
+(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists.).15 E F2<ad66>108 256.8 Q F3(\214le)2.5 E F0 -.35(Tr)12.25 G
+(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E
+(gular \214le.)-.15 E F2<ad67>108 268.8 Q F3(\214le)2.5 E F0 -.35(Tr)
+10.58 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is set-group-id.).15 E F2<ad68>108 280.8 Q F3(\214le)2.5 E F0
+-.35(Tr)10.02 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a symbolic link.).15 E F2<ad6b>108 292.8 Q F3(\214le)2.5 E
+F0 -.35(Tr)10.02 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G
(ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.)
--2.5 E F2<ad70>108 268.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35
-E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).)
-.15 E F2<ad72>108 280.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E
-F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F2<ad73>108
-292.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F1(\214le)2.5 E
+-2.5 E F2<ad70>108 304.8 Q F3(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35
+E F3(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).)
+.15 E F2<ad72>108 316.8 Q F3(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E
+F3(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F2<ad73>108
+328.8 Q F3(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F3(\214le)2.5 E
F0 -.15(ex)2.5 G(ists and has a size greater than zero.).15 E F2<ad74>
-108 304.8 Q F1(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E
-F1(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F2<ad75>108
-316.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E
+108 340.8 Q F3(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E
+F3(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F2<ad75>108
+352.8 Q F3(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F3(\214le)2.5 E
F0 -.15(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F2
-<ad77>108 328.8 Q F1(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1
+<ad77>108 364.8 Q F3(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F3
(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is writable.).15 E F2<ad78>108
-340.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E
+376.8 Q F3(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F3(\214le)2.5 E
F0 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F2
-<ad4f>108 352.8 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1
+<ad4f>108 388.8 Q F3(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F3
(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E
-(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F2<ad47>108 364.8 Q F1
-(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
+(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F2<ad47>108 400.8 Q F3
+(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)
2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15
-(ve g)-.25 H(roup id.).15 E F2<ad4c>108 376.8 Q F1(\214le)2.5 E F0 -.35
-(Tr)8.91 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F2<ad53>108 388.8 Q F1(\214le)2.5 E
-F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a sock).15 E(et.)-.1 E F2<ad4e>108 400.8 Q F1(\214le)2.5 E
-F0 -.35(Tr)8.36 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F1
-(\214le1)108 412.8 Q F0<ad>2.5 E F2(nt)A F1(\214le2)2.5 E F0 -.35(Tr)144
-424.8 S .039(ue if).35 F F1(\214le1)2.539 E F0 .039(is ne)2.539 F .039
-(wer \(according to modi\214cation date\) than)-.25 F F1(\214le2)2.539 E
-F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F1(\214le1)2.539 E F0 -.15
-(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .038(does not.)
-2.538 F F1(\214le1)108 436.8 Q F0<ad>2.5 E F2(ot)A F1(\214le2)2.5 E F0
--.35(Tr)144 448.8 S(ue if).35 E F1(\214le1)2.5 E F0(is older than)2.5 E
-F1(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F1(\214le2)2.5 E F0
--.15(ex)2.5 G(ists and).15 E F1(\214le1)2.5 E F0(does not.)2.5 E F1
-(\214le1)108 460.8 Q F2(\255ef)2.5 E F1(\214le2)2.5 E F0 -.35(Tr)144
-472.8 S(ue if).35 E F1(\214le1)2.5 E F0(and)2.5 E F1(\214le2)2.5 E F0
+(ve g)-.25 H(roup id.).15 E F2<ad4c>108 412.8 Q F3(\214le)2.5 E F0 -.35
+(Tr)8.91 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a symbolic link.).15 E F2<ad53>108 424.8 Q F3(\214le)2.5 E
+F0 -.35(Tr)10.02 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a sock).15 E(et.)-.1 E F2<ad4e>108 436.8 Q F3(\214le)2.5 E
+F0 -.35(Tr)8.36 G(ue if).35 E F3(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F3
+(\214le1)108 448.8 Q F0<ad>2.5 E F2(nt)A F3(\214le2)2.5 E F0 -.35(Tr)144
+460.8 S .039(ue if).35 F F3(\214le1)2.539 E F0 .039(is ne)2.539 F .039
+(wer \(according to modi\214cation date\) than)-.25 F F3(\214le2)2.539 E
+F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F3(\214le1)2.539 E F0 -.15
+(ex)2.539 G .039(ists and).15 F F3(\214le2)2.539 E F0 .038(does not.)
+2.538 F F3(\214le1)108 472.8 Q F0<ad>2.5 E F2(ot)A F3(\214le2)2.5 E F0
+-.35(Tr)144 484.8 S(ue if).35 E F3(\214le1)2.5 E F0(is older than)2.5 E
+F3(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F3(\214le2)2.5 E F0
+-.15(ex)2.5 G(ists and).15 E F3(\214le1)2.5 E F0(does not.)2.5 E F3
+(\214le1)108 496.8 Q F2(\255ef)2.5 E F3(\214le2)2.5 E F0 -.35(Tr)144
+508.8 S(ue if).35 E F3(\214le1)2.5 E F0(and)2.5 E F3(\214le2)2.5 E F0
(refer to the same de)2.5 E(vice and inode numbers.)-.25 E F2<ad6f>108
-484.8 Q F1(optname)2.5 E F0 -.35(Tr)144 496.8 S 1.143
-(ue if shell option).35 F F1(optname)3.873 E F0 1.143(is enabled.)3.823
+520.8 Q F3(optname)2.5 E F0 -.35(Tr)144 532.8 S 1.143
+(ue if shell option).35 F F3(optname)3.873 E F0 1.143(is enabled.)3.823
F 1.144(See the list of options under the description of the)6.143 F F2
-<ad6f>3.644 E F0(option to the)144 508.8 Q F2(set)2.5 E F0 -.2(bu)2.5 G
-(iltin belo).2 E -.65(w.)-.25 G F2<ad7a>108 520.8 Q F1(string)2.5 E F0
--.35(Tr)144 532.8 S(ue if the length of).35 E F1(string)2.5 E F0
-(is zero.)2.5 E F1(string)108 544.8 Q F2<ad6e>108 556.8 Q F1(string)2.5
-E F0 -.35(Tr)144 568.8 S(ue if the length of).35 E F1(string)2.84 E F0
-(is non-zero.)2.72 E F1(string1)108 585.6 Q F2(==)2.5 E F1(string2)2.5 E
-F0 -.35(Tr)144 597.6 S(ue if the strings are equal.).35 E F2(=)5 E F0
+<ad6f>3.644 E F0(option to the)144 544.8 Q F2(set)2.5 E F0 -.2(bu)2.5 G
+(iltin belo).2 E -.65(w.)-.25 G F2<ad7a>108 556.8 Q F3(string)2.5 E F0
+-.35(Tr)144 568.8 S(ue if the length of).35 E F3(string)2.5 E F0
+(is zero.)2.5 E F3(string)108 580.8 Q F2<ad6e>108 592.8 Q F3(string)2.5
+E F0 -.35(Tr)144 604.8 S(ue if the length of).35 E F3(string)2.84 E F0
+(is non-zero.)2.72 E F3(string1)108 621.6 Q F2(==)2.5 E F3(string2)2.5 E
+F0 -.35(Tr)144 633.6 S(ue if the strings are equal.).35 E F2(=)5 E F0
(may be used in place of)2.5 E F2(==)2.5 E F0
-(for strict POSIX compliance.)2.5 E F1(string1)108 614.4 Q F2(!=)2.5 E
-F1(string2)2.5 E F0 -.35(Tr)144 626.4 S
-(ue if the strings are not equal.).35 E F1(string1)108 643.2 Q F2(<)2.5
-E F1(string2)2.5 E F0 -.35(Tr)144 655.2 S(ue if).35 E F1(string1)2.5 E
-F0(sorts before)2.5 E F1(string2)2.5 E F0(le)2.5 E(xicographically)-.15
-E(.)-.65 E F1(string1)108 672 Q F2(>)2.5 E F1(string2)2.5 E F0 -.35(Tr)
-144 684 S(ue if).35 E F1(string1)2.5 E F0(sorts after)2.5 E F1(string2)
-2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E F1(ar)108.33 700.8 Q
-(g1)-.37 E F2(OP)2.5 E F1(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP)144
-712.8 Q F0 .385(is one of)2.635 F F2(\255eq)2.885 E F0(,)A F2(\255ne)
-2.885 E F0(,)A F2(\255lt)2.885 E F0(,)A F2(\255le)2.885 E F0(,)A F2
-(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F2(\255ge)2.885 E F0 5.385(.T)C
-.385(hese arithmetic binary operators return true if)-5.385 F F1(ar)
-2.884 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, less th\
-an or equal to, greater than, or greater than or equal to)144 724.8 R
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(28)185.115 E 0 Cg EP
+(for strict POSIX compliance.)2.5 E F3(string1)108 650.4 Q F2(!=)2.5 E
+F3(string2)2.5 E F0 -.35(Tr)144 662.4 S
+(ue if the strings are not equal.).35 E F3(string1)108 679.2 Q F2(<)2.5
+E F3(string2)2.5 E F0 -.35(Tr)144 691.2 S(ue if).35 E F3(string1)2.5 E
+F0(sorts before)2.5 E F3(string2)2.5 E F0(le)2.5 E(xicographically)-.15
+E(.)-.65 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(28)192.895 E 0
+Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Italic@0 SF(ar)144 84 Q(g2)-.37 E F0 2.5(,r)C
-(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)-.65 E F1(Ar)6.01 E(g1)-.37 E
-F0(and)2.5 E F1(ar)2.83 E(g2)-.37 E F0(may be positi)2.52 E .3 -.15
-(ve o)-.25 H 2.5(rn).15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve i)
--.25 H(nte).15 E(gers.)-.15 E/F2 10.95/Times-Bold@0 SF
-(SIMPLE COMMAND EXP)72 100.8 Q(ANSION)-.81 E F0 .614
-(When a simple command is e)108 112.8 R -.15(xe)-.15 G .614
+-.35 E/F1 10/Times-Italic@0 SF(string1)108 84 Q/F2 10/Times-Bold@0 SF(>)
+2.5 E F1(string2)2.5 E F0 -.35(Tr)144 96 S(ue if).35 E F1(string1)2.5 E
+F0(sorts after)2.5 E F1(string2)2.5 E F0(le)2.5 E(xicographically)-.15 E
+(.)-.65 E F1(ar)108.33 112.8 Q(g1)-.37 E F2(OP)2.5 E F1(ar)2.5 E(g2)-.37
+E/F3 9/Times-Bold@0 SF(OP)144 124.8 Q F0 .385(is one of)2.635 F F2
+(\255eq)2.885 E F0(,)A F2(\255ne)2.885 E F0(,)A F2(\255lt)2.885 E F0(,)A
+F2(\255le)2.885 E F0(,)A F2(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F2
+(\255ge)2.885 E F0 5.385(.T)C .385
+(hese arithmetic binary operators return true if)-5.385 F F1(ar)2.884 E
+(g1)-.37 E F0 .845(is equal to, not equal to, less than, less than or e\
+qual to, greater than, or greater than or equal to)144 136.8 R F1(ar)144
+148.8 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)
+-.65 E F1(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F1(ar)2.83 E(g2)-.37 E F0
+(may be positi)2.52 E .3 -.15(ve o)-.25 H 2.5(rn).15 G -2.25 -.15(eg a)
+-2.5 H(ti).15 E .3 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E/F4 10.95
+/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 165.6 Q(ANSION)-.81 E F0 .614
+(When a simple command is e)108 177.6 R -.15(xe)-.15 G .614
(cuted, the shell performs the follo).15 F .613(wing e)-.25 F .613
(xpansions, assignments, and redi-)-.15 F(rections, from left to right.)
-108 124.8 Q 26(1. The)108 141.6 R -.1(wo)4.348 G 1.848
+108 189.6 Q 26(1. The)108 206.4 R -.1(wo)4.348 G 1.848
(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.849
(ariable assignments \(those preceding the command)-.25 F
-(name\) and redirections are sa)144 153.6 Q -.15(ve)-.2 G 2.5(df).15 G
-(or later processing.)-2.5 E 26(2. The)108 170.4 R -.1(wo)3.664 G 1.164
+(name\) and redirections are sa)144 218.4 Q -.15(ve)-.2 G 2.5(df).15 G
+(or later processing.)-2.5 E 26(2. The)108 235.2 R -.1(wo)3.664 G 1.164
(rds that are not v).1 F 1.164
(ariable assignments or redirections are e)-.25 F 3.663(xpanded. If)-.15
F(an)3.663 E 3.663(yw)-.15 G 1.163(ords remain)-3.763 F .775(after e)144
-182.4 R .775(xpansion, the \214rst w)-.15 F .775(ord is tak)-.1 F .775
+247.2 R .775(xpansion, the \214rst w)-.15 F .775(ord is tak)-.1 F .775
(en to be the name of the command and the remaining w)-.1 F(ords)-.1 E
-(are the ar)144 194.4 Q(guments.)-.18 E 26(3. Redirections)108 211.2 R
-(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E/F3
-9/Times-Bold@0 SF(REDIRECTION)2.5 E/F4 9/Times-Roman@0 SF(.)A F0 26
-(4. The)108 228 R(te)3.217 E .717(xt after the)-.15 F/F5 10/Times-Bold@0
-SF(=)3.217 E F0 .717(in each v)3.217 F .717(ariable assignment under)
--.25 F .717(goes tilde e)-.18 F .717(xpansion, parameter e)-.15 F
-(xpansion,)-.15 E .339(command substitution, arithmetic e)144 240 R .339
+(are the ar)144 259.2 Q(guments.)-.18 E 26(3. Redirections)108 276 R
+(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F3
+(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 292.8 R
+(te)3.217 E .717(xt after the)-.15 F F2(=)3.217 E F0 .717(in each v)
+3.217 F .717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F
+.717(xpansion, parameter e)-.15 F(xpansion,)-.15 E .339
+(command substitution, arithmetic e)144 304.8 R .339
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
-(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 252 Q .332
-(If no command name results, the v)108 268.8 R .332
+(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 316.8 Q
+.332(If no command name results, the v)108 333.6 R .332
(ariable assignments af)-.25 F .332(fect the current shell en)-.25 F
-2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 280.8 S .757
+2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 345.6 S .757
(riables are added to the en).25 F .757(vironment of the e)-.4 F -.15
(xe)-.15 G .757(cuted command and do not af).15 F .757
-(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 292.8
+(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 357.6
R(an)3.177 E 3.177(yo)-.15 G 3.177(ft)-3.177 G .677
(he assignments attempts to assign a v)-3.177 F .677
(alue to a readonly v)-.25 F .676(ariable, an error occurs, and)-.25 F
-(the command e)108 304.8 Q(xits with a non-zero status.)-.15 E .149
-(If no command name results, redirections are performed, b)108 321.6 R
+(the command e)108 369.6 Q(xits with a non-zero status.)-.15 E .149
+(If no command name results, redirections are performed, b)108 386.4 R
.149(ut do not af)-.2 F .15(fect the current shell en)-.25 F 2.65
-(vironment. A)-.4 F(redirection error causes the command to e)108 333.6
+(vironment. A)-.4 F(redirection error causes the command to e)108 398.4
Q(xit with a non-zero status.)-.15 E 1.064
-(If there is a command name left after e)108 350.4 R 1.064(xpansion, e)
+(If there is a command name left after e)108 415.2 R 1.064(xpansion, e)
-.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F
4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .068(command e)108
-362.4 R 2.568(xits. If)-.15 F .069(one of the e)2.568 F .069
+427.2 R 2.568(xits. If)-.15 F .069(one of the e)2.568 F .069
(xpansions contained a command substitution, the e)-.15 F .069
-(xit status of the command)-.15 F .467(is the e)108 374.4 R .466
+(xit status of the command)-.15 F .467(is the e)108 439.2 R .466
(xit status of the last command substitution performed.)-.15 F .466
-(If there were no command substitutions, the)5.466 F(command e)108 386.4
-Q(xits with a status of zero.)-.15 E F2(COMMAND EXECUTION)72 403.2 Q F0
-.546(After a command has been split into w)108 415.2 R .547
+(If there were no command substitutions, the)5.466 F(command e)108 451.2
+Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 468 Q F0
+.546(After a command has been split into w)108 480 R .547
(ords, if it results in a simple command and an optional list of ar)-.1
-F(gu-)-.18 E(ments, the follo)108 427.2 Q(wing actions are tak)-.25 E
-(en.)-.1 E .379(If the command name contains no slashes, the shell atte\
-mpts to locate it.)108 444 R .379(If there e)5.379 F .379
+F(gu-)-.18 E(ments, the follo)108 492 Q(wing actions are tak)-.25 E(en.)
+-.1 E .379(If the command name contains no slashes, the shell attempts \
+to locate it.)108 508.8 R .379(If there e)5.379 F .379
(xists a shell function by)-.15 F .246(that name, that function is in)
-108 456 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G .246
-(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)2.746
-E F4(.)A F0 .246(If the name does not match a func-)4.746 F
-(tion, the shell searches for it in the list of shell b)108 468 Q 2.5
+108 520.8 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
+.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)
+2.746 E F5(.)A F0 .246(If the name does not match a func-)4.746 F
+(tion, the shell searches for it in the list of shell b)108 532.8 Q 2.5
(uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E
(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .31
-(If the name is neither a shell function nor a b)108 484.8 R .309
-(uiltin, and contains no slashes,)-.2 F F5(bash)2.809 E F0 .309
-(searches each element of)2.809 F(the)108 496.8 Q F3 -.666(PA)3.162 G
+(If the name is neither a shell function nor a b)108 549.6 R .309
+(uiltin, and contains no slashes,)-.2 F F2(bash)2.809 E F0 .309
+(searches each element of)2.809 F(the)108 561.6 Q F3 -.666(PA)3.162 G
(TH)-.189 E F0 .662(for a directory containing an e)2.912 F -.15(xe)-.15
-G .662(cutable \214le by that name.).15 F F5(Bash)5.662 E F0 .663
+G .662(cutable \214le by that name.).15 F F2(Bash)5.662 E F0 .663
(uses a hash table to remember)3.162 F 1.915(the full pathnames of e)108
-508.8 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F5(hash)4.415 E
+573.6 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F2(hash)4.415 E
F0(under)4.415 E F3 1.915(SHELL B)4.415 F(UIL)-.09 E 1.914(TIN COMMANDS)
-.828 F F0(belo)4.164 E 4.414(w\). A)-.25 F(full)4.414 E .719
-(search of the directories in)108 520.8 R F3 -.666(PA)3.219 G(TH)-.189 E
+(search of the directories in)108 585.6 R F3 -.666(PA)3.219 G(TH)-.189 E
F0 .72(is performed only if the command is not found in the hash table.)
2.969 F .72(If the)5.72 F .956(search is unsuccessful, the shell search\
-es for a de\214ned shell function named)108 532.8 R F5(command_not_f)
-3.455 E(ound_han-)-.25 E(dle)108 544.8 Q F0 5.277(.I)C 2.777(ft)-5.277 G
+es for a de\214ned shell function named)108 597.6 R F2(command_not_f)
+3.455 E(ound_han-)-.25 E(dle)108 609.6 Q F0 5.277(.I)C 2.777(ft)-5.277 G
.277(hat function e)-2.777 F .277(xists, it is in)-.15 F -.2(vo)-.4 G
-.1(ke).2 G 2.777(dw).1 G .278
(ith the original command and the original command')-2.777 F 2.778(sa)
--.55 G -.18(rg)-2.778 G(uments).18 E .776(as its ar)108 556.8 R .776
+-.55 G -.18(rg)-2.778 G(uments).18 E .776(as its ar)108 621.6 R .776
(guments, and the function')-.18 F 3.275(se)-.55 G .775
(xit status becomes the e)-3.425 F .775(xit status of the shell.)-.15 F
.775(If that function is not)5.775 F
-(de\214ned, the shell prints an error message and returns an e)108 568.8
+(de\214ned, the shell prints an error message and returns an e)108 633.6
Q(xit status of 127.)-.15 E 1.089(If the search is successful, or if th\
-e command name contains one or more slashes, the shell e)108 585.6 R
+e command name contains one or more slashes, the shell e)108 650.4 R
-.15(xe)-.15 G 1.09(cutes the).15 F .198(named program in a separate e)
-108 597.6 R -.15(xe)-.15 G .198(cution en).15 F 2.698(vironment. Ar)-.4
+108 662.4 R -.15(xe)-.15 G .198(cution en).15 F 2.698(vironment. Ar)-.4
F .198(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .197
-(n, and the remain-).15 F(ing ar)108 609.6 Q
+(n, and the remain-).15 F(ing ar)108 674.4 Q
(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
-(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 626.4 R
+(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 691.2 R
-.15(xe)-.15 G 1.809(cution f).15 F 1.809
(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.809
(cutable format, and the \214le is not a directory).15 F 4.309(,i)-.65 G
-4.309(ti)-4.309 G(s)-4.309 E .678(assumed to be a)108 638.4 R F1 .678
+4.309(ti)-4.309 G(s)-4.309 E .678(assumed to be a)108 703.2 R F1 .678
(shell script)3.178 F F0 3.178(,a\214)C .678
(le containing shell commands.)-3.178 F 3.178(As)5.678 G .678
(ubshell is spa)-3.178 F .677(wned to e)-.15 F -.15(xe)-.15 G .677
(cute it.).15 F(This)5.677 E .329
-(subshell reinitializes itself, so that the ef)108 650.4 R .329
+(subshell reinitializes itself, so that the ef)108 715.2 R .329
(fect is as if a ne)-.25 F 2.83(ws)-.25 G .33(hell had been in)-2.83 F
-.2(vo)-.4 G -.1(ke).2 G 2.83(dt).1 G 2.83(oh)-2.83 G .33
-(andle the script, with)-2.83 F 1.219(the e)108 662.4 R 1.219
+(andle the script, with)-2.83 F 1.219(the e)108 727.2 R 1.219
(xception that the locations of commands remembered by the parent \(see)
--.15 F F5(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F3
-(SHELL)3.719 E -.09(BU)108 674.4 S(IL).09 E(TIN COMMANDS)-.828 E F4(\))A
-F0(are retained by the child.)2.25 E .347(If the program is a \214le be)
-108 691.2 R .347(ginning with)-.15 F F5(#!)2.847 E F0 2.847(,t)C .348(h\
-e remainder of the \214rst line speci\214es an interpreter for the pro-)
--2.847 F 3.178(gram. The)108 703.2 R .678(shell e)3.178 F -.15(xe)-.15 G
-.678(cutes the speci\214ed interpreter on operating systems that do not\
- handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.192(format themselv)
-108 715.2 R 3.692(es. The)-.15 F(ar)3.693 E 1.193
-(guments to the interpreter consist of a single optional ar)-.18 F 1.193
-(gument follo)-.18 F 1.193(wing the)-.25 F 1.131
-(interpreter name on the \214rst line of the program, follo)108 727.2 R
-1.13(wed by the name of the program, follo)-.25 F 1.13(wed by the)-.25 F
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(29)185.115 E 0 Cg EP
+-.15 F F2(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F3
+(SHELL)3.719 E F0(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(29)
+192.895 E 0 Cg EP
%%Page: 30 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(command ar)108 84 Q(guments, if an)-.18 E -.65(y.)-.15 G/F1 10.95
-/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 100.8 Q(ONMENT)-.329 E F0
-(The shell has an)108 112.8 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G
+-.35 E/F1 9/Times-Bold@0 SF -.09(BU)108 84 S(IL).09 E(TIN COMMANDS)-.828
+E/F2 9/Times-Roman@0 SF(\))A F0(are retained by the child.)2.25 E .347
+(If the program is a \214le be)108 100.8 R .347(ginning with)-.15 F/F3
+10/Times-Bold@0 SF(#!)2.847 E F0 2.847(,t)C .348(he remainder of the \
+\214rst line speci\214es an interpreter for the pro-)-2.847 F 3.178
+(gram. The)108 112.8 R .678(shell e)3.178 F -.15(xe)-.15 G .678(cutes t\
+he speci\214ed interpreter on operating systems that do not handle this\
+ e).15 F -.15(xe)-.15 G(cutable).15 E 1.192(format themselv)108 124.8 R
+3.692(es. The)-.15 F(ar)3.693 E 1.193
+(guments to the interpreter consist of a single optional ar)-.18 F 1.193
+(gument follo)-.18 F 1.193(wing the)-.25 F 1.131
+(interpreter name on the \214rst line of the program, follo)108 136.8 R
+1.13(wed by the name of the program, follo)-.25 F 1.13(wed by the)-.25 F
+(command ar)108 148.8 Q(guments, if an)-.18 E -.65(y.)-.15 G/F4 10.95
+/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 165.6 Q(ONMENT)-.329 E F0
+(The shell has an)108 177.6 Q/F5 10/Times-Italic@0 SF -.2(ex)2.5 G
(ecution en).2 E(vir)-.4 E(onment)-.45 E F0 2.5(,w)C
-(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108 141.6 S
+(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108 206.4 S
1.405(pen \214les inherited by the shell at in)-32.5 F -.2(vo)-.4 G
-1.406(cation, as modi\214ed by redirections supplied to the).2 F/F3 10
-/Times-Bold@0 SF(exec)3.906 E F0 -.2(bu)144 153.6 S(iltin).2 E 32.5
-<8374>108 170.4 S(he current w)-32.5 E(orking directory as set by)-.1 E
-F3(cd)2.5 E F0(,)A F3(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F3(popd)2.5 E F0
-2.5(,o)C 2.5(ri)-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G
-(cation).2 E 32.5<8374>108 187.2 S
-(he \214le creation mode mask as set by)-32.5 E F3(umask)2.5 E F0
-(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)-2.5 E 32.5
-<8363>108 204 S(urrent traps set by)-32.5 E F3(trap)2.5 E F0 32.5<8373>
-108 220.8 S .257(hell parameters that are set by v)-32.5 F .256
+1.406(cation, as modi\214ed by redirections supplied to the).2 F F3
+(exec)3.906 E F0 -.2(bu)144 218.4 S(iltin).2 E 32.5<8374>108 235.2 S
+(he current w)-32.5 E(orking directory as set by)-.1 E F3(cd)2.5 E F0(,)
+A F3(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F3(popd)2.5 E F0 2.5(,o)C 2.5(ri)
+-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E 32.5
+<8374>108 252 S(he \214le creation mode mask as set by)-32.5 E F3(umask)
+2.5 E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)-2.5 E
+32.5<8363>108 268.8 S(urrent traps set by)-32.5 E F3(trap)2.5 E F0 32.5
+<8373>108 285.6 S .257(hell parameters that are set by v)-32.5 F .256
(ariable assignment or with)-.25 F F3(set)2.756 E F0 .256
(or inherited from the shell')2.756 F 2.756(sp)-.55 G(arent)-2.756 E
-(in the en)144 232.8 Q(vironment)-.4 E 32.5<8373>108 249.6 S
+(in the en)144 297.6 Q(vironment)-.4 E 32.5<8373>108 314.4 S
(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G
(cution or inherited from the shell').15 E 2.5(sp)-.55 G
-(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 266.4 S
+(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 331.2 S
(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E
(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F3(set)2.5 E
-F0 32.5<836f>108 283.2 S(ptions enabled by)-32.5 E F3(shopt)2.5 E F0
-32.5<8373>108 300 S(hell aliases de\214ned with)-32.5 E F3(alias)2.5 E
-F0 32.5<8376>108 316.8 S
+F0 32.5<836f>108 348 S(ptions enabled by)-32.5 E F3(shopt)2.5 E F0 32.5
+<8373>108 364.8 S(hell aliases de\214ned with)-32.5 E F3(alias)2.5 E F0
+32.5<8376>108 381.6 S
(arious process IDs, including those of background jobs, the v)-32.75 E
(alue of)-.25 E F3($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
-F3($PPID)2.5 E F0 .426(When a simple command other than a b)108 333.6 R
+F3($PPID)2.5 E F0 .426(When a simple command other than a b)108 398.4 R
.427(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .427
(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.927(di).1 G 2.927(nas)
--2.927 G(eparate)-2.927 E -.15(exe)108 345.6 S .134(cution en).15 F .134
+-2.927 G(eparate)-2.927 E -.15(exe)108 410.4 S .134(cution en).15 F .134
(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
.133(otherwise noted, the v)2.634 F .133(alues are inherited from)-.25 F
-(the shell.)108 357.6 Q 32.5<8374>108 386.4 S 1.055(he shell')-32.5 F
+(the shell.)108 422.4 Q 32.5<8374>108 451.2 S 1.055(he shell')-32.5 F
3.555(so)-.55 G 1.055(pen \214les, plus an)-3.555 F 3.556(ym)-.15 G
1.056
(odi\214cations and additions speci\214ed by redirections to the com-)
--3.556 F(mand)144 398.4 Q 32.5<8374>108 415.2 S(he current w)-32.5 E
-(orking directory)-.1 E 32.5<8374>108 432 S
-(he \214le creation mode mask)-32.5 E 32.5<8373>108 448.8 S .857(hell v)
+-3.556 F(mand)144 463.2 Q 32.5<8374>108 480 S(he current w)-32.5 E
+(orking directory)-.1 E 32.5<8374>108 496.8 S
+(he \214le creation mode mask)-32.5 E 32.5<8373>108 513.6 S .857(hell v)
-32.5 F .857(ariables and functions mark)-.25 F .857(ed for e)-.1 F .857
(xport, along with v)-.15 F .857(ariables e)-.25 F .857
-(xported for the command,)-.15 F(passed in the en)144 460.8 Q(vironment)
--.4 E 32.5<8374>108 477.6 S .306
+(xported for the command,)-.15 F(passed in the en)144 525.6 Q(vironment)
+-.4 E 32.5<8374>108 542.4 S .306
(raps caught by the shell are reset to the v)-32.5 F .307
(alues inherited from the shell')-.25 F 2.807(sp)-.55 G .307
-(arent, and traps ignored)-2.807 F(by the shell are ignored)144 489.6 Q
-2.5(Ac)108 506.4 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
+(arent, and traps ignored)-2.807 F(by the shell are ignored)144 554.4 Q
+2.5(Ac)108 571.2 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
(fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E
(vironment.)-.4 E .577(Command substitution, commands grouped with pare\
-ntheses, and asynchronous commands are in)108 523.2 R -.2(vo)-.4 G -.1
-(ke).2 G 3.077(di).1 G(n)-3.077 E 2.744(as)108 535.2 S .244(ubshell en)
--2.744 F .244(vironment that is a duplicate of the shell en)-.4 F .245
+ntheses, and asynchronous commands are in)108 588 R -.2(vo)-.4 G -.1(ke)
+.2 G 3.077(di).1 G(n)-3.077 E 2.744(as)108 600 S .244(ubshell en)-2.744
+F .244(vironment that is a duplicate of the shell en)-.4 F .245
(vironment, e)-.4 F .245(xcept that traps caught by the shell are)-.15 F
-.359(reset to the v)108 547.2 R .358
+.359(reset to the v)108 612 R .358
(alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4
G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo)
--.4 G -.1(ke).2 G(d).1 E .856(as part of a pipeline are also e)108 559.2
-R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.357
+-.4 G -.1(ke).2 G(d).1 E .856(as part of a pipeline are also e)108 624 R
+-.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.357
(vironment. Changes)-.4 F .857(made to the subshell en)3.357 F(viron-)
--.4 E(ment cannot af)108 571.2 Q(fect the shell')-.25 E 2.5(se)-.55 G
--.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.377(Subshells spa)108
-588 R 1.377(wned to e)-.15 F -.15(xe)-.15 G 1.377
+-.4 E(ment cannot af)108 636 Q(fect the shell')-.25 E 2.5(se)-.55 G -.15
+(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.377(Subshells spa)108
+652.8 R 1.377(wned to e)-.15 F -.15(xe)-.15 G 1.377
(cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F
F3<ad65>3.876 E F0 1.376(option from the parent)3.876 F 2.5(shell. When)
-108 600 R(not in posix mode, Bash clears the)2.5 E F3<ad65>2.5 E F0
-(option in such subshells.)2.5 E .404(If a command is follo)108 616.8 R
+108 664.8 R(not in posix mode, Bash clears the)2.5 E F3<ad65>2.5 E F0
+(option in such subshells.)2.5 E .404(If a command is follo)108 681.6 R
.404(wed by a)-.25 F F3(&)2.904 E F0 .405(and job control is not acti)
2.904 F -.15(ve)-.25 G 2.905(,t).15 G .405(he def)-2.905 F .405
(ault standard input for the command)-.1 F .198(is the empty \214le)108
-628.8 R F2(/de)2.698 E(v/null)-.15 E F0 5.198(.O)C .198
+693.6 R F5(/de)2.698 E(v/null)-.15 E F0 5.198(.O)C .198
(therwise, the in)-5.198 F -.2(vo)-.4 G -.1(ke).2 G 2.698(dc).1 G .197
(ommand inherits the \214le descriptors of the calling shell)-2.698 F
-(as modi\214ed by redirections.)108 640.8 Q F1(ENVIR)72 657.6 Q(ONMENT)
--.329 E F0 2.353(When a program is in)108 669.6 R -.2(vo)-.4 G -.1(ke).2
-G 4.853(di).1 G 4.853(ti)-4.853 G 4.853(sg)-4.853 G -2.15 -.25(iv e)
--4.853 H 4.853(na).25 G 4.853(na)-4.853 G 2.353
-(rray of strings called the)-4.853 F F2(en)4.853 E(vir)-.4 E(onment)-.45
-E F0 7.353(.T).68 G 2.354(his is a list of)-7.353 F F2(name)108 681.6 Q
-F0<ad>A F2(value)A F0(pairs, of the form)2.5 E F2(name)2.5 E F0(=)A F2
-(value)A F0(.).18 E 1.486(The shell pro)108 698.4 R 1.486(vides se)-.15
-F -.15(ve)-.25 G 1.486(ral w).15 F 1.485(ays to manipulate the en)-.1 F
-3.985(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.485
-(cation, the shell scans its o).2 F(wn)-.25 E(en)108 710.4 Q .144(viron\
-ment and creates a parameter for each name found, automatically marking\
- it for)-.4 F F2 -.2(ex)2.644 G(port).2 E F0 .144(to child pro-)3.324 F
-5.289(cesses. Ex)108 722.4 R 2.789(ecuted commands inherit the en)-.15 F
-5.288(vironment. The)-.4 F F3(export)5.288 E F0(and)5.288 E F3(declar)
-5.288 E 5.288<65ad>-.18 G(x)-5.288 E F0 2.788(commands allo)5.288 F(w)
--.25 E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(30)185.115 E 0
-Cg EP
+(as modi\214ed by redirections.)108 705.6 Q(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(30)192.895 E 0 Cg EP
%%Page: 31 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .646
-(parameters and functions to be added to and deleted from the en)108 84
-R 3.147(vironment. If)-.4 F .647(the v)3.147 F .647
-(alue of a parameter in)-.25 F .514(the en)108 96 R .513
-(vironment is modi\214ed, the ne)-.4 F 3.013(wv)-.25 G .513
-(alue becomes part of the en)-3.263 F .513
-(vironment, replacing the old.)-.4 F .513(The en)5.513 F(vi-)-.4 E .522
-(ronment inherited by an)108 108 R 3.022(ye)-.15 G -.15(xe)-3.172 G .522
-(cuted command consists of the shell').15 F 3.022(si)-.55 G .522
-(nitial en)-3.022 F .522(vironment, whose v)-.4 F .523(alues may)-.25 F
-.579(be modi\214ed in the shell, less an)108 120 R 3.078(yp)-.15 G .578
-(airs remo)-3.078 F -.15(ve)-.15 G 3.078(db).15 G 3.078(yt)-3.078 G(he)
--3.078 E/F1 10/Times-Bold@0 SF(unset)3.078 E F0 .578(command, plus an)
-3.078 F 3.078(ya)-.15 G .578(dditions via the)-3.078 F F1(export)3.078 E
-F0(and)108 132 Q F1(declar)2.5 E 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)
-2.5 E .562(The en)108 148.8 R .562(vironment for an)-.4 F(y)-.15 E/F2 10
-/Times-Italic@0 SF .562(simple command)3.402 F F0 .563
+-.35 E/F1 10.95/Times-Bold@0 SF(ENVIR)72 84 Q(ONMENT)-.329 E F0 2.353
+(When a program is in)108 96 R -.2(vo)-.4 G -.1(ke).2 G 4.853(di).1 G
+4.853(ti)-4.853 G 4.853(sg)-4.853 G -2.15 -.25(iv e)-4.853 H 4.853(na)
+.25 G 4.853(na)-4.853 G 2.353(rray of strings called the)-4.853 F/F2 10
+/Times-Italic@0 SF(en)4.853 E(vir)-.4 E(onment)-.45 E F0 7.353(.T).68 G
+2.354(his is a list of)-7.353 F F2(name)108 108 Q F0<ad>A F2(value)A F0
+(pairs, of the form)2.5 E F2(name)2.5 E F0(=)A F2(value)A F0(.).18 E
+1.486(The shell pro)108 124.8 R 1.486(vides se)-.15 F -.15(ve)-.25 G
+1.486(ral w).15 F 1.485(ays to manipulate the en)-.1 F 3.985
+(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.485
+(cation, the shell scans its o).2 F(wn)-.25 E(en)108 136.8 Q .144(viron\
+ment and creates a parameter for each name found, automatically marking\
+ it for)-.4 F F2 -.2(ex)2.644 G(port).2 E F0 .144(to child pro-)3.324 F
+2.704(cesses. Ex)108 148.8 R .203(ecuted commands inherit the en)-.15 F
+2.703(vironment. The)-.4 F/F3 10/Times-Bold@0 SF(export)2.703 E F0(and)
+2.703 E F3(declar)2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203
+(commands allo)2.703 F 2.703(wp)-.25 G(aram-)-2.703 E 1.153
+(eters and functions to be added to and deleted from the en)108 160.8 R
+3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.154
+(alue of a parameter in the)-.25 F(en)108 172.8 Q .64
+(vironment is modi\214ed, the ne)-.4 F 3.14(wv)-.25 G .64
+(alue becomes part of the en)-3.39 F .64(vironment, replacing the old.)
+-.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 184.8
+R 3.08(ye)-.15 G -.15(xe)-3.23 G .58
+(cuted command consists of the shell').15 F 3.08(si)-.55 G .58
+(nitial en)-3.08 F .58(vironment, whose v)-.4 F .58(alues may be)-.25 F
+.301(modi\214ed in the shell, less an)108 196.8 R 2.801(yp)-.15 G .301
+(airs remo)-2.801 F -.15(ve)-.15 G 2.801(db).15 G 2.801(yt)-2.801 G(he)
+-2.801 E F3(unset)2.801 E F0 .3(command, plus an)2.8 F 2.8(ya)-.15 G .3
+(dditions via the)-2.8 F F3(export)2.8 E F0(and)2.8 E F3(declar)108
+208.8 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .562(The en)108
+225.6 R .562(vironment for an)-.4 F(y)-.15 E F2 .562(simple command)
+3.402 F F0 .563
(or function may be augmented temporarily by pre\214xing it with)3.833 F
-.203(parameter assignments, as described abo)108 160.8 R .502 -.15(ve i)
--.15 H(n).15 E/F3 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F4
+.203(parameter assignments, as described abo)108 237.6 R .502 -.15(ve i)
+-.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F5
9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702 F
-.202(fect only the)-.25 F(en)108 172.8 Q
-(vironment seen by that command.)-.4 E .81(If the)108 189.6 R F1<ad6b>
-3.31 E F0 .81(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu)
+.202(fect only the)-.25 F(en)108 249.6 Q
+(vironment seen by that command.)-.4 E .81(If the)108 266.4 R F3<ad6b>
+3.31 E F0 .81(option is set \(see the)3.31 F F3(set)3.31 E F0 -.2(bu)
3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0
-.81(parameter assignments are placed in)3.82 F(the en)108 201.6 Q
+.81(parameter assignments are placed in)3.82 F(the en)108 278.4 Q
(vironment for a command, not just those that precede the command name.)
--.4 E(When)108 218.4 Q F1(bash)3.397 E F0(in)3.397 E -.2(vo)-.4 G -.1
+-.4 E(When)108 295.2 Q F3(bash)3.397 E F0(in)3.397 E -.2(vo)-.4 G -.1
(ke).2 G 3.397(sa).1 G 3.397(ne)-3.397 G .897(xternal command, the v)
--3.547 F(ariable)-.25 E F1(_)3.397 E F0 .897
+-3.547 F(ariable)-.25 E F3(_)3.397 E F0 .897
(is set to the full \214le name of the command and)3.397 F
-(passed to that command in its en)108 230.4 Q(vironment.)-.4 E/F5 10.95
-/Times-Bold@0 SF(EXIT ST)72 247.2 Q -1.04(AT)-.986 G(US)1.04 E F0 .15
-(The e)108 259.2 R .15(xit status of an e)-.15 F -.15(xe)-.15 G .15
-(cuted command is the v).15 F .151(alue returned by the)-.25 F F2
-(waitpid)2.651 E F0 .151(system call or equi)2.651 F -.25(va)-.25 G .151
-(lent func-).25 F 2.848(tion. Exit)108 271.2 R .348(statuses f)2.848 F
-.347(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
+(passed to that command in its en)108 307.2 Q(vironment.)-.4 E F1
+(EXIT ST)72 324 Q -1.04(AT)-.986 G(US)1.04 E F0 .15(The e)108 336 R .15
+(xit status of an e)-.15 F -.15(xe)-.15 G .15(cuted command is the v).15
+F .151(alue returned by the)-.25 F F2(waitpid)2.651 E F0 .151
+(system call or equi)2.651 F -.25(va)-.25 G .151(lent func-).25 F 2.848
+(tion. Exit)108 348 R .348(statuses f)2.848 F .347
+(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .347(alues abo)-.25
-F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 283.2 Q 5.673(.E)-.65 G
+F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 360 Q 5.673(.E)-.65 G
.673(xit statuses from shell b)-5.673 F .673
(uiltins and compound commands are also limited to this range. Under)-.2
-F(certain circumstances, the shell will use special v)108 295.2 Q
+F(certain circumstances, the shell will use special v)108 372 Q
(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)108
-312 S 3.373(rt).15 G .873(he shell')-3.373 F 3.373(sp)-.55 G .873
+388.8 S 3.373(rt).15 G .873(he shell')-3.373 F 3.373(sp)-.55 G .873
(urposes, a command which e)-3.373 F .873(xits with a zero e)-.15 F .873
(xit status has succeeded.)-.15 F .872(An e)5.872 F .872(xit status of)
--.15 F .048(zero indicates success.)108 324 R 2.548(An)5.048 G .049
+-.15 F .048(zero indicates success.)108 400.8 R 2.548(An)5.048 G .049
(on-zero e)-2.548 F .049(xit status indicates f)-.15 F 2.549
(ailure. When)-.1 F 2.549(ac)2.549 G .049(ommand terminates on a f)
--2.549 F .049(atal sig-)-.1 F(nal)108 336 Q F2(N)2.5 E F0(,)A F1(bash)
+-2.549 F .049(atal sig-)-.1 F(nal)108 412.8 Q F2(N)2.5 E F0(,)A F3(bash)
2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F2(N)A F0(as the e)2.5 E
(xit status.)-.15 E .405
-(If a command is not found, the child process created to e)108 352.8 R
+(If a command is not found, the child process created to e)108 429.6 R
-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .404
-(If a command is)5.404 F(found b)108 364.8 Q(ut is not e)-.2 E -.15(xe)
--.15 G(cutable, the return status is 126.).15 E(If a command f)108 381.6
+(If a command is)5.404 F(found b)108 441.6 Q(ut is not e)-.2 E -.15(xe)
+-.15 G(cutable, the return status is 126.).15 E(If a command f)108 458.4
Q(ails because of an error during e)-.1 E
(xpansion or redirection, the e)-.15 E(xit status is greater than zero.)
--.15 E .08(Shell b)108 398.4 R .08
+-.15 E .08(Shell b)108 475.2 R .08
(uiltin commands return a status of 0 \()-.2 F F2(true)A F0 2.581(\)i)C
2.581(fs)-2.581 G .081(uccessful, and non-zero \()-2.581 F F2(false)A F0
2.581(\)i)C 2.581(fa)-2.581 G 2.581(ne)-2.581 G .081(rror occurs while)
--2.581 F(the)108 410.4 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15
+-2.581 F(the)108 487.2 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15
F -.2(bu)2.5 G(iltins return an e).2 E
-(xit status of 2 to indicate incorrect usage.)-.15 E F1(Bash)108 427.2 Q
+(xit status of 2 to indicate incorrect usage.)-.15 E F3(Bash)108 504 Q
F0 .202(itself returns the e)2.702 F .202
(xit status of the last command e)-.15 F -.15(xe)-.15 G .201
-(cuted, unless a syntax error occurs, in which case).15 F(it e)108 439.2
-Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1
-(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F5
-(SIGN)72 456 Q(ALS)-.219 E F0(When)108 468 Q F1(bash)3.182 E F0 .682
+(cuted, unless a syntax error occurs, in which case).15 F(it e)108 516 Q
+(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F3
+(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F1
+(SIGN)72 532.8 Q(ALS)-.219 E F0(When)108 544.8 Q F3(bash)3.182 E F0 .682
(is interacti)3.182 F -.15(ve)-.25 G 3.182(,i).15 G 3.182(nt)-3.182 G
.682(he absence of an)-3.182 F 3.183(yt)-.15 G .683(raps, it ignores)
--3.183 F F3(SIGTERM)3.183 E F0 .683(\(so that)2.933 F F1 .683(kill 0)
-3.183 F F0 .683(does not kill an)3.183 F(interacti)108 480 Q .758 -.15
-(ve s)-.25 H .458(hell\), and).15 F F3(SIGINT)2.958 E F0 .458
-(is caught and handled \(so that the)2.708 F F1(wait)2.958 E F0 -.2(bu)
+-3.183 F F4(SIGTERM)3.183 E F0 .683(\(so that)2.933 F F3 .683(kill 0)
+3.183 F F0 .683(does not kill an)3.183 F(interacti)108 556.8 Q .758 -.15
+(ve s)-.25 H .458(hell\), and).15 F F4(SIGINT)2.958 E F0 .458
+(is caught and handled \(so that the)2.708 F F3(wait)2.958 E F0 -.2(bu)
2.958 G .457(iltin is interruptible\).).2 F .457(In all cases,)5.457 F
-F1(bash)108 492 Q F0(ignores)2.5 E F3(SIGQ)2.5 E(UIT)-.09 E F4(.)A F0
-(If job control is in ef)4.5 E(fect,)-.25 E F1(bash)2.5 E F0(ignores)2.5
-E F3(SIGTTIN)2.5 E F4(,)A F3(SIGTT)2.25 E(OU)-.162 E F4(,)A F0(and)2.25
-E F3(SIGTSTP)2.5 E F4(.)A F0(Non-b)108 508.8 Q 1.064
-(uiltin commands run by)-.2 F F1(bash)3.564 E F0(ha)3.564 E 1.365 -.15
+F3(bash)108 568.8 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E F5(.)A F0
+(If job control is in ef)4.5 E(fect,)-.25 E F3(bash)2.5 E F0(ignores)2.5
+E F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25
+E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 585.6 Q 1.064
+(uiltin commands run by)-.2 F F3(bash)3.564 E F0(ha)3.564 E 1.365 -.15
(ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.065
(alues inherited by the shell from its)-.25 F 3.248(parent. When)108
-520.8 R .748(job control is not in ef)3.248 F .747
-(fect, asynchronous commands ignore)-.25 F F3(SIGINT)3.247 E F0(and)
-2.997 E F3(SIGQ)3.247 E(UIT)-.09 E F0 .747(in addi-)2.997 F .652
-(tion to these inherited handlers.)108 532.8 R .653
+597.6 R .748(job control is not in ef)3.248 F .747
+(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.247 E F0(and)
+2.997 E F4(SIGQ)3.247 E(UIT)-.09 E F0 .747(in addi-)2.997 F .652
+(tion to these inherited handlers.)108 609.6 R .653
(Commands run as a result of command substitution ignore the k)5.652 F
--.15(ey)-.1 G(board-).15 E(generated job control signals)108 544.8 Q F3
-(SIGTTIN)2.5 E F4(,)A F3(SIGTT)2.25 E(OU)-.162 E F4(,)A F0(and)2.25 E F3
-(SIGTSTP)2.5 E F4(.)A F0 2.046(The shell e)108 561.6 R 2.046
-(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F3(SIGHUP)4.545 E
-F4(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.345
--.15(ve s)-.25 H 2.045(hell resends the).15 F F3(SIGHUP)108 573.6 Q F0
+-.15(ey)-.1 G(board-).15 E(generated job control signals)108 621.6 Q F4
+(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4
+(SIGTSTP)2.5 E F5(.)A F0 2.046(The shell e)108 638.4 R 2.046
+(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E
+F5(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.345
+-.15(ve s)-.25 H 2.045(hell resends the).15 F F4(SIGHUP)108 650.4 Q F0
1.004(to all jobs, running or stopped.)3.254 F 1.004
-(Stopped jobs are sent)6.004 F F3(SIGCONT)3.505 E F0 1.005
+(Stopped jobs are sent)6.004 F F4(SIGCONT)3.505 E F0 1.005
(to ensure that the)3.255 F 3.505(yr)-.15 G(ecei)-3.505 E 1.305 -.15
-(ve t)-.25 H(he).15 E F3(SIGHUP)108 585.6 Q F4(.)A F0 2.53 -.8(To p)5.43
+(ve t)-.25 H(he).15 E F4(SIGHUP)108 662.4 Q F5(.)A F0 2.53 -.8(To p)5.43
H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal to a \
particular job, it should be remo).15 F -.15(ve)-.15 G 3.429(df).15 G
-.929(rom the)-3.429 F 1.356(jobs table with the)108 597.6 R F1(diso)
-3.856 E(wn)-.1 E F0 -.2(bu)3.856 G 1.356(iltin \(see).2 F F3 1.356
+.929(rom the)-3.429 F 1.356(jobs table with the)108 674.4 R F3(diso)
+3.856 E(wn)-.1 E F0 -.2(bu)3.856 G 1.356(iltin \(see).2 F F4 1.356
(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.607 E
-1.357(w\) or mark)-.25 F 1.357(ed to not recei)-.1 F -.15(ve)-.25 G F3
-(SIGHUP)108 609.6 Q F0(using)2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A
-.166(If the)108 626.4 R F1(huponexit)2.666 E F0 .166
-(shell option has been set with)2.666 F F1(shopt)2.666 E F0(,)A F1(bash)
-2.666 E F0 .166(sends a)2.666 F F3(SIGHUP)2.666 E F0 .166
+1.357(w\) or mark)-.25 F 1.357(ed to not recei)-.1 F -.15(ve)-.25 G F4
+(SIGHUP)108 686.4 Q F0(using)2.25 E F3(diso)2.5 E(wn \255h)-.1 E F0(.)A
+.166(If the)108 703.2 R F3(huponexit)2.666 E F0 .166
+(shell option has been set with)2.666 F F3(shopt)2.666 E F0(,)A F3(bash)
+2.666 E F0 .166(sends a)2.666 F F4(SIGHUP)2.666 E F0 .166
(to all jobs when an interacti)2.416 F -.15(ve)-.25 G(login shell e)108
-638.4 Q(xits.)-.15 E(If)108 655.2 Q F1(bash)3.046 E F0 .546(is w)3.046 F
-.546(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G
-3.046(sas).15 G .546(ignal for which a trap has been set, the trap)
--3.046 F .663(will not be e)108 667.2 R -.15(xe)-.15 G .663
-(cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E
-F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .99
-(via the)108 679.2 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\
-eption of a signal for which a trap has been set will cause the).2 F F1
-(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F
-(return immediately with an e)108 691.2 Q
-(xit status greater than 128, immediately after which the trap is e)-.15
-E -.15(xe)-.15 G(cuted.).15 E(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(31)185.115 E 0 Cg EP
+715.2 Q(xits.)-.15 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(31)
+192.895 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10.95/Times-Bold@0 SF(JOB CONTR)72 84 Q(OL)-.329 E/F2 10
-/Times-Italic@0 SF -.25(Jo)108 96 S 4.568(bc).25 G(ontr)-4.568 E(ol)-.45
-E F0 2.068(refers to the ability to selecti)5.078 F -.15(ve)-.25 G 2.067
-(ly stop \().15 F F2(suspend)A F0 4.567(\)t)C 2.067(he e)-4.567 F -.15
-(xe)-.15 G 2.067(cution of processes and continue).15 F(\()108 108 Q F2
--.37(re)C(sume).37 E F0 3.201(\)t)C .701(heir e)-3.201 F -.15(xe)-.15 G
-.702(cution at a later point.).15 F 3.202(Au)5.702 G .702
+-.35 E(If)108 84 Q/F1 10/Times-Bold@0 SF(bash)3.046 E F0 .546(is w)3.046
+F .546(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G
+3.046(sas).15 G .546(ignal for which a trap has been set, the trap)
+-3.046 F .663(will not be e)108 96 R -.15(xe)-.15 G .663
+(cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E
+F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .99
+(via the)108 108 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the recep\
+tion of a signal for which a trap has been set will cause the).2 F F1
+(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F
+(return immediately with an e)108 120 Q
+(xit status greater than 128, immediately after which the trap is e)-.15
+E -.15(xe)-.15 G(cuted.).15 E/F2 10.95/Times-Bold@0 SF(JOB CONTR)72
+136.8 Q(OL)-.329 E/F3 10/Times-Italic@0 SF -.25(Jo)108 148.8 S 4.568(bc)
+.25 G(ontr)-4.568 E(ol)-.45 E F0 2.068(refers to the ability to selecti)
+5.078 F -.15(ve)-.25 G 2.067(ly stop \().15 F F3(suspend)A F0 4.567(\)t)
+C 2.067(he e)-4.567 F -.15(xe)-.15 G 2.067
+(cution of processes and continue).15 F(\()108 160.8 Q F3 -.37(re)C
+(sume).37 E F0 3.201(\)t)C .701(heir e)-3.201 F -.15(xe)-.15 G .702
+(cution at a later point.).15 F 3.202(Au)5.702 G .702
(ser typically emplo)-3.202 F .702(ys this f)-.1 F .702
(acility via an interacti)-.1 F 1.002 -.15(ve i)-.25 H(nterf).15 E(ace)
--.1 E(supplied jointly by the operating system k)108 120 Q(ernel')-.1 E
-2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E
-/F3 10/Times-Bold@0 SF(bash)2.5 E F0(.)A .785(The shell associates a)108
-136.8 R F2(job)5.025 E F0 .785(with each pipeline.)3.515 F .784(It k)
-5.785 F .784(eeps a table of currently e)-.1 F -.15(xe)-.15 G .784
-(cuting jobs, which may be).15 F .34(listed with the)108 148.8 R F3
-(jobs)2.84 E F0 2.84(command. When)2.84 F F3(bash)2.84 E F0 .341
-(starts a job asynchronously \(in the)2.84 F F2(bac)2.841 E(kgr)-.2 E
-(ound)-.45 E F0 .341(\), it prints a line).77 F(that looks lik)108 160.8
-Q(e:)-.1 E([1] 25647)144 177.6 Q .241(indicating that this job is job n\
+-.1 E(supplied jointly by the operating system k)108 172.8 Q(ernel')-.1
+E 2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E
+F1(bash)2.5 E F0(.)A .785(The shell associates a)108 189.6 R F3(job)
+5.025 E F0 .785(with each pipeline.)3.515 F .784(It k)5.785 F .784
+(eeps a table of currently e)-.1 F -.15(xe)-.15 G .784
+(cuting jobs, which may be).15 F .34(listed with the)108 201.6 R F1
+(jobs)2.84 E F0 2.84(command. When)2.84 F F1(bash)2.84 E F0 .341
+(starts a job asynchronously \(in the)2.84 F F3(bac)2.841 E(kgr)-.2 E
+(ound)-.45 E F0 .341(\), it prints a line).77 F(that looks lik)108 213.6
+Q(e:)-.1 E([1] 25647)144 230.4 Q .241(indicating that this job is job n\
umber 1 and that the process ID of the last process in the pipeline ass\
-ociated)108 194.4 R .732(with this job is 25647.)108 206.4 R .733
+ociated)108 247.2 R .732(with this job is 25647.)108 259.2 R .733
(All of the processes in a single pipeline are members of the same job)
-5.732 F(.)-.4 E F3(Bash)5.733 E F0(uses)3.233 E(the)108 218.4 Q F2(job)
+5.732 F(.)-.4 E F1(Bash)5.733 E F0(uses)3.233 E(the)108 271.2 Q F3(job)
4.24 E F0(abstraction as the basis for job control.)2.73 E 3.063 -.8
-(To f)108 235.2 T 1.463(acilitate the implementation of the user interf)
-.7 F 1.462(ace to job control, the operating system maintains the)-.1 F
-.87(notion of a)108 247.2 R F2(curr)3.37 E .87(ent terminal pr)-.37 F
-.871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .871
+(To f)108 288 T 1.463(acilitate the implementation of the user interf).7
+F 1.462(ace to job control, the operating system maintains the)-.1 F .87
+(notion of a)108 300 R F3(curr)3.37 E .87(ent terminal pr)-.37 F .871
+(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .871
(embers of this process group \(processes whose process)-5.871 F .023
(group ID is equal to the current terminal process group ID\) recei)108
-259.2 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
+312 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
(board-generated signals such as).15 F/F4 9/Times-Bold@0 SF(SIG-)2.522 E
-(INT)108 271.2 Q/F5 9/Times-Roman@0 SF(.)A F0 1.346
-(These processes are said to be in the)5.846 F F2(for)3.847 E -.4(eg)
--.37 G -.45(ro).4 G(und).45 E F0(.).77 E F2(Bac)6.927 E(kgr)-.2 E(ound)
+(INT)108 324 Q/F5 9/Times-Roman@0 SF(.)A F0 1.346
+(These processes are said to be in the)5.846 F F3(for)3.847 E -.4(eg)
+-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F3(Bac)6.927 E(kgr)-.2 E(ound)
-.45 E F0 1.347(processes are those whose process)4.617 F .146
-(group ID dif)108 283.2 R .146(fers from the terminal')-.25 F .146
+(group ID dif)108 336 R .146(fers from the terminal')-.25 F .146
(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .145
(board-generated signals.).15 F .145(Only fore-)5.145 F .16
-(ground processes are allo)108 295.2 R .16(wed to read from or)-.25 F
-2.66(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F6
-10/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter)
--2.66 F(-)-.2 E 3.052(minal. Background)108 307.2 R .551
+(ground processes are allo)108 348 R .16(wed to read from or)-.25 F 2.66
+(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F6 10
+/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter)
+-2.66 F(-)-.2 E 3.052(minal. Background)108 360 R .551
(processes which attempt to read from \(write to when)3.052 F F6 .551
(stty tostop)3.051 F F0 .551(is in ef)3.051 F .551(fect\) the)-.25 F
-.717(terminal are sent a)108 319.2 R F4 .717(SIGTTIN \(SIGTT)3.217 F
-(OU\))-.162 E F0 .718(signal by the k)2.967 F(ernel')-.1 E 3.218(st)-.55
-G .718(erminal dri)-3.218 F -.15(ve)-.25 G 1.518 -.4(r, w).15 H .718
-(hich, unless caught, sus-).4 F(pends the process.)108 331.2 Q 1.088
-(If the operating system on which)108 348 R F3(bash)3.588 E F0 1.088
-(is running supports job control,)3.588 F F3(bash)3.587 E F0 1.087
-(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8(Ty)108 360 S
-.301(ping the).8 F F2(suspend)3.141 E F0 .301(character \(typically)
-3.571 F F3(^Z)2.801 E F0 2.801(,C)C .301
+.717(terminal are sent a)108 372 R F4 .717(SIGTTIN \(SIGTT)3.217 F(OU\))
+-.162 E F0 .718(signal by the k)2.967 F(ernel')-.1 E 3.218(st)-.55 G
+.718(erminal dri)-3.218 F -.15(ve)-.25 G 1.518 -.4(r, w).15 H .718
+(hich, unless caught, sus-).4 F(pends the process.)108 384 Q 1.088
+(If the operating system on which)108 400.8 R F1(bash)3.588 E F0 1.088
+(is running supports job control,)3.588 F F1(bash)3.587 E F0 1.087
+(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8(Ty)108 412.8 S
+.301(ping the).8 F F3(suspend)3.141 E F0 .301(character \(typically)
+3.571 F F1(^Z)2.801 E F0 2.801(,C)C .301
(ontrol-Z\) while a process is running causes that process to be)-2.801
-F 2.143(stopped and returns control to)108 372 R F3(bash)4.642 E F0
-7.142(.T)C 2.142(yping the)-7.942 F F2 2.142(delayed suspend)4.992 F F0
-2.142(character \(typically)5.412 F F3(^Y)4.642 E F0 4.642(,C)C
+F 2.143(stopped and returns control to)108 424.8 R F1(bash)4.642 E F0
+7.142(.T)C 2.142(yping the)-7.942 F F3 2.142(delayed suspend)4.992 F F0
+2.142(character \(typically)5.412 F F1(^Y)4.642 E F0 4.642(,C)C
(ontrol-Y\))-4.642 E .021(causes the process to be stopped when it atte\
-mpts to read input from the terminal, and control to be returned)108 384
-R(to)108 396 Q F3(bash)3.392 E F0 5.892(.T)C .892
+mpts to read input from the terminal, and control to be returned)108
+436.8 R(to)108 448.8 Q F1(bash)3.392 E F0 5.892(.T)C .892
(he user may then manipulate the state of this job, using the)-5.892 F
-F3(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894
-(background, the)108 408 R F3(fg)3.394 E F0 .895
+F1(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894
+(background, the)108 460.8 R F1(fg)3.394 E F0 .895
(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F
-F3(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F3(^Z)
-3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 420 Q .949(fect immediately)-.25
-F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948
+F1(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F1(^Z)
+3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 472.8 Q .949(fect immediately)
+-.25 F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948
(fect of causing pending output and typeahead to be dis-)-.25 F(carded.)
-108 432 Q .777(There are a number of w)108 448.8 R .777
-(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F3
-(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 460.8
-Q F2(jobspec)A F0 3.458(\). Job)B(number)3.458 E F2(n)3.818 E F0 .957
-(may be referred to as)3.697 F F3(%n)3.457 E F0 5.957(.A)C .957
+108 484.8 Q .777(There are a number of w)108 501.6 R .777
+(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F1
+(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 513.6
+Q F3(jobspec)A F0 3.458(\). Job)B(number)3.458 E F3(n)3.818 E F0 .957
+(may be referred to as)3.697 F F1(%n)3.457 E F0 5.957(.A)C .957
(job may also be referred to using a pre\214x of the)-2.5 F .59(name us\
ed to start it, or using a substring that appears in its command line.)
-108 472.8 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F3(%ce)3.09 E
-F0 .59(refers to a)3.09 F(stopped)108 484.8 Q F3(ce)3.464 E F0(job)3.464
+108 525.6 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F1(%ce)3.09 E
+F0 .59(refers to a)3.09 F(stopped)108 537.6 Q F1(ce)3.464 E F0(job)3.464
E 5.964(.I)-.4 G 3.463(fap)-5.964 G .963
-(re\214x matches more than one job,)-3.463 F F3(bash)3.463 E F0 .963
-(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F3(%?ce)3.463 E
+(re\214x matches more than one job,)-3.463 F F1(bash)3.463 E F0 .963
+(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F1(%?ce)3.463 E
F0 3.463(,o)C 3.463(nt)-3.463 G .963(he other)-3.463 F .086
-(hand, refers to an)108 496.8 R 2.587(yj)-.15 G .087
-(ob containing the string)-2.587 F F3(ce)2.587 E F0 .087
+(hand, refers to an)108 549.6 R 2.587(yj)-.15 G .087
+(ob containing the string)-2.587 F F1(ce)2.587 E F0 .087
(in its command line.)2.587 F .087
-(If the substring matches more than one)5.087 F(job,)108 508.8 Q F3
+(If the substring matches more than one)5.087 F(job,)108 561.6 Q F1
(bash)2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018
-(he symbols)-5.018 F F3(%%)2.518 E F0(and)2.518 E F3(%+)2.518 E F0 .018
+(he symbols)-5.018 F F1(%%)2.518 E F0(and)2.518 E F1(%+)2.518 E F0 .018
(refer to the shell')2.518 F 2.518(sn)-.55 G .018(otion of the)-2.518 F
-F2(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is)
--2.518 F .494(the last job stopped while it w)108 520.8 R .495
+F3(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is)
+-2.518 F .494(the last job stopped while it w)108 573.6 R .495
(as in the fore)-.1 F .495(ground or started in the background.)-.15 F
-(The)5.495 E F2(pr)4.245 E -.15(ev)-.37 G .495(ious job).15 F F0 .495
-(may be)3.225 F .788(referenced using)108 532.8 R F3<25ad>3.288 E F0
-5.788(.I)C 3.288(ft)-5.788 G .787(here is only a single job,)-3.288 F F3
-(%+)3.287 E F0(and)3.287 E F3<25ad>3.287 E F0 .787
+(The)5.495 E F3(pr)4.245 E -.15(ev)-.37 G .495(ious job).15 F F0 .495
+(may be)3.225 F .788(referenced using)108 585.6 R F1<25ad>3.288 E F0
+5.788(.I)C 3.288(ft)-5.788 G .787(here is only a single job,)-3.288 F F1
+(%+)3.287 E F0(and)3.287 E F1<25ad>3.287 E F0 .787
(can both be used to refer to that job)3.287 F 5.787(.I)-.4 G(n)-5.787 E
-.256(output pertaining to jobs \(e.g., the output of the)108 544.8 R F3
+.256(output pertaining to jobs \(e.g., the output of the)108 597.6 R F1
(jobs)2.756 E F0 .256(command\), the current job is al)2.756 F -.1(wa)
--.1 G .257(ys \215agged with a).1 F F3(+)2.757 E F0(,)A .411
-(and the pre)108 556.8 R .411(vious job with a)-.25 F F3<ad>2.911 E F0
+-.1 G .257(ys \215agged with a).1 F F1(+)2.757 E F0(,)A .411
+(and the pre)108 609.6 R .411(vious job with a)-.25 F F1<ad>2.911 E F0
5.411(.A)C .411(single % \(with no accompan)-2.5 F .41
(ying job speci\214cation\) also refers to the cur)-.15 F(-)-.2 E
-(rent job)108 568.8 Q(.)-.4 E .443
-(Simply naming a job can be used to bring it into the fore)108 585.6 R
-(ground:)-.15 E F3(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
--.15 F F3 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
+(rent job)108 621.6 Q(.)-.4 E .443
+(Simply naming a job can be used to bring it into the fore)108 638.4 R
+(ground:)-.15 E F1(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
+-.15 F F1 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
(ringing)-2.944 E 1.473(job 1 from the background into the fore)108
-597.6 R 3.973(ground. Similarly)-.15 F(,)-.65 E F3 -.63(``)3.972 G 1.472
+650.4 R 3.973(ground. Similarly)-.15 F(,)-.65 E F1 -.63(``)3.972 G 1.472
(%1 &').63 F(')-.63 E F0 1.472(resumes job 1 in the background,)3.972 F
-(equi)108 609.6 Q -.25(va)-.25 G(lent to).25 E F3 -.63(``)2.5 G(bg %1')
-.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 626.4 R
+(equi)108 662.4 Q -.25(va)-.25 G(lent to).25 E F1 -.63(``)2.5 G(bg %1')
+.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 679.2 R
-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally)
-5.131 E(,)-.65 E F3(bash)2.631 E F0 -.1(wa)2.631 G .131
+5.131 E(,)-.65 E F1(bash)2.631 E F0 -.1(wa)2.631 G .131
(its until it is about to print a).1 F .158
-(prompt before reporting changes in a job')108 638.4 R 2.658(ss)-.55 G
+(prompt before reporting changes in a job')108 691.2 R 2.658(ss)-.55 G
.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157
-(ther output.)-2.657 F .157(If the)5.157 F F3<ad62>2.657 E F0 .157
-(option to)2.657 F(the)108 650.4 Q F3(set)3.951 E F0 -.2(bu)3.951 G
-1.451(iltin command is enabled,).2 F F3(bash)3.951 E F0 1.452
+(ther output.)-2.657 F .157(If the)5.157 F F1<ad62>2.657 E F0 .157
+(option to)2.657 F(the)108 703.2 Q F1(set)3.951 E F0 -.2(bu)3.951 G
+1.451(iltin command is enabled,).2 F F1(bash)3.951 E F0 1.452
(reports such changes immediately)3.951 F 6.452(.A)-.65 G 1.752 -.15
(ny t)-6.452 H 1.452(rap on).15 F F4(SIGCHLD)3.952 E F0(is)3.702 E -.15
-(exe)108 662.4 S(cuted for each child that e).15 E(xits.)-.15 E .033
-(If an attempt to e)108 679.2 R(xit)-.15 E F3(bash)2.533 E F0 .033
-(is made while jobs are stopped \(or)2.533 F 2.532(,i)-.4 G 2.532(ft)
--2.532 G(he)-2.532 E F3(checkjobs)2.532 E F0 .032
-(shell option has been enabled)2.532 F 2.019(using the)108 691.2 R F3
+(exe)108 715.2 S(cuted for each child that e).15 E(xits.)-.15 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(32)192.895 E 0 Cg EP
+%%Page: 33 33
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .033(If an attempt to e)108 84 R(xit)-.15 E/F1 10/Times-Bold@0 SF
+(bash)2.533 E F0 .033(is made while jobs are stopped \(or)2.533 F 2.532
+(,i)-.4 G 2.532(ft)-2.532 G(he)-2.532 E F1(checkjobs)2.532 E F0 .032
+(shell option has been enabled)2.532 F 2.019(using the)108 96 R F1
(shopt)4.519 E F0 -.2(bu)4.519 G 2.019
(iltin, running\), the shell prints a w).2 F 2.02
-(arning message, and, if the)-.1 F F3(checkjobs)4.52 E F0 2.02
+(arning message, and, if the)-.1 F F1(checkjobs)4.52 E F0 2.02
(option is)4.52 F .459(enabled, lists the jobs and their statuses.)108
-703.2 R(The)5.459 E F3(jobs)2.959 E F0 .458
+108 R(The)5.459 E F1(jobs)2.959 E F0 .458
(command may then be used to inspect their status.)2.958 F .458(If a)
-5.458 F .603(second attempt to e)108 715.2 R .604
+5.458 F .603(second attempt to e)108 120 R .604
(xit is made without an interv)-.15 F .604
(ening command, the shell does not print another w)-.15 F(arning,)-.1 E
-(and an)108 727.2 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(32)185.115 E 0 Cg EP
-%%Page: 33 33
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10.95/Times-Bold@0 SF(PR)72 84 Q(OMPTING)-.329 E F0 .645
-(When e)108 96 R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25
-G(ly).15 E(,)-.65 E/F2 10/Times-Bold@0 SF(bash)3.145 E F0 .645
-(displays the primary prompt)3.145 F/F3 9/Times-Bold@0 SF(PS1)3.145 E F0
-.645(when it is ready to read a command,)2.895 F 1.825
-(and the secondary prompt)108 108 R F3(PS2)4.325 E F0 1.825
-(when it needs more input to complete a command.)4.075 F F2(Bash)6.826 E
+(and an)108 132 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F2
+10.95/Times-Bold@0 SF(PR)72 148.8 Q(OMPTING)-.329 E F0 .645(When e)108
+160.8 R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15
+E(,)-.65 E F1(bash)3.145 E F0 .645(displays the primary prompt)3.145 F
+/F3 9/Times-Bold@0 SF(PS1)3.145 E F0 .645
+(when it is ready to read a command,)2.895 F 1.825
+(and the secondary prompt)108 172.8 R F3(PS2)4.325 E F0 1.825
+(when it needs more input to complete a command.)4.075 F F1(Bash)6.826 E
F0(allo)4.326 E 1.826(ws these)-.25 F 1.499(prompt strings to be custom\
ized by inserting a number of backslash-escaped special characters that\
- are)108 120 R(decoded as follo)108 132 Q(ws:)-.25 E F2(\\a)144 144 Q F0
-(an ASCII bell character \(07\))28.22 E F2(\\d)144 156 Q F0
+ are)108 184.8 R(decoded as follo)108 196.8 Q(ws:)-.25 E F1(\\a)144
+208.8 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 220.8 Q F0
(the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E
-(ue May 26"\))-.45 E F2(\\D{)144 168 Q/F4 10/Times-Italic@0 SF(format)A
-F2(})A F0(the)180 180 Q F4(format)3.926 E F0 1.426(is passed to)3.926 F
-F4(strftime)3.926 E F0 1.427
+(ue May 26"\))-.45 E F1(\\D{)144 232.8 Q/F4 10/Times-Italic@0 SF(format)
+A F1(})A F0(the)180 244.8 Q F4(format)3.926 E F0 1.426(is passed to)
+3.926 F F4(strftime)3.926 E F0 1.427
(\(3\) and the result is inserted into the prompt string; an)B(empty)180
-192 Q F4(format)2.5 E F0
+256.8 Q F4(format)2.5 E F0
(results in a locale-speci\214c time representation.)2.5 E
-(The braces are required)5 E F2(\\e)144 204 Q F0
-(an ASCII escape character \(033\))28.78 E F2(\\h)144 216 Q F0
-(the hostname up to the \214rst `.)27.66 E(')-.7 E F2(\\H)144 228 Q F0
-(the hostname)25.44 E F2(\\j)144 240 Q F0
-(the number of jobs currently managed by the shell)29.89 E F2(\\l)144
-252 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
--2.5 E(vice name)-.25 E F2(\\n)144 264 Q F0(ne)27.66 E(wline)-.25 E F2
-(\\r)144 276 Q F0(carriage return)28.78 E F2(\\s)144 288 Q F0
-(the name of the shell, the basename of)29.33 E F2($0)2.5 E F0
-(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F2(\\t)144
-300 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F2(\\T)144
-312 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F2(\\@)144
-324 Q F0(the current time in 12-hour am/pm format)23.92 E F2(\\A)144 336
-Q F0(the current time in 24-hour HH:MM format)26 E F2(\\u)144 348 Q F0
-(the username of the current user)27.66 E F2(\\v)144 360 Q F0(the v)
-28.22 E(ersion of)-.15 E F2(bash)2.5 E F0(\(e.g., 2.00\))2.5 E F2(\\V)
-144 372 Q F0(the release of)26 E F2(bash)2.5 E F0 2.5(,v)C
-(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G(e.g., 2.00.0\))
--2.5 E F2(\\w)144 384 Q F0 4.288(the current w)26 F 4.288
-(orking directory)-.1 F 6.787(,w)-.65 G(ith)-6.787 E F2($HOME)6.787 E F0
-(abbre)6.787 E 4.287(viated with a tilde \(uses the)-.25 F F2($PR)180
-396 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 -.25(va)2.5 G(riable\)).25 E F2(\\W)
-144 408 Q F0(the basename of the current w)23.22 E(orking directory)-.1
-E 2.5(,w)-.65 G(ith)-2.5 E F2($HOME)2.5 E F0(abbre)2.5 E
-(viated with a tilde)-.25 E F2(\\!)144 420 Q F0
-(the history number of this command)29.89 E F2(\\#)144 432 Q F0
-(the command number of this command)28.22 E F2(\\$)144 444 Q F0
-(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E F2
-(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F2($)2.5 E(\\)144 456 Q F4(nnn)A
-F0(the character corresponding to the octal number)18.22 E F4(nnn)2.5 E
-F2(\\\\)144 468 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F2(\\[)144 480 Q F0
-(be)29.89 E 1.257(gin a sequence of non-printing characters, which coul\
-d be used to embed a terminal)-.15 F(control sequence into the prompt)
-180 492 Q F2(\\])144 504 Q F0(end a sequence of non-printing characters)
-29.89 E .12(The command number and the history number are usually dif)
-108 520.8 R .119(ferent: the history number of a command is its)-.25 F
-1.585(position in the history list, which may include commands restored\
- from the history \214le \(see)108 532.8 R F3(HIST)4.085 E(OR)-.162 E(Y)
--.315 E F0(belo)108 544.8 Q .541(w\), while the command number is the p\
-osition in the sequence of commands e)-.25 F -.15(xe)-.15 G .54
-(cuted during the cur).15 F(-)-.2 E .546(rent shell session.)108 556.8 R
+(The braces are required)5 E F1(\\e)144 268.8 Q F0
+(an ASCII escape character \(033\))28.78 E F1(\\h)144 280.8 Q F0
+(the hostname up to the \214rst `.)27.66 E(')-.7 E F1(\\H)144 292.8 Q F0
+(the hostname)25.44 E F1(\\j)144 304.8 Q F0
+(the number of jobs currently managed by the shell)29.89 E F1(\\l)144
+316.8 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
+-2.5 E(vice name)-.25 E F1(\\n)144 328.8 Q F0(ne)27.66 E(wline)-.25 E F1
+(\\r)144 340.8 Q F0(carriage return)28.78 E F1(\\s)144 352.8 Q F0
+(the name of the shell, the basename of)29.33 E F1($0)2.5 E F0
+(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F1(\\t)144
+364.8 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F1(\\T)
+144 376.8 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F1
+(\\@)144 388.8 Q F0(the current time in 12-hour am/pm format)23.92 E F1
+(\\A)144 400.8 Q F0(the current time in 24-hour HH:MM format)26 E F1
+(\\u)144 412.8 Q F0(the username of the current user)27.66 E F1(\\v)144
+424.8 Q F0(the v)28.22 E(ersion of)-.15 E F1(bash)2.5 E F0
+(\(e.g., 2.00\))2.5 E F1(\\V)144 436.8 Q F0(the release of)26 E F1(bash)
+2.5 E F0 2.5(,v)C(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G
+(e.g., 2.00.0\))-2.5 E F1(\\w)144 448.8 Q F0 4.288(the current w)26 F
+4.288(orking directory)-.1 F 6.787(,w)-.65 G(ith)-6.787 E F1($HOME)6.787
+E F0(abbre)6.787 E 4.287(viated with a tilde \(uses the)-.25 F F1($PR)
+180 460.8 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 -.25(va)2.5 G(riable\)).25 E F1
+(\\W)144 472.8 Q F0(the basename of the current w)23.22 E
+(orking directory)-.1 E 2.5(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0
+(abbre)2.5 E(viated with a tilde)-.25 E F1(\\!)144 484.8 Q F0
+(the history number of this command)29.89 E F1(\\#)144 496.8 Q F0
+(the command number of this command)28.22 E F1(\\$)144 508.8 Q F0
+(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E F1
+(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 520.8 Q F4(nnn)
+A F0(the character corresponding to the octal number)18.22 E F4(nnn)2.5
+E F1(\\\\)144 532.8 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 544.8
+Q F0(be)29.89 E 1.257(gin a sequence of non-printing characters, which \
+could be used to embed a terminal)-.15 F
+(control sequence into the prompt)180 556.8 Q F1(\\])144 568.8 Q F0
+(end a sequence of non-printing characters)29.89 E .12
+(The command number and the history number are usually dif)108 585.6 R
+.119(ferent: the history number of a command is its)-.25 F 1.585(positi\
+on in the history list, which may include commands restored from the hi\
+story \214le \(see)108 597.6 R F3(HIST)4.085 E(OR)-.162 E(Y)-.315 E F0
+(belo)108 609.6 Q .541(w\), while the command number is the position in\
+ the sequence of commands e)-.25 F -.15(xe)-.15 G .54
+(cuted during the cur).15 F(-)-.2 E .546(rent shell session.)108 621.6 R
.546(After the string is decoded, it is e)5.546 F .546
(xpanded via parameter e)-.15 F .546(xpansion, command substitu-)-.15 F
-.352(tion, arithmetic e)108 568.8 R .352(xpansion, and quote remo)-.15 F
--.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F2
+.352(tion, arithmetic e)108 633.6 R .352(xpansion, and quote remo)-.15 F
+-.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F1
(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351(shell option \(see the)2.852
-F(description of the)108 580.8 Q F2(shopt)2.5 E F0(command under)2.5 E
+F(description of the)108 645.6 Q F1(shopt)2.5 E F0(command under)2.5 E
F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
--.25 E F1(READLINE)72 597.6 Q F0 .15
+-.25 E F2(READLINE)72 662.4 Q F0 .15
(This is the library that handles reading input when using an interacti)
-108 609.6 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F2
-(\255\255noediting)2.651 E F0(option)2.651 E 1.209(is gi)108 621.6 R
+108 674.4 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F1
+(\255\255noediting)2.651 E F0(option)2.651 E 1.209(is gi)108 686.4 R
-.15(ve)-.25 G 3.709(na).15 G 3.709(ts)-3.709 G 1.209(hell in)-3.709 F
-.2(vo)-.4 G 3.709(cation. Line).2 F 1.208
-(editing is also used when using the)3.709 F F2<ad65>3.708 E F0 1.208
-(option to the)3.708 F F2 -.18(re)3.708 G(ad).18 E F0 -.2(bu)3.708 G
-3.708(iltin. By).2 F(def)108 633.6 Q .949
+(editing is also used when using the)3.709 F F1<ad65>3.708 E F0 1.208
+(option to the)3.708 F F1 -.18(re)3.708 G(ad).18 E F0 -.2(bu)3.708 G
+3.708(iltin. By).2 F(def)108 698.4 Q .949
(ault, the line editing commands are similar to those of emacs.)-.1 F
3.45(Av)5.95 G .95(i-style line editing interf)-3.45 F .95(ace is also)
--.1 F -.2(av)108 645.6 S 3.35(ailable. Line)-.05 F .85
+-.1 F -.2(av)108 710.4 S 3.35(ailable. Line)-.05 F .85
(editing can be enabled at an)3.35 F 3.35(yt)-.15 G .85(ime using the)
--3.35 F F2 .85(\255o emacs)3.35 F F0(or)3.35 E F2 .85(\255o vi)3.35 F F0
-.85(options to the)3.35 F F2(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E
-(\(see)108 657.6 Q F3 .762(SHELL B)3.262 F(UIL)-.09 E .762(TIN COMMANDS)
+-3.35 F F1 .85(\255o emacs)3.35 F F0(or)3.35 E F1 .85(\255o vi)3.35 F F0
+.85(options to the)3.35 F F1(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E
+(\(see)108 722.4 Q F3 .762(SHELL B)3.262 F(UIL)-.09 E .762(TIN COMMANDS)
-.828 F F0(belo)3.012 E 3.262(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)
-3.263 F 3.263(fl)-.25 G .763
-(ine editing after the shell is running, use the)-3.263 F F2(+o)3.263 E
-(emacs)108 669.6 Q F0(or)2.5 E F2(+o vi)2.5 E F0(options to the)2.5 E F2
-(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F2(Readline Notation)87 686.4 Q
-F0 .568(In this section, the emacs-style notation is used to denote k)
-108 698.4 R -.15(ey)-.1 G(strok).15 E 3.067(es. Control)-.1 F -.1(ke)
-3.067 G .567(ys are denoted by C\255)-.05 F F4 -.1(ke)C(y)-.2 E F0(,)A
-1.152(e.g., C\255n means Control\255N.)108 710.4 R(Similarly)6.152 E(,)
--.65 E F4(meta)4.032 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255)
--.05 F F4 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653(oM)-3.653 G 1.153
-(\255x means Meta\255X.)-3.653 F(\(On)6.153 E -.1(ke)108 722.4 S .831
-(yboards without a)-.05 F F4(meta)3.711 E F0 -.1(ke)3.591 G 2.131 -.65
-(y, M)-.05 H<ad>.65 E F4(x)A F0 .831(means ESC)3.331 F F4(x)3.331 E F0
-3.331(,i)C .83(.e., press the Escape k)-3.331 F 1.13 -.15(ey t)-.1 H .83
-(hen the).15 F F4(x)4.1 E F0 -.1(ke)3.86 G 4.63 -.65(y. T)-.05 H .83
-(his mak).65 F(es)-.1 E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125
-E(33)185.115 E 0 Cg EP
+(ine editing after the shell is running, use the)-3.263 F F1(+o)3.263 E
+F0(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(33)192.895 E 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .599(ESC the)108 84 R/F1 10/Times-Italic@0 SF .599(meta pr)3.099
-F(e\214x)-.37 E F0 5.599(.T)C .599(he combination M\255C\255)-5.599 F F1
-(x)A F0 .599(means ESC\255Control\255)3.099 F F1(x)A F0 3.099(,o)C 3.099
-(rp)-3.099 G .6(ress the Escape k)-3.099 F .9 -.15(ey t)-.1 H .6
-(hen hold).15 F(the Control k)108 96 Q .3 -.15(ey w)-.1 H
-(hile pressing the).15 E F1(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
-.65 E .62(Readline commands may be gi)108 112.8 R -.15(ve)-.25 G 3.119
-(nn).15 G(umeric)-3.119 E F1(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
-.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E
-(ho)108 124.8 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti)
-.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
+-.35 E/F1 10/Times-Bold@0 SF(emacs)108 84 Q F0(or)2.5 E F1(+o vi)2.5 E
+F0(options to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
+(Readline Notation)87 100.8 Q F0 .568
+(In this section, the emacs-style notation is used to denote k)108 112.8
+R -.15(ey)-.1 G(strok).15 E 3.067(es. Control)-.1 F -.1(ke)3.067 G .567
+(ys are denoted by C\255)-.05 F/F2 10/Times-Italic@0 SF -.1(ke)C(y)-.2 E
+F0(,)A 1.152(e.g., C\255n means Control\255N.)108 124.8 R(Similarly)
+6.152 E(,)-.65 E F2(meta)4.032 E F0 -.1(ke)3.913 G 1.153
+(ys are denoted by M\255)-.05 F F2 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653
+(oM)-3.653 G 1.153(\255x means Meta\255X.)-3.653 F(\(On)6.153 E -.1(ke)
+108 136.8 S .831(yboards without a)-.05 F F2(meta)3.711 E F0 -.1(ke)
+3.591 G 2.131 -.65(y, M)-.05 H<ad>.65 E F2(x)A F0 .831(means ESC)3.331 F
+F2(x)3.331 E F0 3.331(,i)C .83(.e., press the Escape k)-3.331 F 1.13
+-.15(ey t)-.1 H .83(hen the).15 F F2(x)4.1 E F0 -.1(ke)3.86 G 4.63 -.65
+(y. T)-.05 H .83(his mak).65 F(es)-.1 E .599(ESC the)108 148.8 R F2 .599
+(meta pr)3.099 F(e\214x)-.37 E F0 5.599(.T)C .599
+(he combination M\255C\255)-5.599 F F2(x)A F0 .599
+(means ESC\255Control\255)3.099 F F2(x)A F0 3.099(,o)C 3.099(rp)-3.099 G
+.6(ress the Escape k)-3.099 F .9 -.15(ey t)-.1 H .6(hen hold).15 F
+(the Control k)108 160.8 Q .3 -.15(ey w)-.1 H(hile pressing the).15 E F2
+(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)).65 E .62
+(Readline commands may be gi)108 177.6 R -.15(ve)-.25 G 3.119(nn).15 G
+(umeric)-3.119 E F2(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G .619
+(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E(ho)108
+189.6 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti).4 G
+3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F 1.019(acts in the forw)108 136.8 R 1.018
-(ard direction \(e.g.,)-.1 F/F2 10/Times-Bold@0 SF(kill\255line)3.518 E
-F0 3.518(\)c)C 1.018(auses that command to act in a backw)-3.518 F 1.018
-(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 148.8 Q
+(ument to a command that).18 F 1.019(acts in the forw)108 201.6 R 1.018
+(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C
+1.018(auses that command to act in a backw)-3.518 F 1.018
+(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 213.6 Q
(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo)
--.25 E -.65(w.)-.25 G .811(When a command is described as)108 165.6 R F1
+-.25 E -.65(w.)-.25 G .811(When a command is described as)108 230.4 R F2
(killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811
(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812
-(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F1
-(yank-)-3.312 E(ing)108 177.6 Q F0 2.529(\). The)B .029(killed te)2.529
-F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F1
+(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F2
+(yank-)-3.312 E(ing)108 242.4 Q F0 2.529(\). The)B .029(killed te)2.529
+F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F2
.029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H
.029(ills cause the te).15 F .029(xt to be accumulated into one unit,)
--.15 F .567(which can be yank)108 189.6 R .567(ed all at once.)-.1 F
+-.15 F .567(which can be yank)108 254.4 R .567(ed all at once.)-.1 F
.567(Commands which do not kill te)5.567 F .567
(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
-108 201.6 Q F2(Readline Initialization)87 218.4 Q F0 .091(Readline is c\
+108 266.4 Q F1(Readline Initialization)87 283.2 Q F0 .091(Readline is c\
ustomized by putting commands in an initialization \214le \(the)108
-230.4 R F1(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091
-(name of this \214le)2.591 F .196(is tak)108 242.4 R .196(en from the v)
+295.2 R F2(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091
+(name of this \214le)2.591 F .196(is tak)108 307.2 R .196(en from the v)
-.1 F .196(alue of the)-.25 F/F3 9/Times-Bold@0 SF(INPUTRC)2.696 E F0
-.25(va)2.446 G 2.696(riable. If).25 F .196(that v)2.696 F .196
-(ariable is unset, the def)-.25 F .196(ault is)-.1 F F1(~/.inputr)2.696
+(ariable is unset, the def)-.25 F .196(ault is)-.1 F F2(~/.inputr)2.696
E(c)-.37 E F0 5.196(.W).31 G .197(hen a)-5.196 F 1.034(program which us\
es the readline library starts up, the initialization \214le is read, a\
-nd the k)108 254.4 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25
-(va)108 266.4 S 1.149(riables are set.).25 F 1.149(There are only a fe)
+nd the k)108 319.2 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25
+(va)108 331.2 S 1.149(riables are set.).25 F 1.149(There are only a fe)
6.149 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.15
(wed in the readline initialization \214le.)-.25 F(Blank)6.15 E .737
-(lines are ignored.)108 278.4 R .737(Lines be)5.737 F .737
-(ginning with a)-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737
-(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .736
-(indicate conditional)3.236 F 2.5(constructs. Other)108 290.4 R
+(lines are ignored.)108 343.2 R .737(Lines be)5.737 F .737
+(ginning with a)-.15 F F1(#)3.237 E F0 .737(are comments.)3.237 F .737
+(Lines be)5.737 F .737(ginning with a)-.15 F F1($)3.237 E F0 .736
+(indicate conditional)3.236 F 2.5(constructs. Other)108 355.2 R
(lines denote k)2.5 E .3 -.15(ey b)-.1 H(indings and v).15 E
-(ariable settings.)-.25 E .986(The def)108 307.2 R .986(ault k)-.1 F
--.15(ey)-.1 G .987(-bindings may be changed with an).15 F F1(inputr)
-3.497 E(c)-.37 E F0 3.487(\214le. Other)3.797 F .987
-(programs that use this library may)3.487 F(add their o)108 319.2 Q
-(wn commands and bindings.)-.25 E -.15(Fo)108 336 S 2.5(re).15 G
-(xample, placing)-2.65 E(M\255Control\255u: uni)144 352.8 Q -.15(ve)-.25
-G(rsal\255ar).15 E(gument)-.18 E(or)108 364.8 Q(C\255Meta\255u: uni)144
-376.8 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 388.8
-Q F1(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G
-(\255C\255u e)-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F1
+(ariable settings.)-.25 E .986(The def)108 372 R .986(ault k)-.1 F -.15
+(ey)-.1 G .987(-bindings may be changed with an).15 F F2(inputr)3.497 E
+(c)-.37 E F0 3.487(\214le. Other)3.797 F .987
+(programs that use this library may)3.487 F(add their o)108 384 Q
+(wn commands and bindings.)-.25 E -.15(Fo)108 400.8 S 2.5(re).15 G
+(xample, placing)-2.65 E(M\255Control\255u: uni)144 417.6 Q -.15(ve)-.25
+G(rsal\255ar).15 E(gument)-.18 E(or)108 429.6 Q(C\255Meta\255u: uni)144
+441.6 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 453.6
+Q F2(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G
+(\255C\255u e)-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F2
(univer)2.5 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.261(The follo)
-108 405.6 R 1.261(wing symbolic character names are recognized:)-.25 F
-F1 -.4(RU)3.761 G(BOUT).4 E F0(,)1.27 E F1(DEL)3.761 E F0(,).53 E F1
-(ESC)3.761 E F0(,).72 E F1(LFD)3.761 E F0(,).28 E F1(NEWLINE)3.76 E F0
-(,).73 E F1(RET)3.76 E F0(,)1.27 E F1(RETURN)108 417.6 Q F0(,)1.1 E F1
-(SPC)2.5 E F0(,).72 E F1(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G
-(nd)-2.5 E F1 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
-(In addition to command names, readline allo)108 434.4 R .209(ws k)-.25
+108 470.4 R 1.261(wing symbolic character names are recognized:)-.25 F
+F2 -.4(RU)3.761 G(BOUT).4 E F0(,)1.27 E F2(DEL)3.761 E F0(,).53 E F2
+(ESC)3.761 E F0(,).72 E F2(LFD)3.761 E F0(,).28 E F2(NEWLINE)3.76 E F0
+(,).73 E F2(RET)3.76 E F0(,)1.27 E F2(RETURN)108 482.4 Q F0(,)1.1 E F2
+(SPC)2.5 E F0(,).72 E F2(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G
+(nd)-2.5 E F2 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
+(In addition to command names, readline allo)108 499.2 R .209(ws k)-.25
F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
--.1 H(s).15 E(pressed \(a)108 446.4 Q F1(macr)2.5 E(o)-.45 E F0(\).)A F2
-(Readline K)87 463.2 Q(ey Bindings)-.25 E F0 .366
-(The syntax for controlling k)108 475.2 R .666 -.15(ey b)-.1 H .366
-(indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366
+-.1 H(s).15 E(pressed \(a)108 511.2 Q F2(macr)2.5 E(o)-.45 E F0(\).)A F1
+(Readline K)87 528 Q(ey Bindings)-.25 E F0 .366
+(The syntax for controlling k)108 540 R .666 -.15(ey b)-.1 H .366
+(indings in the).15 F F2(inputr)2.876 E(c)-.37 E F0 .366
(\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .382(command or the te)108 487.2 R .383(xt of a macro and a k)
--.15 F .683 -.15(ey s)-.1 H .383
+5.366 F .382(command or the te)108 552 R .383(xt of a macro and a k)-.15
+F .683 -.15(ey s)-.1 H .383
(equence to which it should be bound. The name may be speci-).15 F .853
-(\214ed in one of tw)108 499.2 R 3.353(ow)-.1 G .853
-(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
-(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
-3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
-(ey)-.1 G(sequence.)108 511.2 Q 1.541(When using the form)108 528 R F2
--.1(ke)4.041 G(yname).1 E F0(:)A F1(function\255name).833 E F0(or)4.041
-E F1(macr)4.042 E(o)-.45 E F0(,)A F1 -.1(ke)4.042 G(yname)-.2 E F0 1.542
-(is the name of a k)4.222 F 1.842 -.15(ey s)-.1 H 1.542(pelled out in)
-.15 F 2.5(English. F)108 540 R(or e)-.15 E(xample:)-.15 E
-(Control-u: uni)144 564 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E
-(Meta-Rubout: backw)144 576 Q(ard-kill-w)-.1 E(ord)-.1 E
-(Control-o: "> output")144 588 Q .699(In the abo)108 604.8 R .998 -.15
-(ve ex)-.15 H(ample,).15 E F1(C\255u)3.038 E F0 .698
-(is bound to the function)3.448 F F2(uni)3.198 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M\255DEL)3.878 E F0 .698
-(is bound to the func-)3.728 F(tion)108 616.8 Q F2
-(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F1
+(\214ed in one of tw)108 564 R 3.353(ow)-.1 G .853(ays: as a symbolic k)
+-3.453 F 1.153 -.15(ey n)-.1 H .853(ame, possibly with).15 F F2
+(Meta\255)3.353 E F0(or)3.353 E F2(Contr)3.353 E(ol\255)-.45 E F0
+(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15(ey)-.1 G(sequence.)108
+576 Q 1.541(When using the form)108 592.8 R F1 -.1(ke)4.041 G(yname).1 E
+F0(:)A F2(function\255name).833 E F0(or)4.041 E F2(macr)4.042 E(o)-.45 E
+F0(,)A F2 -.1(ke)4.042 G(yname)-.2 E F0 1.542(is the name of a k)4.222 F
+1.842 -.15(ey s)-.1 H 1.542(pelled out in).15 F 2.5(English. F)108 604.8
+R(or e)-.15 E(xample:)-.15 E(Control-u: uni)144 628.8 Q -.15(ve)-.25 G
+(rsal\255ar).15 E(gument)-.18 E(Meta-Rubout: backw)144 640.8 Q
+(ard-kill-w)-.1 E(ord)-.1 E(Control-o: "> output")144 652.8 Q .699
+(In the abo)108 669.6 R .998 -.15(ve ex)-.15 H(ample,).15 E F2(C\255u)
+3.038 E F0 .698(is bound to the function)3.448 F F1(uni)3.198 E -.1(ve)
+-.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F2(M\255DEL)3.878 E F0 .698
+(is bound to the func-)3.728 F(tion)108 681.6 Q F1
+(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F2
(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259
(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-628.8 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .056(In the second form,)108 645.6 R F2("k)2.556
-E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
-2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
-(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
+693.6 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .056(In the second form,)108 710.4 R F1("k)2.556
+E(eyseq")-.1 E F0(:)A F2(function\255name).833 E F0(or)2.556 E F2(macr)
+2.556 E(o)-.45 E F0(,)A F1 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
+(fers from)-.25 F F1 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 657.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+(denoting an entire k)108 722.4 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 669.6 R .686 -.15(ey e)-.1 H
-.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
-(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 681.6 Q("\\C\255u": uni)144 705.6 Q -.15(ve)
--.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 717.6 Q
-("\\e[11~": "Function K)144 729.6 Q .3 -.15(ey 1)-.25 H(").15 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(34)185.115 E 0 Cg EP
+(Some)6.284 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(34)192.895
+E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .314(In this e)108 84 R(xample,)-.15 E/F1 10/Times-Italic@0 SF
-(C\255u)2.654 E F0 .314(is ag)3.064 F .315(ain bound to the function)
--.05 F/F2 10/Times-Bold@0 SF(uni)2.815 E -.1(ve)-.1 G(rsal\255ar).1 E
-(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0 .315
-(is bound to the func-)3.545 F(tion)108 96 Q F2 -.18(re)2.5 G<ad72>.18 E
-(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)3.01
-E F0(is bound to insert the te)3.94 E(xt)-.15 E/F3 10/Courier@0 SF
+-.35 E .386(GNU Emacs style k)108 84 R .686 -.15(ey e)-.1 H .385
+(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
+(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
+(are not recognized.)108 96 Q("\\C\255u": uni)144 120 Q -.15(ve)-.25 G
+(rsal\255ar).15 E(gument)-.18 E
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 132 Q
+("\\e[11~": "Function K)144 144 Q .3 -.15(ey 1)-.25 H(").15 E .314
+(In this e)108 160.8 R(xample,)-.15 E/F1 10/Times-Italic@0 SF(C\255u)
+2.654 E F0 .314(is ag)3.064 F .315(ain bound to the function)-.05 F/F2
+10/Times-Bold@0 SF(uni)2.815 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E
+F0(.)A F1 .315(C\255x C\255r)5.155 F F0 .315(is bound to the func-)3.545
+F(tion)108 172.8 Q F2 -.18(re)2.5 G<ad72>.18 E(ead\255init\255\214le)
+-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)3.01 E F0
+(is bound to insert the te)3.94 E(xt)-.15 E/F3 10/Courier@0 SF
(Function Key 1)2.5 E F0(.)A
-(The full set of GNU Emacs style escape sequences is)108 112.8 Q F2
-<5c43ad>144 124.8 Q F0(control pre\214x)20.3 E F2<5c4dad>144 136.8 Q F0
-(meta pre\214x)18.08 E F2(\\e)144 148.8 Q F0(an escape character)28.78 E
-F2(\\\\)144 160.8 Q F0(backslash)30.44 E F2(\\")144 172.8 Q F0
-(literal ")27.67 E F2<5c08>144 184.8 Q F0(literal \010)30.44 E(In addit\
+(The full set of GNU Emacs style escape sequences is)108 189.6 Q F2
+<5c43ad>144 201.6 Q F0(control pre\214x)20.3 E F2<5c4dad>144 213.6 Q F0
+(meta pre\214x)18.08 E F2(\\e)144 225.6 Q F0(an escape character)28.78 E
+F2(\\\\)144 237.6 Q F0(backslash)30.44 E F2(\\")144 249.6 Q F0
+(literal ")27.67 E F2<5c08>144 261.6 Q F0(literal \010)30.44 E(In addit\
ion to the GNU Emacs style escape sequences, a second set of backslash \
-escapes is a)108 201.6 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 213.6 Q
-F0(alert \(bell\))28.22 E F2(\\b)144 225.6 Q F0(backspace)27.66 E F2
-(\\d)144 237.6 Q F0(delete)27.66 E F2(\\f)144 249.6 Q F0(form feed)29.89
-E F2(\\n)144 261.6 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 273.6 Q F0
-(carriage return)28.78 E F2(\\t)144 285.6 Q F0(horizontal tab)29.89 E F2
-(\\v)144 297.6 Q F0 -.15(ve)28.22 G(rtical tab).15 E F2(\\)144 309.6 Q
+escapes is a)108 278.4 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 290.4 Q
+F0(alert \(bell\))28.22 E F2(\\b)144 302.4 Q F0(backspace)27.66 E F2
+(\\d)144 314.4 Q F0(delete)27.66 E F2(\\f)144 326.4 Q F0(form feed)29.89
+E F2(\\n)144 338.4 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 350.4 Q F0
+(carriage return)28.78 E F2(\\t)144 362.4 Q F0(horizontal tab)29.89 E F2
+(\\v)144 374.4 Q F0 -.15(ve)28.22 G(rtical tab).15 E F2(\\)144 386.4 Q
F1(nnn)A F0(the eight-bit character whose v)18.22 E(alue is the octal v)
-.25 E(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)
-144 321.6 Q F1(HH)A F0(the eight-bit character whose v)13.78 E
+144 398.4 Q F1(HH)A F0(the eight-bit character whose v)13.78 E
(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0
(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.142
-(When entering the te)108 338.4 R 1.141(xt of a macro, single or double\
+(When entering the te)108 415.2 R 1.141(xt of a macro, single or double\
quotes must be used to indicate a macro de\214nition.)-.15 F .089
-(Unquoted te)108 350.4 R .089(xt is assumed to be a function name.)-.15
+(Unquoted te)108 427.2 R .089(xt is assumed to be a function name.)-.15
F .09(In the macro body)5.089 F 2.59(,t)-.65 G .09
(he backslash escapes described abo)-2.59 F -.15(ve)-.15 G(are e)108
-362.4 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
+439.2 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
(ther character in the macro te)-2.5 E(xt, including " and \010.)-.15 E
-F2(Bash)108 379.2 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F
+F2(Bash)108 456 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F
.73 -.15(ey b)-.1 H .429(indings to be displayed or modi\214ed with the)
.15 F F2(bind)2.929 E F0 -.2(bu)2.929 G .429(iltin command.).2 F .045
-(The editing mode may be switched during interacti)108 391.2 R .345 -.15
+(The editing mode may be switched during interacti)108 468 R .345 -.15
(ve u)-.25 H .046(se by using the).15 F F2<ad6f>2.546 E F0 .046
(option to the)2.546 F F2(set)2.546 E F0 -.2(bu)2.546 G .046
-(iltin command).2 F(\(see)108 403.2 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E
+(iltin command).2 F(\(see)108 480 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E
(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2
-(Readline V)87 420 Q(ariables)-.92 E F0 .044(Readline has v)108 432 R
-.043(ariables that can be used to further customize its beha)-.25 F
+(Readline V)87 496.8 Q(ariables)-.92 E F0 .044(Readline has v)108 508.8
+R .043(ariables that can be used to further customize its beha)-.25 F
(vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043
-(riable may be set in the).25 F F1(inpu-)2.553 E(tr)108 444 Q(c)-.37 E
-F0(\214le with a statement of the form)2.81 E F2(set)144 460.8 Q F1
+(riable may be set in the).25 F F1(inpu-)2.553 E(tr)108 520.8 Q(c)-.37 E
+F0(\214le with a statement of the form)2.81 E F2(set)144 537.6 Q F1
(variable\255name value)2.5 E F0 .79(Except where noted, readline v)108
-477.6 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F
+554.4 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F
(alues)-.25 E F2(On)3.29 E F0(or)3.29 E F2(Off)3.29 E F0 .79
(\(without re)3.29 F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)
-5.79 E .449(nized v)108 489.6 R .448(ariable names are ignored.)-.25 F
+5.79 E .449(nized v)108 566.4 R .448(ariable names are ignored.)-.25 F
.448(When a v)5.448 F .448(ariable v)-.25 F .448
(alue is read, empty or null v)-.25 F .448(alues, "on" \(case-insensi-)
--.25 F(ti)108 501.6 Q -.15(ve)-.25 G .467(\), and "1" are equi).15 F
+-.25 F(ti)108 578.4 Q -.15(ve)-.25 G .467(\), and "1" are equi).15 F
-.25(va)-.25 G .468(lent to).25 F F2(On)2.968 E F0 5.468(.A)C .468
(ll other v)-5.468 F .468(alues are equi)-.25 F -.25(va)-.25 G .468
(lent to).25 F F2(Off)2.968 E F0 5.468(.T)C .468(he v)-5.468 F .468
-(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 513.6 S(lues are:)
-.25 E F2(bell\255style \(audible\))108 530.4 Q F0 .011
-(Controls what happens when readline w)144 542.4 R .011
+(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 590.4 S(lues are:)
+.25 E F2(bell\255style \(audible\))108 607.2 Q F0 .011
+(Controls what happens when readline w)144 619.2 R .011
(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F2(none)2.51
E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
-(rings the bell.)144 554.4 R .94(If set to)5.94 F F2(visible)3.44 E F0
+(rings the bell.)144 631.2 R .94(If set to)5.94 F F2(visible)3.44 E F0
3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F2(audible)3.44 E F0(,)A
-(readline attempts to ring the terminal')144 566.4 Q 2.5(sb)-.55 G(ell.)
--2.5 E F2(bind\255tty\255special\255chars \(On\))108 578.4 Q F0 .056
-(If set to)144 590.4 R F2(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
+(readline attempts to ring the terminal')144 643.2 Q 2.5(sb)-.55 G(ell.)
+-2.5 E F2(bind\255tty\255special\255chars \(On\))108 655.2 Q F0 .056
+(If set to)144 667.2 R F2(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
s to bind the control characters treated specially by the k)-2.556 F
-(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 602.4 Q -.15
+(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 679.2 Q -.15
(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)
--.25 G(lents.).25 E F2(comment\255begin \(`)108 614.4 Q(`#')-.63 E('\))
--.63 E F0 .884(The string that is inserted when the readline)144 626.4 R
+-.25 G(lents.).25 E F2(comment\255begin \(`)108 691.2 Q(`#')-.63 E('\))
+-.63 E F0 .884(The string that is inserted when the readline)144 703.2 R
F2(insert\255comment)3.385 E F0 .885(command is e)3.385 F -.15(xe)-.15 G
-3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 638.4 Q F2
+3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 715.2 Q F2
(M\255#)2.5 E F0(in emacs mode and to)2.5 E F2(#)2.5 E F0
-(in vi command mode.)2.5 E F2(completion\255ignor)108 650.4 Q
-(e\255case \(Off\))-.18 E F0(If set to)144 662.4 Q F2(On)2.5 E F0 2.5
-(,r)C(eadline performs \214lename matching and completion in a case\255\
-insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F2(completion\255pr)
-108 674.4 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length\
- in characters of the common pre\214x of a list of possible completions\
- that is displayed)144 686.4 R 1.274(without modi\214cation.)144 698.4 R
-1.274(When set to a v)6.274 F 1.274
-(alue greater than zero, common pre\214x)-.25 F 1.275
-(es longer than this)-.15 F -.25(va)144 710.4 S(lue are replaced with a\
-n ellipsis when displaying possible completions.).25 E(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(35)185.115 E 0 Cg EP
+(in vi command mode.)2.5 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905
+E(35)192.895 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(completion\255query\255items \(100\))108 84
-Q F0 .53(This determines when the user is queried about vie)144 96 R
-.529(wing the number of possible completions gen-)-.25 F .56
-(erated by the)144 108 R F1(possible\255completions)3.06 E F0 3.06
-(command. It)3.06 F .561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)
--3.061 E .561(ger v)-.15 F .561(alue greater than or)-.25 F .783
-(equal to zero.)144 120 R .783(If the number of possible completions is\
- greater than or equal to the v)5.783 F .782(alue of this)-.25 F -.25
-(va)144 132 S .237(riable, the user is ask).25 F .237
-(ed whether or not he wishes to vie)-.1 F 2.737(wt)-.25 G .237
-(hem; otherwise the)-2.737 F 2.737(ya)-.15 G .237(re simply listed)
--2.737 F(on the terminal.)144 144 Q F1(con)108 156 Q -.1(ve)-.4 G
-(rt\255meta \(On\)).1 E F0 .613(If set to)144 168 R F1(On)3.113 E F0
-3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4 G .613
+-.35 E/F1 10/Times-Bold@0 SF(completion\255ignor)108 84 Q
+(e\255case \(Off\))-.18 E F0(If set to)144 96 Q F1(On)2.5 E F0 2.5(,r)C
+(eadline performs \214lename matching and completion in a case\255insen\
+siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1(completion\255pr)108
+108 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length in ch\
+aracters of the common pre\214x of a list of possible completions that \
+is displayed)144 120 R 1.274(without modi\214cation.)144 132 R 1.274
+(When set to a v)6.274 F 1.274(alue greater than zero, common pre\214x)
+-.25 F 1.275(es longer than this)-.15 F -.25(va)144 144 S(lue are repla\
+ced with an ellipsis when displaying possible completions.).25 E F1
+(completion\255query\255items \(100\))108 156 Q F0 .53
+(This determines when the user is queried about vie)144 168 R .529
+(wing the number of possible completions gen-)-.25 F .56(erated by the)
+144 180 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
+.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
+-.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 192 R
+.783(If the number of possible completions is greater than or equal to \
+the v)5.783 F .782(alue of this)-.25 F -.25(va)144 204 S .237
+(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
+-.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
+.237(re simply listed)-2.737 F(on the terminal.)144 216 Q F1(con)108 228
+Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 240 R F1(On)
+3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4 G .613
(rt characters with the eighth bit set to an ASCII k).15 F .912 -.15
(ey s)-.1 H .612(equence by).15 F .541
(stripping the eighth bit and pre\214xing an escape character \(in ef)
-144 180 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 SF
-.542(meta pr)3.042 F(e-)-.37 E<8c78>144 192 Q F0(\).)A F1
-(disable\255completion \(Off\))108 204 Q F0 .038(If set to)144 216 R F1
+144 252 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 SF
+.542(meta pr)3.042 F(e-)-.37 E<8c78>144 264 Q F0(\).)A F1
+(disable\255completion \(Off\))108 276 Q F0 .038(If set to)144 288 R F1
(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538 F .038
(ord completion.)-.1 F .038
(Completion characters will be inserted into the)5.038 F(line as if the)
-144 228 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
-(.)A F1(editing\255mode \(emacs\))108 240 Q F0 .252
-(Controls whether readline be)144 252 R .253(gins with a set of k)-.15 F
+144 300 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
+(.)A F1(editing\255mode \(emacs\))108 312 Q F0 .252
+(Controls whether readline be)144 324 R .253(gins with a set of k)-.15 F
.553 -.15(ey b)-.1 H .253(indings similar to).15 F F2(emacs)2.753 E F0
(or)2.753 E F2(vi)2.753 E F0(.)A F1(editing\255mode)5.253 E F0
-(can be set to either)144 264 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
-F0(.)A F1(echo\255contr)108 276 Q(ol\255characters \(On\))-.18 E F0
-1.211(When set to)144 288 R F1(On)3.711 E F0 3.711(,o)C 3.711(no)-3.711
+(can be set to either)144 336 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
+F0(.)A F1(echo\255contr)108 348 Q(ol\255characters \(On\))-.18 E F0
+1.211(When set to)144 360 R F1(On)3.711 E F0 3.711(,o)C 3.711(no)-3.711
G 1.211(perating systems that indicate the)-3.711 F 3.711(ys)-.15 G 1.21
(upport it, readline echoes a character)-3.711 F
-(corresponding to a signal generated from the k)144 300 Q -.15(ey)-.1 G
-(board.).15 E F1(enable\255k)108 312 Q(eypad \(Off\))-.1 E F0 .892
-(When set to)144 324 R F1(On)3.393 E F0 3.393(,r)C .893
+(corresponding to a signal generated from the k)144 372 Q -.15(ey)-.1 G
+(board.).15 E F1(enable\255k)108 384 Q(eypad \(Off\))-.1 E F0 .892
+(When set to)144 396 R F1(On)3.393 E F0 3.393(,r)C .893
(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
.893(pad when it is called.).15 F .893(Some sys-)5.893 F
-(tems need this to enable the arro)144 336 Q 2.5(wk)-.25 G -.15(ey)-2.6
-G(s.).15 E F1(expand\255tilde \(Off\))108 348 Q F0(If set to)144 360 Q
-F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
-(xpansion is performed when readline attempts w)-.15 E(ord completion.)
--.1 E F1(history\255pr)108 372 Q(eser)-.18 E -.1(ve)-.1 G
-(\255point \(Off\)).1 E F0 1.493(If set to)144 384 R F1(on)3.993 E F0
-3.993(,t)C 1.493(he history code attempts to place point at the same lo\
-cation on each history line)-3.993 F(retrie)144 396 Q -.15(ve)-.25 G 2.5
-(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0
-(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(0\))108 408
-Q F0 .462(Set the maximum number of history entries sa)144 420 R -.15
-(ve)-.2 G 2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963
-F .463(If set to zero, the number of)5.463 F
-(entries in the history list is not limited.)144 432 Q F1
-(horizontal\255scr)108 444 Q(oll\255mode \(Off\))-.18 E F0 .449
-(When set to)144 456 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448
-(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448
+(tems need this to enable the arro)144 408 Q 2.5(wk)-.25 G -.15(ey)-2.6
+G(s.).15 E F1(enable\255meta\255k)108 420 Q(ey \(On\))-.1 E F0 .64
+(When set to)144 432 R F1(On)3.14 E F0 3.14(,r)C .64
+(eadline will try to enable an)-3.14 F 3.14(ym)-.15 G .64
+(eta modi\214er k)-3.14 F .94 -.15(ey t)-.1 H .64
+(he terminal claims to support).15 F(when it is called.)144 444 Q
+(On man)5 E 2.5(yt)-.15 G(erminals, the meta k)-2.5 E .3 -.15(ey i)-.1 H
+2.5(su).15 G(sed to send eight-bit characters.)-2.5 E F1
+(expand\255tilde \(Off\))108 456 Q F0(If set to)144 468 Q F1(on)2.5 E F0
+2.5(,t)C(ilde e)-2.5 E(xpansion is performed when readline attempts w)
+-.15 E(ord completion.)-.1 E F1(history\255pr)108 480 Q(eser)-.18 E -.1
+(ve)-.1 G(\255point \(Off\)).1 E F0 1.492(If set to)144 492 R F1(on)
+3.992 E F0 3.992(,t)C 1.493(he history code attempts to place point at \
+the same location on each history line)-3.992 F(retrie)144 504 Q -.15
+(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G
+(ious-history).15 E F0(or)2.5 E F1(next-history)2.5 E F0(.)A F1
+(history\255size \(0\))108 516 Q F0 .463
+(Set the maximum number of history entries sa)144 528 R -.15(ve)-.2 G
+2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963 F .462
+(If set to zero, the number of)5.463 F
+(entries in the history list is not limited.)144 540 Q F1
+(horizontal\255scr)108 552 Q(oll\255mode \(Off\))-.18 E F0 .448
+(When set to)144 564 R F1(On)2.948 E F0 2.948(,m)C(ak)-2.948 E .448
+(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449
(crolling the input horizontally on a)-2.948 F 1.194(single screen line\
when it becomes longer than the screen width rather than wrapping to a\
- ne)144 468 R(w)-.25 E(line.)144 480 Q F1(input\255meta \(Off\))108 492
-Q F0 .228(If set to)144 504 R F1(On)2.728 E F0 2.728(,r)C .227(eadline \
+ ne)144 576 R(w)-.25 E(line.)144 588 Q F1(input\255meta \(Off\))108 600
+Q F0 .227(If set to)144 612 R F1(On)2.727 E F0 2.727(,r)C .228(eadline \
will enable eight-bit input \(that is, it will not strip the high bit f\
-rom the char)-2.728 F(-)-.2 E .956(acters it reads\), re)144 516 R -.05
+rom the char)-2.727 F(-)-.2 E .957(acters it reads\), re)144 624 R -.05
(ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F
-.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F
-(synon)144 528 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 540 Q
+.956(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F
+(synon)144 636 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 648 Q
(ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))-.63 E F0 .439(\
The string of characters that should terminate an incremental search wi\
-thout subsequently e)144 552 R -.15(xe)-.15 G(cut-).15 E .934
-(ing the character as a command.)144 564 R .935(If this v)5.935 F .935
-(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.435(nav).15 G .935
-(alue, the characters)-3.685 F F2(ESC)3.435 E F0(and)144 576 Q F2
+thout subsequently e)144 660 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 672 R .935(If this v)5.935 F .935
+(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
+(alue, the characters)-3.684 F F2(ESC)3.434 E F0(and)144 684 Q F2
(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke)
-108 588 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144
-600 R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
-(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.02
-(emacs, emacs\255standar)4.52 F(d,)-.37 E .068
-(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 612 R F0 2.568(,a)C
+108 696 S(ymap \(emacs\)).1 E F0 2.02(Set the current readline k)144 708
+R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
+(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.021
+(emacs, emacs\255standar)4.521 F(d,)-.37 E .069
+(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 720 R F0 2.568(,a)C
(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0 .068
(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command)
-2.569 E F0(;)A F2(emacs)2.569 E F0 1.544(is equi)144 624 R -.25(va)-.25
-G 1.544(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C
-1.544(he def)-6.544 F 1.544(ault v)-.1 F 1.544(alue is)-.25 F F2(emacs)
-4.044 E F0 4.044(;t).27 G 1.544(he v)-4.044 F 1.544(alue of)-.25 F F1
-(editing\255mode)4.043 E F0(also)4.043 E(af)144 636 Q(fects the def)-.25
-E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 648 Q
-(ectories \(On\))-.18 E F0(If set to)144 660 Q F1(On)2.5 E F0 2.5(,c)C
-(ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
-.15 E F1(mark\255modi\214ed\255lines \(Off\))108 672 Q F0(If set to)144
-684 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
--.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1
-(*)A F0(\).)A F1(mark\255symlink)108 696 Q(ed\255dir)-.1 E
-(ectories \(Off\))-.18 E F0 .175(If set to)144 708 R F1(On)2.675 E F0
-2.675(,c)C .175
-(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 720
-Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(36)185.115 E 0 Cg EP
+2.568 E F0(;)A F2(emacs)2.568 E F0(GNU Bash-4.1)72 768 Q(2009 October 9)
+142.905 E(36)192.895 E 0 Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(match\255hidden\255\214les \(On\))108 84 Q
-F0 .193(This v)144 96 R .193(ariable, when set to)-.25 F F1(On)2.693 E
-F0 2.693(,c)C .192(auses readline to match \214les whose names be)-2.693
-F .192(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E 1.023
+-.35 E 1.543(is equi)144 84 R -.25(va)-.25 G 1.543(lent to).25 F/F1 10
+/Times-Italic@0 SF(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C 1.544
+(he def)-6.544 F 1.544(ault v)-.1 F 1.544(alue is)-.25 F F1(emacs)4.044
+E F0 4.044(;t).27 G 1.544(he v)-4.044 F 1.544(alue of)-.25 F/F2 10
+/Times-Bold@0 SF(editing\255mode)4.044 E F0(also)4.044 E(af)144 96 Q
+(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F2
+(mark\255dir)108 108 Q(ectories \(On\))-.18 E F0(If set to)144 120 Q F2
+(On)2.5 E F0 2.5(,c)C(ompleted directory names ha)-2.5 E .3 -.15(ve a s)
+-.2 H(lash appended.).15 E F2(mark\255modi\214ed\255lines \(Off\))108
+132 Q F0(If set to)144 144 Q F2(On)2.5 E F0 2.5(,h)C
+(istory lines that ha)-2.5 E .3 -.15(ve b)-.2 H
+(een modi\214ed are displayed with a preceding asterisk \().15 E F2(*)A
+F0(\).)A F2(mark\255symlink)108 156 Q(ed\255dir)-.1 E(ectories \(Off\))
+-.18 E F0 .175(If set to)144 168 R F2(On)2.675 E F0 2.675(,c)C .175
+(ompleted names which are symbolic links to directories ha)-2.675 F .475
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 180
+Q(alue of)-.25 E F2(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F2
+(match\255hidden\255\214les \(On\))108 192 Q F0 .192(This v)144 204 R
+.192(ariable, when set to)-.25 F F2(On)2.692 E F0 2.692(,c)C .192
+(auses readline to match \214les whose names be)-2.692 F .193
+(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E 1.024
(\214les\) when performing \214lename completion, unless the leading `.)
-144 108 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.024
-(upplied by the user in the)-3.523 F(\214lename to be completed.)144 120
-Q F1(output\255meta \(Off\))108 132 Q F0 .507(If set to)144 144 R F1(On)
-3.007 E F0 3.007(,r)C .507(eadline will display characters with the eig\
-hth bit set directly rather than as a meta-)-3.007 F(pre\214x)144 156 Q
-(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 168 Q F0
-.808(If set to)144 180 R F1(On)3.308 E F0 3.308(,r)C .808
-(eadline uses an internal)-3.308 F/F2 10/Times-Italic@0 SF(mor)3.308 E
-(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
-(ager to display a screenful of possible comple-)-3.308 F
-(tions at a time.)144 192 Q F1
-(print\255completions\255horizontally \(Off\))108 204 Q F0 1.319
-(If set to)144 216 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.819
-F(order)144 228 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1 -2.29 -.18(re v)108 240 T(ert\255all\255at\255newline \(Off\)).08 E
-F0 .872(If set to)144 252 R F1(on)3.372 E F0 3.372(,r)C .873
+144 216 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.023
+(upplied by the user in the)-3.523 F(\214lename to be completed.)144 228
+Q F2(output\255meta \(Off\))108 240 Q F0 .506(If set to)144 252 R F2(On)
+3.006 E F0 3.006(,r)C .507(eadline will display characters with the eig\
+hth bit set directly rather than as a meta-)-3.006 F(pre\214x)144 264 Q
+(ed escape sequence.)-.15 E F2(page\255completions \(On\))108 276 Q F0
+.809(If set to)144 288 R F2(On)3.308 E F0 3.308(,r)C .808
+(eadline uses an internal)-3.308 F F1(mor)3.308 E(e)-.37 E F0(-lik)A
+3.308(ep)-.1 G .808(ager to display a screenful of possible comple-)
+-3.308 F(tions at a time.)144 300 Q F2
+(print\255completions\255horizontally \(Off\))108 312 Q F0 1.318
+(If set to)144 324 R F2(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
+play completions with matches sorted horizontally in alphabetical)-3.818
+F(order)144 336 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F2 -2.29 -.18(re v)108 348 T(ert\255all\255at\255newline \(Off\)).08 E
+F0 .873(If set to)144 360 R F2(on)3.373 E F0 3.373(,r)C .872
(eadline will undo all changes to history lines before returning when)
--3.372 F F1(accept\255line)3.373 E F0(is)3.373 E -.15(exe)144 264 S
+-3.373 F F2(accept\255line)3.372 E F0(is)3.372 E -.15(exe)144 372 S
2.686(cuted. By).15 F(def)2.686 E .186
(ault, history lines may be modi\214ed and retain indi)-.1 F .186
-(vidual undo lists across calls to)-.25 F F1 -.18(re)144 276 S(adline)
-.18 E F0(.)A F1(sho)108 288 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
-F0 .477(This alters the def)144 300 R .477(ault beha)-.1 F .477
-(vior of the completion functions.)-.2 F .478(If set to)5.478 F F1(on)
-2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.15(ve m)-.2 H
+(vidual undo lists across calls to)-.25 F F2 -.18(re)144 384 S(adline)
+.18 E F0(.)A F2(sho)108 396 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
+F0 .478(This alters the def)144 408 R .478(ault beha)-.1 F .478
+(vior of the completion functions.)-.2 F .477(If set to)5.477 F F2(on)
+2.977 E F0 2.977(,w)C .477(ords which ha)-3.077 F .777 -.15(ve m)-.2 H
(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 312 R(bell.)144 324 Q F1
-(sho)108 336 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
-(This alters the def)144 348 R 5.345(ault beha)-.1 F 5.345
-(vior of the completion functions in a f)-.2 F 5.346(ashion similar to)
--.1 F F1(sho)144 360 Q(w\255all\255if\255ambiguous)-.1 E F0 6.923(.I)C
-4.423(fs)-6.923 G 1.923(et to)-4.423 F F1(on)4.423 E F0 4.423(,w)C 1.923
-(ords which ha)-4.523 F 2.222 -.15(ve m)-.2 H 1.922
-(ore than one possible completion).15 F 1.039(without an)144 372 R 3.539
+isted immediately instead of ringing the)144 420 R(bell.)144 432 Q F2
+(sho)108 444 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
+(This alters the def)144 456 R 5.346(ault beha)-.1 F 5.345
+(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
+-.1 F F2(sho)144 468 Q(w\255all\255if\255ambiguous)-.1 E F0 6.922(.I)C
+4.422(fs)-6.922 G 1.922(et to)-4.422 F F2(on)4.422 E F0 4.422(,w)C 1.922
+(ords which ha)-4.522 F 2.223 -.15(ve m)-.2 H 1.923
+(ore than one possible completion).15 F 1.04(without an)144 480 R 3.54
(yp)-.15 G 1.039
-(ossible partial completion \(the possible completions don')-3.539 F
-3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\
-s to be listed immediately instead of ringing the bell.)144 384 Q F1
-(skip\255completed\255text \(Off\))108 396 Q F0 .095(If set to)144 408 R
-F1(On)2.595 E F0 2.595(,t)C .095(his alters the def)-2.595 F .095
-(ault completion beha)-.1 F .094
-(vior when inserting a single match into the line.)-.2 F(It')144 420 Q
-2.545(so)-.55 G .045(nly acti)-2.545 F .345 -.15(ve w)-.25 H .046
-(hen performing completion in the middle of a w).15 F 2.546(ord. If)-.1
-F .046(enabled, readline does not)2.546 F 1.394(insert characters from \
-the completion that match characters after point in the w)144 432 R
-1.394(ord being com-)-.1 F(pleted, so portions of the w)144 444 Q
-(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F1
-(visible\255stats \(Off\))108 456 Q F0 .846(If set to)144 468 R F1(On)
+(ossible partial completion \(the possible completions don')-3.54 F
+3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
+es to be listed immediately instead of ringing the bell.)144 492 Q F2
+(skip\255completed\255text \(Off\))108 504 Q F0 .094(If set to)144 516 R
+F2(On)2.594 E F0 2.594(,t)C .095(his alters the def)-2.594 F .095
+(ault completion beha)-.1 F .095
+(vior when inserting a single match into the line.)-.2 F(It')144 528 Q
+2.546(so)-.55 G .046(nly acti)-2.546 F .346 -.15(ve w)-.25 H .046
+(hen performing completion in the middle of a w).15 F 2.545(ord. If)-.1
+F .045(enabled, readline does not)2.545 F 1.394(insert characters from \
+the completion that match characters after point in the w)144 540 R
+1.395(ord being com-)-.1 F(pleted, so portions of the w)144 552 Q
+(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F2
+(visible\255stats \(Off\))108 564 Q F0 .847(If set to)144 576 R F2(On)
3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
-(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
+(st)-.55 G .846(ype as reported by)-3.346 F F1(stat)3.346 E F0 .846
(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 480 Q F1
-(Readline Conditional Constructs)87 496.8 Q F0 .05
-(Readline implements a f)108 508.8 R .05(acility similar in spirit to t\
-he conditional compilation features of the C preprocessor)-.1 F .096
-(which allo)108 520.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096
+(when listing possible completions.)144 588 Q F2
+(Readline Conditional Constructs)87 604.8 Q F0 .05
+(Readline implements a f)108 616.8 R .05(acility similar in spirit to t\
+he conditional compilation features of the C preprocessor)-.1 F .097
+(which allo)108 628.8 R .097(ws k)-.25 F .396 -.15(ey b)-.1 H .096
(indings and v).15 F .096
-(ariable settings to be performed as the result of tests.)-.25 F .097
-(There are four parser)5.096 F(directi)108 532.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 549.6 Q F0(The)24.89 E F1($if)2.963 E
-F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
- editing mode, the terminal being used,)-.25 F .477
-(or the application using readline.)144 561.6 R .477(The te)5.477 F .477
+(ariable settings to be performed as the result of tests.)-.25 F .096
+(There are four parser)5.096 F(directi)108 640.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F2($if)108 657.6 Q F0(The)24.89 E F2($if)2.962 E
+F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\
+ editing mode, the terminal being used,)-.25 F .478
+(or the application using readline.)144 669.6 R .477(The te)5.477 F .477
(xt of the test e)-.15 F .477
(xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 573.6 Q F1(mode)144 590.4 Q F0(The)
-12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0
+(are required to isolate it.)144 681.6 Q F2(mode)144 698.4 Q F0(The)
+12.67 E F2(mode=)3.711 E F0 1.211(form of the)3.711 F F2($if)3.711 E F0
(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
(sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 602.4 R .565(may be used in conjunction with the)3.065 F
-F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
-3.065 F .735(set bindings in the)180 614.4 R F2(emacs\255standar)3.235 E
-(d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)3.235 E F0 -.1(ke)3.235 G .735
-(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 626.4
-Q F1(term)144 643.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696
-(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
-(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 655.2 R
-.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
-(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 667.2 Q F1(=)3.231
-E F0 .731(is tested ag)3.231 F .732(ainst the both full name of the ter\
-minal and the portion of the terminal)-.05 F(name before the \214rst)180
-679.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
-(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E F1(application)144 696 Q F0(The)180 708
-Q F1(application)3.003 E F0 .503
-(construct is used to include application-speci\214c settings.)3.003 F
-.503(Each program)5.503 F .114(using the readline library sets the)180
-720 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
-(nd an initialization \214le can test for a)-2.614 F(GNU Bash-4.1)72 768
-Q(2009 September 16)135.125 E(37)185.115 E 0 Cg EP
+(mode. This)180 710.4 R .565(may be used in conjunction with the)3.065 F
+F2 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
+3.065 F .735(set bindings in the)180 722.4 R F1(emacs\255standar)3.235 E
+(d)-.37 E F0(and)3.235 E F1(emacs\255ctlx)3.235 E F0 -.1(ke)3.235 G .735
+(ymaps only if readline is starting)-.05 F(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(37)192.895 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .501(particular v)180 84 R 3.001(alue. This)-.25 F .501
-(could be used to bind k)3.001 F .801 -.15(ey s)-.1 H .5
-(equences to functions useful for a spe-).15 F .396(ci\214c program.)180
-96 R -.15(Fo)5.396 G 2.896(ri).15 G .396(nstance, the follo)-2.896 F
-.396(wing command adds a k)-.25 F .696 -.15(ey s)-.1 H .397
-(equence that quotes the).15 F(current or pre)180 108 Q(vious w)-.25 E
-(ord in Bash:)-.1 E/F1 10/Times-Bold@0 SF($if)180 132 Q F0(Bash)2.5 E
-2.5(#Q)180 144 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C\255xq": "\\eb\\"\\ef\\"")180 156 Q F1($endif)180 168 Q($endif)108
-184.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
+-.35 E(out in emacs mode.)180 84 Q/F1 10/Times-Bold@0 SF(term)144 100.8
+Q F0(The)15.46 E F1(term=)3.197 E F0 .696
+(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
+(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 112.8 R
+.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
+(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 124.8 Q F1(=)3.232
+E F0 .732(is tested ag)3.232 F .732(ainst the both full name of the ter\
+minal and the portion of the terminal)-.05 F(name before the \214rst)180
+136.8 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E/F2 10
+/Times-Italic@0 SF(sun)2.84 E F0(to match both)2.74 E F2(sun)2.84 E F0
+(and)2.74 E F2(sun\255cmd)2.5 E F0 2.5(,f).77 G(or instance.)-2.5 E F1
+(application)144 153.6 Q F0(The)180 165.6 Q F1(application)3.003 E F0
+.503(construct is used to include application-speci\214c settings.)3.003
+F .503(Each program)5.503 F .114(using the readline library sets the)180
+177.6 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
+(nd an initialization \214le can test for a)-2.614 F .5(particular v)180
+189.6 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
+(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397
+(ci\214c program.)180 201.6 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
+(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 213.6
+Q(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 237.6 Q F0(Bash)2.5 E 2.5
+(#Q)180 249.6 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
+("\\C\255xq": "\\eb\\"\\ef\\"")180 261.6 Q F1($endif)180 273.6 Q($endif)
+108 290.4 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
-108 201.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
+108 307.2 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
-(cuted if the test f).15 E(ails.)-.1 E F1($include)108 218.4 Q F0 .357
-(This directi)144 230.4 R .657 -.15(ve t)-.25 H(ak).15 E .357
-(es a single \214lename as an ar)-.1 F .356
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 324 Q F0 .356
+(This directi)144 336 R .656 -.15(ve t)-.25 H(ak).15 E .356
+(es a single \214lename as an ar)-.1 F .357
(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 242.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E/F2 10/Times-Italic@0 SF(/etc/inputr)2.5
-E(c)-.37 E F0(:)A F1($include)144 266.4 Q F2(/etc/inputr)5.833 E(c)-.37
-E F1(Sear)87 283.2 Q(ching)-.18 E F0 .834(Readline pro)108 295.2 R .834
+144 348 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
+($include)144 372 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 388.8 Q
+(ching)-.18 E F0 .835(Readline pro)108 400.8 R .835
(vides commands for searching through the command history \(see)-.15 F
-/F3 9/Times-Bold@0 SF(HIST)3.335 E(OR)-.162 E(Y)-.315 E F0(belo)3.085 E
-.835(w\) for lines)-.25 F(containing a speci\214ed string.)108 307.2 Q
+/F3 9/Times-Bold@0 SF(HIST)3.334 E(OR)-.162 E(Y)-.315 E F0(belo)3.084 E
+.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 412.8 Q
(There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E
(emental)-.37 E F0(and)3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51
-E .698(Incremental searches be)108 324 R .698
+E .697(Incremental searches be)108 429.6 R .697
(gin before the user has \214nished typing the search string.)-.15 F
-.697(As each character of the)5.697 F .112
-(search string is typed, readline displays the ne)108 336 R .112
+.698(As each character of the)5.698 F .113
+(search string is typed, readline displays the ne)108 441.6 R .112
(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
-E 5.113(.A)-.55 G(n)-5.113 E .542
-(incremental search requires only as man)108 348 R 3.042(yc)-.15 G .542
-(haracters as needed to \214nd the desired history entry)-3.042 F 5.541
-(.T)-.65 G .541(he char)-5.541 F(-)-.2 E .224(acters present in the v)
-108 360 R .224(alue of the)-.25 F F1(isear)2.724 E(ch-terminators)-.18 E
-F0 -.25(va)2.724 G .224
+E 5.112(.A)-.55 G(n)-5.112 E .542
+(incremental search requires only as man)108 453.6 R 3.042(yc)-.15 G
+.542(haracters as needed to \214nd the desired history entry)-3.042 F
+5.542(.T)-.65 G .542(he char)-5.542 F(-)-.2 E .224
+(acters present in the v)108 465.6 R .224(alue of the)-.25 F F1(isear)
+2.724 E(ch-terminators)-.18 E F0 -.25(va)2.724 G .224
(riable are used to terminate an incremental search.).25 F .66
-(If that v)108 372 R .66(ariable has not been assigned a v)-.25 F .66
+(If that v)108 477.6 R .66(ariable has not been assigned a v)-.25 F .66
(alue the Escape and Control-J characters will terminate an incre-)-.25
-F .096(mental search.)108 384 R .096(Control-G will abort an incrementa\
-l search and restore the original line.)5.096 F .097(When the search is)
-5.097 F(terminated, the history entry containing the search string beco\
-mes the current line.)108 396 Q 2.939 -.8(To \214)108 412.8 T 1.339(nd \
-other matching entries in the history list, type Control-S or Control-R\
- as appropriate.).8 F 1.338(This will)6.338 F .674(search backw)108
-424.8 R .674(ard or forw)-.1 F .674(ard in the history for the ne)-.1 F
-.675(xt entry matching the search string typed so f)-.15 F(ar)-.1 E
-5.675(.A)-.55 G -.15(ny)-5.675 G .175(other k)108 436.8 R .475 -.15
-(ey s)-.1 H .174
+F .097(mental search.)108 489.6 R .096(Control-G will abort an incremen\
+tal search and restore the original line.)5.097 F .096
+(When the search is)5.096 F(terminated, the history entry containing th\
+e search string becomes the current line.)108 501.6 Q 2.938 -.8(To \214)
+108 518.4 T 1.339(nd other matching entries in the history list, type C\
+ontrol-S or Control-R as appropriate.).8 F 1.339(This will)6.339 F .675
+(search backw)108 530.4 R .675(ard or forw)-.1 F .675
+(ard in the history for the ne)-.1 F .674
+(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.674
+(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 542.4 R .474 -.15(ey s)-.1
+H .174
(equence bound to a readline command will terminate the search and e).15
-F -.15(xe)-.15 G .174(cute that command.).15 F -.15(Fo)5.174 G(r).15 E
-.54(instance, a)108 448.8 R F2(ne)3.04 E(wline)-.15 E F0 .541
-(will terminate the search and accept the line, thereby e)3.04 F -.15
-(xe)-.15 G .541(cuting the command from the).15 F(history list.)108
-460.8 Q .653(Readline remembers the last incremental search string.)108
-477.6 R .653(If tw)5.653 F 3.153(oC)-.1 G .653
-(ontrol-Rs are typed without an)-3.153 F 3.152(yi)-.15 G(nterv)-3.152 E
-(en-)-.15 E(ing characters de\214ning a ne)108 489.6 Q 2.5(ws)-.25 G
+F -.15(xe)-.15 G .175(cute that command.).15 F -.15(Fo)5.175 G(r).15 E
+.541(instance, a)108 554.4 R F2(ne)3.041 E(wline)-.15 E F0 .541
+(will terminate the search and accept the line, thereby e)3.041 F -.15
+(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 566.4
+Q .653(Readline remembers the last incremental search string.)108 583.2
+R .653(If tw)5.653 F 3.153(oC)-.1 G .653(ontrol-Rs are typed without an)
+-3.153 F 3.153(yi)-.15 G(nterv)-3.153 E(en-)-.15 E
+(ing characters de\214ning a ne)108 595.2 Q 2.5(ws)-.25 G
(earch string, an)-2.5 E 2.5(yr)-.15 G(emembered search string is used.)
-2.5 E .567(Non-incremental searches read the entire search string befo\
-re starting to search for matching history lines.)108 506.4 R(The searc\
-h string may be typed by the user or be part of the contents of the cur\
-rent line.)108 518.4 Q F1(Readline Command Names)87 535.2 Q F0 1.392
-(The follo)108 547.2 R 1.391
+re starting to search for matching history lines.)108 612 R(The search \
+string may be typed by the user or be part of the contents of the curre\
+nt line.)108 624 Q F1(Readline Command Names)87 640.8 Q F0 1.391
+(The follo)108 652.8 R 1.391
(wing is a list of the names of the commands and the def)-.25 F 1.391
(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.891(ya)-.15 G(re)-3.891 E 2.621(bound. Command)108 559.2 R .121
-(names without an accompan)2.621 F .121(ying k)-.15 F .421 -.15(ey s)-.1
-H .122(equence are unbound by def).15 F 2.622(ault. In)-.1 F .122
-(the follo)2.622 F(wing)-.25 E(descriptions,)108 571.2 Q F2(point)3.411
-E F0 .911(refers to the current cursor position, and)3.411 F F2(mark)
-3.411 E F0 .91(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.41
-(db).15 G 3.41(yt)-3.41 G(he)-3.41 E F1(set\255mark)108 583.2 Q F0 2.5
+3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 664.8 R .122
+(names without an accompan)2.622 F .122(ying k)-.15 F .421 -.15(ey s)-.1
+H .121(equence are unbound by def).15 F 2.621(ault. In)-.1 F .121
+(the follo)2.621 F(wing)-.25 E(descriptions,)108 676.8 Q F2(point)3.41 E
+F0 .91(refers to the current cursor position, and)3.41 F F2(mark)3.411 E
+F0 .911(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.411(db)
+.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 688.8 Q F0 2.5
(command. The)2.5 F(te)2.5 E
(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 600 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 612 Q F0(Mo)144 624 Q .3 -.15
-(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 636 Q F0(Mo)144 648 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 660 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 672 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108
-684 Q F0(Mo)144 696 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(38)185.115 E 0 Cg EP
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 705.6 Q(or Mo)-.25 E(ving)-.1
+E F0(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(38)192.895 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF -.25(fo)108 84 S(rward\255w).25 E
-(ord \(M\255f\))-.1 E F0(Mo)144 96 Q .822 -.15(ve f)-.15 H(orw).15 E
-.522(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)-.1 F
-.523(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 108 Q F1(backward\255w)108 120 Q(ord \(M\255b\))
--.1 E F0(Mo)144 132 Q 1.71 -.15(ve b)-.15 H 1.41
+-.35 E/F1 10/Times-Bold@0 SF(beginning\255of\255line \(C\255a\))108 84 Q
+F0(Mo)144 96 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G
+(he start of the current line.)-2.5 E F1(end\255of\255line \(C\255e\))
+108 108 Q F0(Mo)144 120 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G
+(he end of the line.)-2.5 E F1 -.25(fo)108 132 S
+(rward\255char \(C\255f\)).25 E F0(Mo)144 144 Q .3 -.15(ve f)-.15 H(orw)
+.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108
+156 Q F0(Mo)144 168 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
+F1 -.25(fo)108 180 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 192
+Q .823 -.15(ve f)-.15 H(orw).15 E .523(ard to the end of the ne)-.1 F
+.523(xt w)-.15 F 3.023(ord. W)-.1 F .522
+(ords are composed of alphanumeric characters \(let-)-.8 F
+(ters and digits\).)144 204 Q F1(backward\255w)108 216 Q(ord \(M\255b\))
+-.1 E F0(Mo)144 228 Q 1.71 -.15(ve b)-.15 H 1.41
(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 144 Q F1(shell\255f)108 156 Q
-(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 168 Q .784 -.15(ve f)-.15 H(orw)
+(characters \(letters and digits\).)144 240 Q F1(shell\255f)108 252 Q
+(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 264 Q .784 -.15(ve f)-.15 H(orw)
.15 E .484(ard to the end of the ne)-.1 F .484(xt w)-.15 F 2.984(ord. W)
-.1 F .484(ords are delimited by non-quoted shell metacharac-)-.8 F
-(ters.)144 180 Q F1(shell\255backward\255w)108 192 Q(ord)-.1 E F0(Mo)144
-204 Q .909 -.15(ve b)-.15 H .609(ack to the start of the current or pre)
-.15 F .609(vious w)-.25 F 3.109(ord. W)-.1 F .608
-(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 216 Q
-F1(clear\255scr)108 228 Q(een \(C\255l\))-.18 E F0 .993
-(Clear the screen lea)144 240 R .993
+(ters.)144 276 Q F1(shell\255backward\255w)108 288 Q(ord)-.1 E F0(Mo)144
+300 Q .908 -.15(ve b)-.15 H .609(ack to the start of the current or pre)
+.15 F .609(vious w)-.25 F 3.109(ord. W)-.1 F .609
+(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 312 Q
+F1(clear\255scr)108 324 Q(een \(C\255l\))-.18 E F0 .993
+(Clear the screen lea)144 336 R .993
(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
.993(th an ar).4 F .993(gument, refresh the)-.18 F
-(current line without clearing the screen.)144 252 Q F1 -.18(re)108 264
+(current line without clearing the screen.)144 348 Q F1 -.18(re)108 360
S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-276 Q F1(Commands f)87 292.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 304.8 Q(n\))-.15 E F0 .159
-(Accept the line re)144 316.8 R -.05(ga)-.15 G .159
+372 Q F1(Commands f)87 388.8 Q(or Manipulating the History)-.25 E
+(accept\255line \(Newline, Retur)108 400.8 Q(n\))-.15 E F0 .158
+(Accept the line re)144 412.8 R -.05(ga)-.15 G .158
(rdless of where the cursor is.).05 F .158(If this line is non-empty)
-5.158 F 2.658(,a)-.65 G .158(dd it to the history list)-2.658 F .699
-(according to the state of the)144 328.8 R/F2 9/Times-Bold@0 SF
+5.158 F 2.659(,a)-.65 G .159(dd it to the history list)-2.659 F .699
+(according to the state of the)144 424.8 R/F2 9/Times-Bold@0 SF
(HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F
.699(the line is a modi\214ed history line, then)3.199 F
-(restore the history line to its original state.)144 340.8 Q F1(pr)108
-352.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
-(Fetch the pre)144 364.8 Q(vious command from the history list, mo)-.25
-E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 376.8
-Q F0(Fetch the ne)144 388.8 Q(xt command from the history list, mo)-.15
+(restore the history line to its original state.)144 436.8 Q F1(pr)108
+448.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
+(Fetch the pre)144 460.8 Q(vious command from the history list, mo)-.25
+E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 472.8
+Q F0(Fetch the ne)144 484.8 Q(xt command from the history list, mo)-.15
E(ving forw)-.15 E(ard in the list.)-.1 E F1
-(beginning\255of\255history \(M\255<\))108 400.8 Q F0(Mo)144 412.8 Q .3
+(beginning\255of\255history \(M\255<\))108 496.8 Q F0(Mo)144 508.8 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 424.8 Q F0(Mo)144 436.8 Q
+-.65 E F1(end\255of\255history \(M\255>\))108 520.8 Q F0(Mo)144 532.8 Q
.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18
-(re v)108 448.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.471(Search backw)144 460.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.47
+(re v)108 544.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
+1.47(Search backw)144 556.8 R 1.471
+(ard starting at the current line and mo)-.1 F 1.471
(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 472.8 Q F1 -.25(fo)108 484.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
-(Search forw)144 496.8 R 1.131(ard starting at the current line and mo)
--.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 508.8 Q F1
-(non\255incr)108 520.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
-144 532.8 R .164(ard through the history starting at the current line u\
-sing a non-incremental search for)-.1 F 2.5(as)144 544.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 556.8 Q
+(This is an incremental search.)144 568.8 Q F1 -.25(fo)108 580.8 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
+(Search forw)144 592.8 R 1.132(ard starting at the current line and mo)
+-.1 F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)
+-.25 F(.)-.65 E(This is an incremental search.)144 604.8 Q F1
+(non\255incr)108 616.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
+(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)
+144 628.8 R .164(ard through the history starting at the current line u\
+sing a non-incremental search for)-.1 F 2.5(as)144 640.8 S
+(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 652.8 Q
(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.353(Search forw)144 568.8 R 1.354(ard through the history using \
+E F0 1.354(Search forw)144 664.8 R 1.354(ard through the history using \
a non-incremental search for a string supplied by the)-.1 F(user)144
-580.8 Q(.)-.55 E F1(history\255sear)108 592.8 Q(ch\255f)-.18 E(orward)
--.25 E F0 .249(Search forw)144 604.8 R .249(ard through the history for\
+676.8 Q(.)-.55 E F1(history\255sear)108 688.8 Q(ch\255f)-.18 E(orward)
+-.25 E F0 .248(Search forw)144 700.8 R .249(ard through the history for\
the string of characters between the start of the current line)-.1 F
-(and the point.)144 616.8 Q(This is a non-incremental search.)5 E F1
-(history\255sear)108 628.8 Q(ch\255backward)-.18 E F0 .95(Search backw)
-144 640.8 R .951(ard through the history for the string of characters b\
-etween the start of the current)-.1 F(line and the point.)144 652.8 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 664.8 Q
-2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144
-676.8 R .622(gument to the pre)-.18 F .622
-(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
-.622(vious line\))-.25 F .794(at point.)144 688.8 R -.4(Wi)5.794 G .794
-(th an ar).4 F(gument)-.18 E/F3 10/Times-Italic@0 SF(n)3.294 E F0 3.294
-(,i).24 G .794(nsert the)-3.294 F F3(n)3.294 E F0 .794(th w)B .794
-(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .795
-(ords in the)-.1 F(pre)144 700.8 Q .292(vious command be)-.25 F .292
-(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
--2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
-(ument inserts the).18 F F3(n)2.791 E F0 .291(th w)B .291
-(ord from the end of)-.1 F .281(the pre)144 712.8 R .281(vious command.)
--.25 F .281(Once the ar)5.281 F(gument)-.18 E F3(n)2.781 E F0 .281
-(is computed, the ar)2.781 F .281(gument is e)-.18 F .282
-(xtracted as if the "!)-.15 F F3(n)A F0(")A(history e)144 724.8 Q
-(xpansion had been speci\214ed.)-.15 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(39)185.115 E 0 Cg EP
+(and the point.)144 712.8 Q(This is a non-incremental search.)5 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(39)192.895 E 0 Cg EP
%%Page: 40 40
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(yank\255last\255ar)108 84 Q 2.5(g\()-.1 G
--1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308
-(Insert the last ar)144 96 R 1.308(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307
-(vious history entry\).)-.25 F -.4(Wi)144 108 S .735(th an ar).4 F .735
-(gument, beha)-.18 F 1.035 -.15(ve ex)-.2 H .735(actly lik).15 F(e)-.1 E
-F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E
-1.036 -.15(ve c)-.25 H .736(alls to).15 F F1(yank\255last\255ar)3.236 E
-(g)-.1 E F0(mo)3.236 E -.15(ve)-.15 G .728
-(back through the history list, inserting the last ar)144 120 R .728
-(gument of each line in turn.)-.18 F .728(The history e)5.728 F(xpan-)
--.15 E .14(sion f)144 132 R .14(acilities are used to e)-.1 F .14
+-.35 E/F1 10/Times-Bold@0 SF(history\255sear)108 84 Q(ch\255backward)
+-.18 E F0 .951(Search backw)144 96 R .951(ard through the history for t\
+he string of characters between the start of the current)-.1 F
+(line and the point.)144 108 Q(This is a non-incremental search.)5 E F1
+(yank\255nth\255ar)108 120 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622
+(Insert the \214rst ar)144 132 R .622(gument to the pre)-.18 F .622
+(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
+.622(vious line\))-.25 F .795(at point.)144 144 R -.4(Wi)5.795 G .794
+(th an ar).4 F(gument)-.18 E/F2 10/Times-Italic@0 SF(n)3.294 E F0 3.294
+(,i).24 G .794(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794
+(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .794
+(ords in the)-.1 F(pre)144 156 Q .291(vious command be)-.25 F .291
+(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
+-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
+(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .292
+(ord from the end of)-.1 F .282(the pre)144 168 R .282(vious command.)
+-.25 F .282(Once the ar)5.282 F(gument)-.18 E F2(n)2.781 E F0 .281
+(is computed, the ar)2.781 F .281(gument is e)-.18 F .281
+(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 180 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 192 Q
+2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
+(Insert the last ar)144 204 R 1.307(gument to the pre)-.18 F 1.307
+(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
+(vious history entry\).)-.25 F -.4(Wi)144 216 S .736(th an ar).4 F .736
+(gument, beha)-.18 F 1.036 -.15(ve ex)-.2 H .736(actly lik).15 F(e)-.1 E
+F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735 E
+1.035 -.15(ve c)-.25 H .735(alls to).15 F F1(yank\255last\255ar)3.235 E
+(g)-.1 E F0(mo)3.235 E -.15(ve)-.15 G .728
+(back through the history list, inserting the last ar)144 228 R .728
+(gument of each line in turn.)-.18 F .729(The history e)5.728 F(xpan-)
+-.15 E .14(sion f)144 240 R .14(acilities are used to e)-.1 F .14
(xtract the last ar)-.15 F .14(gument, as if the "!$" history e)-.18 F
-.14(xpansion had been speci-)-.15 F(\214ed.)144 144 Q F1
-(shell\255expand\255line \(M\255C\255e\))108 156 Q F0 .623
-(Expand the line as the shell does.)144 168 R .622
-(This performs alias and history e)5.622 F .622
-(xpansion as well as all of the)-.15 F(shell w)144 180 Q(ord e)-.1 E 2.5
-(xpansions. See)-.15 F/F2 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25
+.14(xpansion had been speci-)-.15 F(\214ed.)144 252 Q F1
+(shell\255expand\255line \(M\255C\255e\))108 264 Q F0 .622
+(Expand the line as the shell does.)144 276 R .622
+(This performs alias and history e)5.622 F .623
+(xpansion as well as all of the)-.15 F(shell w)144 288 Q(ord e)-.1 E 2.5
+(xpansions. See)-.15 F/F3 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25
(YE)-.315 G(XP)-2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
(or a description of history e)-2.5 E(xpansion.)-.15 E F1
-(history\255expand\255line \(M\255^\))108 192 Q F0 .938
-(Perform history e)144 204 R .939(xpansion on the current line.)-.15 F
-(See)5.939 E F2(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
-(ANSION)-.666 E F0(belo)3.189 E 3.439(wf)-.25 G .939(or a descrip-)
--3.439 F(tion of history e)144 216 Q(xpansion.)-.15 E F1(magic\255space)
-108 228 Q F0 1.627(Perform history e)144 240 R 1.627
-(xpansion on the current line and insert a space.)-.15 F(See)6.626 E F2
-(HIST)4.126 E(OR)-.162 E 3.876(YE)-.315 G(XP)-3.876 E(ANSION)-.666 E F0
-(belo)144 252 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
-(xpansion.)-.15 E F1(alias\255expand\255line)108 264 Q F0 .394
-(Perform alias e)144 276 R .394(xpansion on the current line.)-.15 F
-(See)5.395 E F2(ALIASES)2.895 E F0(abo)2.645 E .695 -.15(ve f)-.15 H
-.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 288 Q F1
-(history\255and\255alias\255expand\255line)108 300 Q F0
-(Perform history and alias e)144 312 Q(xpansion on the current line.)
--.15 E F1(insert\255last\255ar)108 324 Q(gument \(M\255.)-.1 E 2.5(,M)
-.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 336 S(ynon)-2.5 E(ym for)
+(history\255expand\255line \(M\255^\))108 300 Q F0 .939
+(Perform history e)144 312 R .939(xpansion on the current line.)-.15 F
+(See)5.939 E F3(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
+(ANSION)-.666 E F0(belo)3.189 E 3.438(wf)-.25 G .938(or a descrip-)
+-3.438 F(tion of history e)144 324 Q(xpansion.)-.15 E F1(magic\255space)
+108 336 Q F0 1.626(Perform history e)144 348 R 1.626
+(xpansion on the current line and insert a space.)-.15 F(See)6.627 E F3
+(HIST)4.127 E(OR)-.162 E 3.877(YE)-.315 G(XP)-3.877 E(ANSION)-.666 E F0
+(belo)144 360 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
+(xpansion.)-.15 E F1(alias\255expand\255line)108 372 Q F0 .395
+(Perform alias e)144 384 R .395(xpansion on the current line.)-.15 F
+(See)5.395 E F3(ALIASES)2.895 E F0(abo)2.645 E .694 -.15(ve f)-.15 H
+.394(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 396 Q F1
+(history\255and\255alias\255expand\255line)108 408 Q F0
+(Perform history and alias e)144 420 Q(xpansion on the current line.)
+-.15 E F1(insert\255last\255ar)108 432 Q(gument \(M\255.)-.1 E 2.5(,M)
+.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 444 S(ynon)-2.5 E(ym for)
-.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F1
-(operate\255and\255get\255next \(C\255o\))108 348 Q F0 .948
-(Accept the current line for e)144 360 R -.15(xe)-.15 G .948
-(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.247 -.15
-(ve t)-.25 H 3.447(ot).15 G .947(he current line from the)-3.447 F
-(history for editing.)144 372 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
+(operate\255and\255get\255next \(C\255o\))108 456 Q F0 .947
+(Accept the current line for e)144 468 R -.15(xe)-.15 G .948
+(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.248 -.15
+(ve t)-.25 H 3.448(ot).15 G .948(he current line from the)-3.448 F
+(history for editing.)144 480 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
(ument is ignored.).18 E F1
-(edit\255and\255execute\255command \(C\255xC\255e\))108 384 Q F0(In)144
-396 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
+(edit\255and\255execute\255command \(C\255xC\255e\))108 492 Q F0(In)144
+504 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
(ditor on the current command line, and e)-3.526 F -.15(xe)-.15 G 1.026
(cute the result as shell commands.).15 F F1(Bash)6.026 E F0
-(attempts to in)144 408 Q -.2(vo)-.4 G -.1(ke).2 G F2($VISU)2.6 E(AL)
--.54 E/F3 9/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR)-.162 E F3(,)A F0
-(and)2.25 E/F4 10/Times-Italic@0 SF(emacs)2.5 E F0(as the editor)2.5 E
-2.5(,i)-.4 G 2.5(nt)-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87
-424.8 Q(or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108
-436.8 Q F0 .358(Delete the character at point.)144 448.8 R .358
-(If point is at the be)5.358 F .358
-(ginning of the line, there are no characters in the)-.15 F
-(line, and the last character typed w)144 460.8 Q(as not bound to)-.1 E
-F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F2(EOF)2.5 E F3(.)
-A F1(backward\255delete\255char \(Rubout\))108 472.8 Q F0 .552
-(Delete the character behind the cursor)144 484.8 R 5.553(.W)-.55 G .553
+(attempts to in)144 516 Q -.2(vo)-.4 G -.1(ke).2 G F3($VISU)2.6 E(AL)
+-.54 E/F4 9/Times-Roman@0 SF(,)A F3($EDIT)2.25 E(OR)-.162 E F4(,)A F0
+(and)2.25 E F2(emacs)2.5 E F0(as the editor)2.5 E 2.5(,i)-.4 G 2.5(nt)
+-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87 532.8 Q(or Changing T)
+-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 544.8 Q F0 .357
+(Delete the character at point.)144 556.8 R .358(If point is at the be)
+5.358 F .358(ginning of the line, there are no characters in the)-.15 F
+(line, and the last character typed w)144 568.8 Q(as not bound to)-.1 E
+F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F3(EOF)2.5 E F4(.)
+A F1(backward\255delete\255char \(Rubout\))108 580.8 Q F0 .553
+(Delete the character behind the cursor)144 592.8 R 5.553(.W)-.55 G .553
(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
-.553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553(he deleted te).15 F
-.553(xt on)-.15 F(the kill ring.)144 496.8 Q F1 -.25(fo)108 508.8 S
-(rward\255backward\255delete\255char).25 E F0 .474
-(Delete the character under the cursor)144 520.8 R 2.974(,u)-.4 G .474
-(nless the cursor is at the end of the line, in which case the)-2.974 F
-(character behind the cursor is deleted.)144 532.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 544.8 Q F0 .778(Add the ne)144
-556.8 R .779(xt character typed to the line v)-.15 F 3.279
+.552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F
+.552(xt on)-.15 F(the kill ring.)144 604.8 Q F1 -.25(fo)108 616.8 S
+(rward\255backward\255delete\255char).25 E F0 .473
+(Delete the character under the cursor)144 628.8 R 2.973(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.973 F
+(character behind the cursor is deleted.)144 640.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 652.8 Q F0 .779(Add the ne)144
+664.8 R .779(xt character typed to the line v)-.15 F 3.279
(erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279
-G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.279 E F0 3.279
-(,f)C(or)-3.279 E -.15(ex)144 568.8 S(ample.).15 E F1
-(tab\255insert \(C\255v T)108 580.8 Q(AB\))-.9 E F0
-(Insert a tab character)144 592.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 604.8 Q F0
-(Insert the character typed.)144 616.8 Q F1
-(transpose\255chars \(C\255t\))108 628.8 Q F0 .322
-(Drag the character before point forw)144 640.8 R .321(ard o)-.1 F -.15
-(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
-(ving point forw)-.15 F .321(ard as well.)-.1 F 1.182
-(If point is at the end of the line, then this transposes the tw)144
-652.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 664.8 Q(guments ha)-.18 E
-.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 676.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144
-688.8 R .024(ord before point past the w)-.1 F .023(ord after point, mo)
--.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.523(rt).15 G .023(hat w)
--2.523 F .023(ord as well.)-.1 F .023(If point)5.023 F
-(is at the end of the line, this transposes the last tw)144 700.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(40)185.115 E 0 Cg EP
+G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.278 E F0 3.278
+(,f)C(or)-3.278 E -.15(ex)144 676.8 S(ample.).15 E F1
+(tab\255insert \(C\255v T)108 688.8 Q(AB\))-.9 E F0
+(Insert a tab character)144 700.8 Q(.)-.55 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(40)192.895 E 0 Cg EP
%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(upcase\255w)108 84 Q(ord \(M\255u\))-.1 E
-F0 1.698(Uppercase the current \(or follo)144 96 R 1.698(wing\) w)-.25 F
-4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.999
--.15(ve a)-.25 H -.18(rg).15 G 1.699(ument, uppercase the pre).18 F
-(vious)-.25 E -.1(wo)144 108 S(rd, b).1 E(ut do not mo)-.2 E .3 -.15
-(ve p)-.15 H(oint.).15 E F1(do)108 120 Q(wncase\255w)-.1 E
-(ord \(M\255l\))-.1 E F0(Lo)144 132 Q 1.648
-(wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148
-(ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15
-(ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 144 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 156 Q
-(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 168
+-.35 E/F1 10/Times-Bold@0 SF(self\255insert \(a, b, A, 1, !, ...\))108
+84 Q F0(Insert the character typed.)144 96 Q F1
+(transpose\255chars \(C\255t\))108 108 Q F0 .321
+(Drag the character before point forw)144 120 R .321(ard o)-.1 F -.15
+(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .322
+(ving point forw)-.15 F .322(ard as well.)-.1 F 1.182
+(If point is at the end of the line, then this transposes the tw)144 132
+R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E -.05
+(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 144 Q(guments ha)-.18 E .3
+-.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
+(transpose\255w)108 156 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
+168 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
+-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
+-2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
+(is at the end of the line, this transposes the last tw)144 180 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 192 Q
+(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144 204
+R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)
+-.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 216 S(rd, b).1 E
+(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 228 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 240 Q 1.647
+(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
+(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
+(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
+-.25 F(vious)-.25 E -.1(wo)144 252 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 264 Q
+(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 276
R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)
--.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975
-(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 180 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 192
-S(rwrite\255mode).1 E F0 -.8(To)144 204 S .438(ggle o).8 F -.15(ve)-.15
-G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438
-(xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15 F .437
-(gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4
-(Wi)144 216 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15
-(ve n)-.25 H .781(umeric ar).15 F .781(gument, switches to insert mode.)
--.18 F .781(This command af)5.781 F(fects)-.25 E(only)144 228 Q F1
-(emacs)4.395 E F0(mode;)4.395 E F1(vi)4.395 E F0 1.894(mode does o)4.395
-F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G
-1.894(ach call to)-6.894 F/F2 10/Times-Italic@0 SF -.37(re)4.394 G
-(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968(mode. In)144
-240 R -.15(ove)3.968 G 1.468(rwrite mode, characters bound to).15 F F1
-(self\255insert)3.969 E F0 1.469(replace the te)3.969 F 1.469
-(xt at point rather than)-.15 F .958(pushing the te)144 252 R .958
-(xt to the right.)-.15 F .957(Characters bound to)5.958 F F1
-(backward\255delete\255char)3.457 E F0 .957(replace the character)3.457
-F(before point with a space.)144 264 Q(By def)5 E
-(ault, this command is unbound.)-.1 E F1(Killing and Y)87 280.8 Q
-(anking)-.85 E(kill\255line \(C\255k\))108 292.8 Q F0(Kill the te)144
-304.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 316.8 Q F0(Kill backw)
-144 328.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 340.8 Q F0(Kill backw)144 352.8
+-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 288 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 300
+S(rwrite\255mode).1 E F0 -.8(To)144 312 S .437(ggle o).8 F -.15(ve)-.15
+G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437
+(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438
+(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4
+(Wi)144 324 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
+-.15(ve n)-.25 H .781(umeric ar).15 F .781
+(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
+(fects)-.25 E(only)144 336 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
+4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
+F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F2 10
+/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
+(starts in insert)4.395 F 3.969(mode. In)144 348 R -.15(ove)3.969 G
+1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
+F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
+.957(pushing the te)144 360 R .957(xt to the right.)-.15 F .958
+(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
+.958(replace the character)3.458 F(before point with a space.)144 372 Q
+(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
+388.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 400.8 Q F0
+(Kill the te)144 412.8 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 424.8 Q F0(Kill backw)
+144 436.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 448.8 Q F0(Kill backw)144 460.8
Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 364.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 472.8 Q F0
(Kill all characters on the current line, no matter where point is.)144
-376.8 Q F1(kill\255w)108 388.8 Q(ord \(M\255d\))-.1 E F0 .728
-(Kill from point to the end of the current w)144 400.8 R .729
-(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 412.8 S
+484.8 Q F1(kill\255w)108 496.8 Q(ord \(M\255d\))-.1 E F0 .729
+(Kill from point to the end of the current w)144 508.8 R .728
+(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 520.8 S
(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 424.8 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 436.8 Q(ord behind point.)
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 532.8 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 544.8 Q(ord behind point.)
-.1 E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1
-(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 448.8 Q
-(ord \(M\255d\))-.1 E F0 .729
-(Kill from point to the end of the current w)144 460.8 R .728
-(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 472.8 S
+(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 556.8 Q
+(ord \(M\255d\))-.1 E F0 .728
+(Kill from point to the end of the current w)144 568.8 R .729
+(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 580.8 S
(rd boundaries are the same as those used by).8 E F1(shell\255f)2.5 E
(orward\255w)-.25 E(ord)-.1 E F0(.)A F1(shell\255backward\255kill\255w)
-108 484.8 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 496.8 R
+108 592.8 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 604.8 R
3.025(ord behind point.)-.1 F -.8(Wo)8.025 G 3.025
(rd boundaries are the same as those used by).8 F F1(shell\255back-)
-5.525 E(ward\255w)144 508.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 520.8 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 532.8 R .365
-(ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1
-F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15
-(ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144
-544.8 Q F1(unix\255\214lename\255rubout)108 556.8 Q F0 .166(Kill the w)
-144 568.8 R .166
+5.525 E(ward\255w)144 616.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 628.8 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 640.8 R .364
+(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
+F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
+(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
+652.8 Q F1(unix\255\214lename\255rubout)108 664.8 Q F0 .167(Kill the w)
+144 676.8 R .166
(ord behind point, using white space and the slash character as the w)
--.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 580.8 Q
+-.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 688.8 Q
(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
--2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 592.8 Q F0
-(Delete all spaces and tabs around point.)144 604.8 Q F1(kill\255r)108
-616.8 Q(egion)-.18 E F0(Kill the te)144 628.8 Q(xt in the current re)
--.15 E(gion.)-.15 E F1(copy\255r)108 640.8 Q(egion\255as\255kill)-.18 E
-F0(Cop)144 652.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
-(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 664.8 Q(ord)-.1 E F0(Cop)144 676.8 Q 4.801
-(yt)-.1 G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F
-(uf)-.2 E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3
-(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 688.8
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 700.8 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 712.8 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)
--.1 F 2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008
-(.T)-.55 G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1
-F F1 -.25(fo)4.508 G -.37(r-).25 G(ward\255w)144 724.8 Q(ord)-.1 E F0(.)
-A(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(41)185.115 E 0 Cg EP
+-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 700.8 Q F0
+(Delete all spaces and tabs around point.)144 712.8 Q(GNU Bash-4.1)72
+768 Q(2009 October 9)142.905 E(41)192.895 E 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(yank \(C\255y\))108 84 Q F0 -1(Ya)144 96 S
-(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
-E F1(yank\255pop \(M\255y\))108 108 Q F0
-(Rotate the kill ring, and yank the ne)144 120 Q 2.5(wt)-.25 G 2.5
+-.35 E/F1 10/Times-Bold@0 SF(kill\255r)108 84 Q(egion)-.18 E F0
+(Kill the te)144 96 Q(xt in the current re)-.15 E(gion.)-.15 E F1
+(copy\255r)108 108 Q(egion\255as\255kill)-.18 E F0(Cop)144 120 Q 2.5(yt)
+-.1 G(he te)-2.5 E(xt in the re)-.15 E(gion to the kill b)-.15 E(uf)-.2
+E(fer)-.25 E(.)-.55 E F1(copy\255backward\255w)108 132 Q(ord)-.1 E F0
+(Cop)144 144 Q 4.8(yt)-.1 G 2.3(he w)-4.8 F 2.3
+(ord before point to the kill b)-.1 F(uf)-.2 E(fer)-.25 E 7.301(.T)-.55
+G 2.301(he w)-7.301 F 2.301(ord boundaries are the same as)-.1 F F1
+(back-)4.801 E(ward\255w)144 156 Q(ord)-.1 E F0(.)A F1(copy\255f)108 168
+Q(orward\255w)-.25 E(ord)-.1 E F0(Cop)144 180 Q 4.508(yt)-.1 G 2.008
+(he w)-4.508 F 2.008(ord follo)-.1 F 2.008(wing point to the kill b)-.25
+F(uf)-.2 E(fer)-.25 E 7.007(.T)-.55 G 2.007(he w)-7.007 F 2.007
+(ord boundaries are the same as)-.1 F F1 -.25(fo)4.507 G -.37(r-).25 G
+(ward\255w)144 192 Q(ord)-.1 E F0(.)A F1(yank \(C\255y\))108 204 Q F0 -1
+(Ya)144 216 S(nk the top of the kill ring into the b)1 E(uf)-.2 E
+(fer at point.)-.25 E F1(yank\255pop \(M\255y\))108 228 Q F0
+(Rotate the kill ring, and yank the ne)144 240 Q 2.5(wt)-.25 G 2.5
(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 136.8 Q
-(guments)-.1 E(digit\255ar)108 148.8 Q
-(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642
-(Add this digit to the ar)144 160.8 R .641
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 256.8 Q
+(guments)-.1 E(digit\255ar)108 268.8 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
+(Add this digit to the ar)144 280.8 R .641
(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
-(rg)-3.141 G 3.141(ument. M\255\255).18 F .641(starts a ne)3.141 F(g-)
--.15 E(ati)144 172.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 184.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
-(This is another w)144 196.8 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .779
+(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-)
+-.15 E(ati)144 292.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 304.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
+(This is another w)144 316.8 R .779(ay to specify an ar)-.1 F 3.279
+(gument. If)-.18 F .779(this command is follo)3.279 F .778
(wed by one or more digits,)-.25 F 1.376
(optionally with a leading minus sign, those digits de\214ne the ar)144
-208.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-220.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+328.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+340.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .899(wise ignored.)144 232.8 R .898
-(As a special case, if this command is immediately follo)5.899 F .898
+-.2 F(-)-.2 E .898(wise ignored.)144 352.8 R .898
+(As a special case, if this command is immediately follo)5.898 F .898
(wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 244.8 R .243
+(neither a digit or minus sign, the ar)144 364.8 R .243
(gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 256.8 Q .378
+-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 376.8 Q .378
(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
-.378(gument count)-.18 F(four)144 268.8 Q 2.5(,as)-.4 G(econd time mak)
+.378(gument count)-.18 F(four)144 388.8 Q 2.5(,as)-.4 G(econd time mak)
-2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
-(Completing)87 285.6 Q(complete \(T)108 297.6 Q(AB\))-.9 E F0 1.137
-(Attempt to perform completion on the te)144 309.6 R 1.137
+(Completing)87 405.6 Q(complete \(T)108 417.6 Q(AB\))-.9 E F0 1.137
+(Attempt to perform completion on the te)144 429.6 R 1.137
(xt before point.)-.15 F F1(Bash)6.137 E F0 1.137
-(attempts completion treating the)3.637 F(te)144 321.6 Q .533(xt as a v)
--.15 F .533(ariable \(if the te)-.25 F .533(xt be)-.15 F .533(gins with)
--.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .532(xt be)-.15 F
-.532(gins with)-.15 F F1(~)3.032 E F0 .532(\), hostname \(if the)B(te)
-144 333.6 Q .701(xt be)-.15 F .701(gins with)-.15 F F1(@)3.201 E F0 .701
-(\), or command \(including aliases and functions\) in turn.)B .702
+(attempts completion treating the)3.637 F(te)144 441.6 Q .532(xt as a v)
+-.15 F .532(ariable \(if the te)-.25 F .532(xt be)-.15 F .533(gins with)
+-.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .533(xt be)-.15 F
+.533(gins with)-.15 F F1(~)3.033 E F0 .533(\), hostname \(if the)B(te)
+144 453.6 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701
+(\), or command \(including aliases and functions\) in turn.)B .701
(If none of these pro-)5.701 F
-(duces a match, \214lename completion is attempted.)144 345.6 Q F1
-(possible\255completions \(M\255?\))108 357.6 Q F0
-(List the possible completions of the te)144 369.6 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 381.6 Q F0 .783
-(Insert all completions of the te)144 393.6 R .783
+(duces a match, \214lename completion is attempted.)144 465.6 Q F1
+(possible\255completions \(M\255?\))108 477.6 Q F0
+(List the possible completions of the te)144 489.6 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 501.6 Q F0 .783
+(Insert all completions of the te)144 513.6 R .783
(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
-.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144
-405.6 Q F0(.)A F1(menu\255complete)108 417.6 Q F0 .928(Similar to)144
-429.6 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628
+.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
+525.6 Q F0(.)A F1(menu\255complete)108 537.6 Q F0 .929(Similar to)144
+549.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
F .929(ord to be completed with a single match from the list of)-.1 F
-1.194(possible completions.)144 441.6 R 1.194(Repeated e)6.194 F -.15
-(xe)-.15 G 1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193
-(steps through the list of possible)3.694 F .828
-(completions, inserting each match in turn.)144 453.6 R .828
+1.193(possible completions.)144 561.6 R 1.193(Repeated e)6.193 F -.15
+(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
+(steps through the list of possible)3.694 F .829
+(completions, inserting each match in turn.)144 573.6 R .828
(At the end of the list of completions, the bell is rung)5.828 F .727
-(\(subject to the setting of)144 465.6 R F1(bell\255style)3.227 E F0
+(\(subject to the setting of)144 585.6 R F1(bell\255style)3.227 E F0
3.227(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F
.727(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227
-E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.227 E F0 1.73
-(positions forw)144 477.6 R 1.73(ard in the list of matches; a ne)-.1 F
+E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73
+(positions forw)144 597.6 R 1.73(ard in the list of matches; a ne)-.1 F
-.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73
(ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1
-E(through the list.)144 489.6 Q(This command is intended to be bound to)
+E(through the list.)144 609.6 Q(This command is intended to be bound to)
5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E
-(ault.)-.1 E F1(menu\255complete-)108 501.6 Q(w)10 I(k)-7.22 -10 M(c)
--5.56 -10 M(rd)2.78 10 M F0 .82(Identical to)144 513.6 R F1
+(ault.)-.1 E F1(menu\255complete-)108 621.6 Q(w)10 I(k)-7.22 -10 M(c)
+-5.56 -10 M(rd)2.78 10 M F0 .82(Identical to)144 633.6 R F1
(menu\255complete)3.32 E F0 3.32(,b)C .82(ut mo)-3.52 F -.15(ve)-.15 G
3.32(sb).15 G(ackw)-3.32 E .82
(ard through the list of possible completions, as if)-.1 F F1
-(menu\255complete)144 525.6 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
+(menu\255complete)144 645.6 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
(nan).15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg)
.15 G 2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E
-F1(delete\255char\255or\255list)108 537.6 Q F0 .234
-(Deletes the character under the cursor if not at the be)144 549.6 R
+F1(delete\255char\255or\255list)108 657.6 Q F0 .234
+(Deletes the character under the cursor if not at the be)144 669.6 R
.234(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)
-2.735 E F0(\).)A .425(If at the end of the line, beha)144 561.6 R -.15
+2.734 E F0(\).)A .425(If at the end of the line, beha)144 681.6 R -.15
(ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1
(possible\255completions)2.925 E F0 5.425(.T)C .425
-(his command is unbound)-5.425 F(by def)144 573.6 Q(ault.)-.1 E F1
-(complete\255\214lename \(M\255/\))108 585.6 Q F0
-(Attempt \214lename completion on the te)144 597.6 Q(xt before point.)
--.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 609.6 Q
-F0(List the possible completions of the te)144 621.6 Q
-(xt before point, treating it as a \214lename.)-.15 E F1
-(complete\255user)108 633.6 Q(name \(M\255~\))-.15 E F0
-(Attempt completion on the te)144 645.6 Q
-(xt before point, treating it as a username.)-.15 E F1(possible\255user)
-108 657.6 Q(name\255completions \(C\255x ~\))-.15 E F0
-(List the possible completions of the te)144 669.6 Q
-(xt before point, treating it as a username.)-.15 E F1(complete\255v)108
-681.6 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144
-693.6 Q(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
-F1(possible\255v)108 705.6 Q(ariable\255completions \(C\255x $\))-.1 E
-F0(List the possible completions of the te)144 717.6 Q
-(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(42)185.115 E 0 Cg EP
+(his command is unbound)-5.425 F(by def)144 693.6 Q(ault.)-.1 E F1
+(complete\255\214lename \(M\255/\))108 705.6 Q F0
+(Attempt \214lename completion on the te)144 717.6 Q(xt before point.)
+-.15 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(42)192.895 E 0 Cg
+EP
%%Page: 43 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(complete\255hostname \(M\255@\))108 84 Q F0
-(Attempt completion on the te)144 96 Q
+-.35 E/F1 10/Times-Bold@0 SF
+(possible\255\214lename\255completions \(C\255x /\))108 84 Q F0
+(List the possible completions of the te)144 96 Q
+(xt before point, treating it as a \214lename.)-.15 E F1
+(complete\255user)108 108 Q(name \(M\255~\))-.15 E F0
+(Attempt completion on the te)144 120 Q
+(xt before point, treating it as a username.)-.15 E F1(possible\255user)
+108 132 Q(name\255completions \(C\255x ~\))-.15 E F0
+(List the possible completions of the te)144 144 Q
+(xt before point, treating it as a username.)-.15 E F1(complete\255v)108
+156 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 168 Q
+(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
+(possible\255v)108 180 Q(ariable\255completions \(C\255x $\))-.1 E F0
+(List the possible completions of the te)144 192 Q
+(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
+(complete\255hostname \(M\255@\))108 204 Q F0
+(Attempt completion on the te)144 216 Q
(xt before point, treating it as a hostname.)-.15 E F1
-(possible\255hostname\255completions \(C\255x @\))108 108 Q F0
-(List the possible completions of the te)144 120 Q
+(possible\255hostname\255completions \(C\255x @\))108 228 Q F0
+(List the possible completions of the te)144 240 Q
(xt before point, treating it as a hostname.)-.15 E F1
-(complete\255command \(M\255!\))108 132 Q F0 .58
-(Attempt completion on the te)144 144 R .581
-(xt before point, treating it as a command name.)-.15 F .581
-(Command comple-)5.581 F .715(tion attempts to match the te)144 156 R
+(complete\255command \(M\255!\))108 252 Q F0 .581
+(Attempt completion on the te)144 264 R .581
+(xt before point, treating it as a command name.)-.15 F .58
+(Command comple-)5.58 F .715(tion attempts to match the te)144 276 R
.715(xt ag)-.15 F .715(ainst aliases, reserv)-.05 F .715(ed w)-.15 F
.715(ords, shell functions, shell b)-.1 F .715(uiltins, and)-.2 F
-(\214nally e)144 168 Q -.15(xe)-.15 G
+(\214nally e)144 288 Q -.15(xe)-.15 G
(cutable \214lenames, in that order).15 E(.)-.55 E F1
-(possible\255command\255completions \(C\255x !\))108 180 Q F0
-(List the possible completions of the te)144 192 Q
+(possible\255command\255completions \(C\255x !\))108 300 Q F0
+(List the possible completions of the te)144 312 Q
(xt before point, treating it as a command name.)-.15 E F1
-(dynamic\255complete\255history \(M\255T)108 204 Q(AB\))-.9 E F0 .424
-(Attempt completion on the te)144 216 R .425
-(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .425
+(dynamic\255complete\255history \(M\255T)108 324 Q(AB\))-.9 E F0 .425
+(Attempt completion on the te)144 336 R .425
+(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .424
(ainst lines from the history list)-.05 F
-(for possible completion matches.)144 228 Q F1(dab)108 240 Q(br)-.1 E
--.15(ev)-.18 G(\255expand).15 E F0 .611
-(Attempt menu completion on the te)144 252 R .611
-(xt before point, comparing the te)-.15 F .61(xt ag)-.15 F .61
+(for possible completion matches.)144 348 Q F1(dab)108 360 Q(br)-.1 E
+-.15(ev)-.18 G(\255expand).15 E F0 .61
+(Attempt menu completion on the te)144 372 R .611
+(xt before point, comparing the te)-.15 F .611(xt ag)-.15 F .611
(ainst lines from the his-)-.05 F
-(tory list for possible completion matches.)144 264 Q F1
-(complete\255into\255braces \(M\255{\))108 276 Q F0 .4(Perform \214lena\
+(tory list for possible completion matches.)144 384 Q F1
+(complete\255into\255braces \(M\255{\))108 396 Q F0 .4(Perform \214lena\
me completion and insert the list of possible completions enclosed with\
-in braces so)144 288 R(the list is a)144 300 Q -.25(va)-.2 G
+in braces so)144 408 R(the list is a)144 420 Q -.25(va)-.2 G
(ilable to the shell \(see).25 E F1(Brace Expansion)2.5 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 316.8 S(yboard Macr).25 E(os)-.18
-E(start\255kbd\255macr)108 328.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
-.833 E F0(Be)144 340.8 Q(gin sa)-.15 E
+-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 436.8 S(yboard Macr).25 E(os)-.18
+E(start\255kbd\255macr)108 448.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
+.833 E F0(Be)144 460.8 Q(gin sa)-.15 E
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
-(board macro.).15 E F1(end\255kbd\255macr)108 352.8 Q 2.5(o\()-.18 G
-(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 364.8 Q
+(board macro.).15 E F1(end\255kbd\255macr)108 472.8 Q 2.5(o\()-.18 G
+(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 484.8 Q
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
(board macro and store the de\214nition.).15 E F1
-(call\255last\255kbd\255macr)108 376.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 388.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
-G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F(typed at the k)144 400.8 Q -.15(ey)-.1 G(board.).15 E F1
-(Miscellaneous)87 417.6 Q -.18(re)108 429.6 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776
-(Read in the contents of the)144 441.6 R/F2 10/Times-Italic@0 SF(inputr)
-4.276 E(c)-.37 E F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)
--.15 G 1.777(indings or v)-4.277 F 1.777(ariable assignments)-.25 F
-(found there.)144 453.6 Q F1(abort \(C\255g\))108 465.6 Q F0 3.249
-(Abort the current editing command and ring the terminal')144 477.6 R
-5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
-(bell\255style)144 489.6 Q F0(\).)A F1(do\255upper)108 501.6 Q
+(call\255last\255kbd\255macr)108 496.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 508.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+-.1 G .999(board macro de\214ned, by making the characters in the macro\
+ appear as if).15 F(typed at the k)144 520.8 Q -.15(ey)-.1 G(board.).15
+E F1(Miscellaneous)87 537.6 Q -.18(re)108 549.6 S<ad72>.18 E
+(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
+(Read in the contents of the)144 561.6 R/F2 10/Times-Italic@0 SF(inputr)
+4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb)
+-.15 G 1.776(indings or v)-4.276 F 1.776(ariable assignments)-.25 F
+(found there.)144 573.6 Q F1(abort \(C\255g\))108 585.6 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 597.6 R
+5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
+(bell\255style)144 609.6 Q F0(\).)A F1(do\255upper)108 621.6 Q
(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 513.6 R F2(x)
-4.255 E F0 1.755(is lo)4.255 F 1.756
+C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 633.6 R F2(x)
+4.256 E F0 1.755(is lo)4.256 F 1.755
(wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 525.6 Q(.)-.55 E F1(pr)108 537.6 Q
-(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 549.6 Q
+(uppercase character)144 645.6 Q(.)-.55 E F1(pr)108 657.6 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 669.6 Q
(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1
-(undo \(C\255_, C\255x C\255u\))108 561.6 Q F0
-(Incremental undo, separately remembered for each line.)144 573.6 Q F1
--2.29 -.18(re v)108 585.6 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 597.6 R 1.095(This is lik)6.095
+(undo \(C\255_, C\255x C\255u\))108 681.6 Q F0
+(Incremental undo, separately remembered for each line.)144 693.6 Q F1
+-2.29 -.18(re v)108 705.6 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 717.6 R 1.095(This is lik)6.095
F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
F0 1.095(command enough times to)3.595 F
-(return the line to its initial state.)144 609.6 Q F1
-(tilde\255expand \(M\255&\))108 621.6 Q F0(Perform tilde e)144 633.6 Q
-(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 645.6 Q F0
-(Set the mark to the point.)144 657.6 Q(If a numeric ar)5 E
-(gument is supplied, the mark is set to that position.)-.18 E F1
-(exchange\255point\255and\255mark \(C\255x C\255x\))108 669.6 Q F0(Sw)
-144 681.6 Q .282(ap the point with the mark.)-.1 F .283
-(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
-144 693.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 705.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
-717.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G
-3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
-144 729.6 Q(vious occurrences.)-.25 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(43)185.115 E 0 Cg EP
+(return the line to its initial state.)144 729.6 Q(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(43)192.895 E 0 Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(character\255sear)108 84 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 96 S 1.043
-(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
+-.35 E/F1 10/Times-Bold@0 SF(tilde\255expand \(M\255&\))108 84 Q F0
+(Perform tilde e)144 96 Q(xpansion on the current w)-.15 E(ord.)-.1 E F1
+(set\255mark \(C\255@, M\255<space>\))108 108 Q F0
+(Set the mark to the point.)144 120 Q(If a numeric ar)5 E
+(gument is supplied, the mark is set to that position.)-.18 E F1
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 132 Q F0(Sw)144
+144 Q .283(ap the point with the mark.)-.1 F .283
+(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
+2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
+144 156 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
+(character\255sear)108 168 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 180 S
+.535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G 3.035(dt)
+.15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
+(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre)
+144 192 Q(vious occurrences.)-.25 E F1(character\255sear)108 204 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 216 S 1.044
+(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
+(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 108 Q F1
-(skip\255csi\255sequence \(\))108 120 Q F0 1.827
-(Read enough characters to consume a multi-k)144 132 R 2.126 -.15(ey s)
--.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
-4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 144 R .791
-(Such sequences be)5.79 F .791
+(count searches for subsequent occurrences.)144 228 Q F1
+(skip\255csi\255sequence \(\))108 240 Q F0 1.826
+(Read enough characters to consume a multi-k)144 252 R 2.126 -.15(ey s)
+-.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
+4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 264 R .791
+(Such sequences be)5.791 F .791
(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-.332(If this sequence is bound to "\\[", k)144 156 R -.15(ey)-.1 G 2.831
-(sp).15 G .331(roducing such sequences will ha)-2.831 F .631 -.15(ve n)
--.2 H 2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F(xplic-)
+.331(If this sequence is bound to "\\[", k)144 276 R -.15(ey)-.1 G 2.831
+(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n)
+-.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-)
-.15 E .026(itly bound to a readline command, instead of inserting stra\
-y characters into the editing b)144 168 R(uf)-.2 E(fer)-.25 E 5.026(.T)
--.55 G(his)-5.026 E(is unbound by def)144 180 Q(ault, b)-.1 E
+y characters into the editing b)144 288 R(uf)-.2 E(fer)-.25 E 5.026(.T)
+-.55 G(his)-5.026 E(is unbound by def)144 300 Q(ault, b)-.1 E
(ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108
-192 Q F0 -.4(Wi)144 204 S .481(thout a numeric ar).4 F .481
-(gument, the v)-.18 F .481(alue of the readline)-.25 F F1
-(comment\255begin)2.981 E F0 -.25(va)2.981 G .48
-(riable is inserted at the).25 F(be)144 216 Q .097
-(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098
-(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E
-.322(the characters at the be)144 228 R .321
+312 Q F0 -.4(Wi)144 324 S .48(thout a numeric ar).4 F .48(gument, the v)
+-.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0
+-.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 336 Q .098
+(ginning of the current line.)-.15 F .098(If a numeric ar)5.098 F .097
+(gument is supplied, this command acts as a toggle:)-.18 F(if)5.097 E
+.321(the characters at the be)144 348 R .321
(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
--.25 F .831(inserted, otherwise the characters in)144 240 R F1
-(comment\255begin)3.331 E F0 .832(are deleted from the be)3.331 F .832
-(ginning of the line.)-.15 F 1.469
-(In either case, the line is accepted as if a ne)144 252 R 1.468
-(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
-1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 264 Q F0 .839
-(causes this command to mak)3.339 F 3.339(et)-.1 G .839
-(he current line a shell comment.)-3.339 F .84(If a numeric ar)5.84 F
-(gu-)-.18 E(ment causes the comment character to be remo)144 276 Q -.15
+(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
+-.25 F .832(inserted, otherwise the characters in)144 360 R F1
+(comment\255begin)3.332 E F0 .831(are deleted from the be)3.332 F .831
+(ginning of the line.)-.15 F 1.468
+(In either case, the line is accepted as if a ne)144 372 R 1.468
+(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
+1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 384 Q F0 .84
+(causes this command to mak)3.34 F 3.339(et)-.1 G .839
+(he current line a shell comment.)-3.339 F .839(If a numeric ar)5.839 F
+(gu-)-.18 E(ment causes the comment character to be remo)144 396 Q -.15
(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G
-(cuted by the shell.).15 E F1(glob\255complete\255w)108 288 Q
-(ord \(M\255g\))-.1 E F0 .792(The w)144 300 R .791
-(ord before point is treated as a pattern for pathname e)-.1 F .791
-(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 312
+(cuted by the shell.).15 E F1(glob\255complete\255w)108 408 Q
+(ord \(M\255g\))-.1 E F0 .791(The w)144 420 R .791
+(ord before point is treated as a pattern for pathname e)-.1 F .792
+(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 432
R(pattern is used to generate a list of matching \214le names for possi\
-ble completions.)2.5 E F1(glob\255expand\255w)108 324 Q
-(ord \(C\255x *\))-.1 E F0 .371(The w)144 336 R .372
-(ord before point is treated as a pattern for pathname e)-.1 F .372
+ble completions.)2.5 E F1(glob\255expand\255w)108 444 Q
+(ord \(C\255x *\))-.1 E F0 .372(The w)144 456 R .372
+(ord before point is treated as a pattern for pathname e)-.1 F .371
(xpansion, and the list of matching \214le)-.15 F .516
-(names is inserted, replacing the w)144 348 R 3.016(ord. If)-.1 F 3.016
+(names is inserted, replacing the w)144 468 R 3.016(ord. If)-.1 F 3.016
(an)3.016 G .516(umeric ar)-3.016 F .516
(gument is supplied, an asterisk is appended)-.18 F(before pathname e)
-144 360 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
-108 372 Q F0 .923(The list of e)144 384 R .923(xpansions that w)-.15 F
+144 480 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
+108 492 Q F0 .923(The list of e)144 504 R .923(xpansions that w)-.15 F
.923(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1
(glob\255expand\255w)3.423 E(ord)-.1 E F0 .923(is displayed, and)3.423 F
-.872(the line is redra)144 396 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
+.872(the line is redra)144 516 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
.872(umeric ar)-3.372 F .872
(gument is supplied, an asterisk is appended before pathname)-.18 F -.15
-(ex)144 408 S(pansion.).15 E F1(dump\255functions)108 420 Q F0 .626
-(Print all of the functions and their k)144 432 R .926 -.15(ey b)-.1 H
-.627(indings to the readline output stream.).15 F .627(If a numeric ar)
-5.627 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 444 Q
+(ex)144 528 S(pansion.).15 E F1(dump\255functions)108 540 Q F0 .627
+(Print all of the functions and their k)144 552 R .927 -.15(ey b)-.1 H
+.626(indings to the readline output stream.).15 F .626(If a numeric ar)
+5.626 F(gu-)-.18 E
+(ment is supplied, the output is formatted in such a w)144 564 Q
(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 456 Q(ariables)-.1 E F0
-1.8(Print all of the settable readline v)144 468 R 1.799
-(ariables and their v)-.25 F 1.799(alues to the readline output stream.)
--.25 F 1.799(If a)6.799 F .304(numeric ar)144 480 R .304
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 576 Q(ariables)-.1 E F0
+1.799(Print all of the settable readline v)144 588 R 1.799
+(ariables and their v)-.25 F 1.8(alues to the readline output stream.)
+-.25 F 1.8(If a)6.8 F .305(numeric ar)144 600 R .304
(gument is supplied, the output is formatted in such a w)-.18 F .304
-(ay that it can be made part of an)-.1 F F2(inputr)144 492 Q(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 504 Q(os)-.18 E F0 .593
-(Print all of the readline k)144 516 R .893 -.15(ey s)-.1 H .592
-(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G
-3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 528 Q
+(ay that it can be made part of an)-.1 F F2(inputr)144 612 Q(c)-.37 E F0
+(\214le.)2.5 E F1(dump\255macr)108 624 Q(os)-.18 E F0 .592
+(Print all of the readline k)144 636 R .892 -.15(ey s)-.1 H .592
+(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
+3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 648 Q
.528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
-(\214le.)144 540 Q F1(display\255shell\255v)108 552 Q
-(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 564 Q
+(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
+(\214le.)144 660 Q F1(display\255shell\255v)108 672 Q
+(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 684 Q
(ersion information about the current instance of)-.15 E F1(bash)2.5 E
-F0(.)A F1(Pr)87 580.8 Q(ogrammable Completion)-.18 E F0 .147(When w)108
-592.8 R .147(ord completion is attempted for an ar)-.1 F .147
+F0(.)A F1(Pr)87 700.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
+712.8 R .147(ord completion is attempted for an ar)-.1 F .147
(gument to a command for which a completion speci\214cation \(a)-.18 F
-F2(compspec)108 604.8 Q F0 3.828(\)h)C 1.329
-(as been de\214ned using the)-3.828 F F1(complete)3.829 E F0 -.2(bu)
+F2(compspec)108 724.8 Q F0 3.829(\)h)C 1.329
+(as been de\214ned using the)-3.829 F F1(complete)3.829 E F0 -.2(bu)
3.829 G 1.329(iltin \(see).2 F/F3 9/Times-Bold@0 SF 1.329(SHELL B)3.829
-F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.329(w\), the)
--.25 F(programmable completion f)108 616.8 Q(acilities are in)-.1 E -.2
-(vo)-.4 G -.1(ke).2 G(d.).1 E .498
-(First, the command name is identi\214ed.)108 633.6 R .498
-(If the command w)5.498 F .497
-(ord is the empty string \(completion attempted at)-.1 F .233(the be)108
-645.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233
-(ompspec de\214ned with the)-2.733 F F1<ad45>2.733 E F0 .233(option to)
-2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F .234(If a comp-)
-5.234 F .481(spec has been de\214ned for that command, the compspec is \
-used to generate the list of possible completions)108 657.6 R .822
-(for the w)108 669.6 R 3.322(ord. If)-.1 F .822(the command w)3.322 F
-.823(ord is a full pathname, a compspec for the full pathname is search\
-ed for)-.1 F 2.867(\214rst. If)108 681.6 R .366(no compspec is found fo\
-r the full pathname, an attempt is made to \214nd a compspec for the po\
-rtion)2.867 F(follo)108 693.6 Q .421(wing the \214nal slash.)-.25 F .422
-(If those searches to not result in a compspec, an)5.421 F 2.922(yc)-.15
-G .422(ompspec de\214ned with the)-2.922 F F1<ad44>2.922 E F0(option to)
-108 705.6 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E
-.817(Once a compspec has been found, it is used to generate the list of\
- matching w)108 722.4 R 3.317(ords. If)-.1 F 3.317(ac)3.317 G .817
-(ompspec is not)-3.317 F(GNU Bash-4.1)72 768 Q(2009 September 16)135.125
-E(44)185.115 E 0 Cg EP
+F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the)
+-.25 F(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(44)192.895 E 0 Cg
+EP
%%Page: 45 45
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(found, the def)108 84 Q(ault)-.1 E/F1 10/Times-Bold@0 SF(bash)2.5
-E F0(completion as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F1
-(Completing)2.5 E F0(is performed.)2.5 E .463
-(First, the actions speci\214ed by the compspec are used.)108 100.8 R
-.464(Only matches which are pre\214x)5.464 F .464(ed by the w)-.15 F
-.464(ord being)-.1 F .596(completed are returned.)108 112.8 R .596
-(When the)5.596 F F1<ad66>3.096 E F0(or)3.095 E F1<ad64>3.095 E F0 .595
+-.35 E(programmable completion f)108 84 Q(acilities are in)-.1 E -.2(vo)
+-.4 G -.1(ke).2 G(d.).1 E .497(First, the command name is identi\214ed.)
+108 100.8 R .497(If the command w)5.497 F .498
+(ord is the empty string \(completion attempted at)-.1 F .234(the be)108
+112.8 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233
+(ompspec de\214ned with the)-2.733 F/F1 10/Times-Bold@0 SF<ad45>2.733 E
+F0 .233(option to)2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F
+.233(If a comp-)5.233 F .481(spec has been de\214ned for that command, \
+the compspec is used to generate the list of possible completions)108
+124.8 R .823(for the w)108 136.8 R 3.323(ord. If)-.1 F .823
+(the command w)3.323 F .822(ord is a full pathname, a compspec for the \
+full pathname is searched for)-.1 F 2.866(\214rst. If)108 148.8 R .367(\
+no compspec is found for the full pathname, an attempt is made to \214n\
+d a compspec for the portion)2.866 F(follo)108 160.8 Q .422
+(wing the \214nal slash.)-.25 F .422
+(If those searches to not result in a compspec, an)5.422 F 2.921(yc)-.15
+G .421(ompspec de\214ned with the)-2.921 F F1<ad44>2.921 E F0(option to)
+108 172.8 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E
+.817(Once a compspec has been found, it is used to generate the list of\
+ matching w)108 189.6 R 3.317(ords. If)-.1 F 3.317(ac)3.317 G .817
+(ompspec is not)-3.317 F(found, the def)108 201.6 Q(ault)-.1 E F1(bash)
+2.5 E F0(completion as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15
+E F1(Completing)2.5 E F0(is performed.)2.5 E .464
+(First, the actions speci\214ed by the compspec are used.)108 218.4 R
+.463(Only matches which are pre\214x)5.464 F .463(ed by the w)-.15 F
+.463(ord being)-.1 F .595(completed are returned.)108 230.4 R .595
+(When the)5.595 F F1<ad66>3.095 E F0(or)3.095 E F1<ad64>3.095 E F0 .596
(option is used for \214lename or directory name completion, the)3.095 F
-(shell v)108 124.8 Q(ariable)-.25 E/F2 9/Times-Bold@0 SF(FIGNORE)2.5 E
-F0(is used to \214lter the matches.)2.25 E(An)108 141.6 Q 4.084(yc)-.15
+(shell v)108 242.4 Q(ariable)-.25 E/F2 9/Times-Bold@0 SF(FIGNORE)2.5 E
+F0(is used to \214lter the matches.)2.25 E(An)108 259.2 Q 4.084(yc)-.15
G 1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584
(xpansion pattern to the)-.15 F F1<ad47>4.084 E F0 1.584
-(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 153.6 S
-.555(rds generated by the pattern need not match the w).1 F .554
-(ord being completed.)-.1 F(The)5.554 E F2(GLOBIGNORE)3.054 E F0 .554
-(shell v)2.804 F(ari-)-.25 E
-(able is not used to \214lter the matches, b)108 165.6 Q(ut the)-.2 E F2
-(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 182.4 Q
-.32(xt, the string speci\214ed as the ar)-.15 F .32(gument to the)-.18 F
-F1<ad57>2.82 E F0 .321(option is considered.)2.821 F .321
-(The string is \214rst split using the)5.321 F .413(characters in the)
-108 194.4 R F2(IFS)2.913 E F0 .412(special v)2.663 F .412
+(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 271.2 S
+.554(rds generated by the pattern need not match the w).1 F .555
+(ord being completed.)-.1 F(The)5.555 E F2(GLOBIGNORE)3.055 E F0 .555
+(shell v)2.805 F(ari-)-.25 E
+(able is not used to \214lter the matches, b)108 283.2 Q(ut the)-.2 E F2
+(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 300 Q .321
+(xt, the string speci\214ed as the ar)-.15 F .321(gument to the)-.18 F
+F1<ad57>2.821 E F0 .32(option is considered.)2.821 F .32
+(The string is \214rst split using the)5.32 F .412(characters in the)108
+312 R F2(IFS)2.912 E F0 .412(special v)2.662 F .412
(ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F
-.412(Each w)5.412 F .412(ord is then e)-.1 F(xpanded)-.15 E .091
-(using brace e)108 206.4 R .091(xpansion, tilde e)-.15 F .092
-(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .092
-(xpansion, command substitution, and arith-)-.15 F 1.397(metic e)108
-218.4 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
-(nder).15 E F2(EXP)3.896 E(ANSION)-.666 E/F3 9/Times-Roman@0 SF(.)A F0
-1.396(The results are split using the rules described)5.896 F(abo)108
-230.4 Q .509 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.709 G .209
-(rd Splitting).75 F F0 5.209(.T)C .209(he results of the e)-5.209 F .209
-(xpansion are pre\214x-matched ag)-.15 F .21(ainst the w)-.05 F .21
-(ord being com-)-.1 F(pleted, and the matching w)108 242.4 Q
-(ords become the possible completions.)-.1 E 1.238
-(After these matches ha)108 259.2 R 1.538 -.15(ve b)-.2 H 1.238
-(een generated, an).15 F 3.738(ys)-.15 G 1.237
-(hell function or command speci\214ed with the)-3.738 F F1<ad46>3.737 E
-F0(and)3.737 E F1<ad43>3.737 E F0 3.375(options is in)108 271.2 R -.2
+.413(Each w)5.412 F .413(ord is then e)-.1 F(xpanded)-.15 E .092
+(using brace e)108 324 R .092(xpansion, tilde e)-.15 F .092
+(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .091
+(xpansion, command substitution, and arith-)-.15 F 1.396(metic e)108 336
+R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H(nder)
+.15 E F2(EXP)3.896 E(ANSION)-.666 E/F3 9/Times-Roman@0 SF(.)A F0 1.396
+(The results are split using the rules described)5.896 F(abo)108 348 Q
+.51 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.71 G .21(rd Splitting).75 F
+F0 5.21(.T)C .209(he results of the e)-5.21 F .209
+(xpansion are pre\214x-matched ag)-.15 F .209(ainst the w)-.05 F .209
+(ord being com-)-.1 F(pleted, and the matching w)108 360 Q
+(ords become the possible completions.)-.1 E 1.237
+(After these matches ha)108 376.8 R 1.537 -.15(ve b)-.2 H 1.237
+(een generated, an).15 F 3.737(ys)-.15 G 1.238
+(hell function or command speci\214ed with the)-3.737 F F1<ad46>3.738 E
+F0(and)3.738 E F1<ad43>3.738 E F0 3.376(options is in)108 388.8 R -.2
(vo)-.4 G -.1(ke).2 G 5.875(d. When).1 F 3.375
(the command or function is in)5.875 F -.2(vo)-.4 G -.1(ke).2 G 3.375
-(d, the).1 F F2(COMP_LINE)5.876 E F3(,)A F2(COMP_POINT)5.626 E F3(,)A F2
-(COMP_KEY)108 283.2 Q F3(,)A F0(and)2.408 E F2(COMP_TYPE)2.658 E F0 -.25
-(va)2.408 G .157(riables are assigned v).25 F .157
-(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .157
-(Shell V)2.657 F(ariables)-.92 E F0 5.157(.I)C(f)-5.157 E 3.485(as)108
-295.2 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G
+(d, the).1 F F2(COMP_LINE)5.875 E F3(,)A F2(COMP_POINT)5.625 E F3(,)A F2
+(COMP_KEY)108 400.8 Q F3(,)A F0(and)2.407 E F2(COMP_TYPE)2.657 E F0 -.25
+(va)2.407 G .157(riables are assigned v).25 F .157
+(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .158
+(Shell V)2.658 F(ariables)-.92 E F0 5.158(.I)C(f)-5.158 E 3.486(as)108
+412.8 S .986(hell function is being in)-3.486 F -.2(vo)-.4 G -.1(ke).2 G
.986(d, the).1 F F2(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F2
(COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986
-(riables are also set.).25 F(When)5.986 E .609
-(the function or command is in)108 307.2 R -.2(vo)-.4 G -.1(ke).2 G .608
+(riables are also set.).25 F(When)5.985 E .608
+(the function or command is in)108 424.8 R -.2(vo)-.4 G -.1(ke).2 G .608
(d, the \214rst ar).1 F .608(gument is the name of the command whose ar)
--.18 F .608(guments are)-.18 F .073(being completed, the second ar)108
-319.2 R .073(gument is the w)-.18 F .073
+-.18 F .609(guments are)-.18 F .073(being completed, the second ar)108
+436.8 R .073(gument is the w)-.18 F .073
(ord being completed, and the third ar)-.1 F .073(gument is the w)-.18 F
-.073(ord pre-)-.1 F .608(ceding the w)108 331.2 R .607
-(ord being completed on the current command line.)-.1 F .607
-(No \214ltering of the generated completions)5.607 F(ag)108 343.2 Q .093
+.072(ord pre-)-.1 F .607(ceding the w)108 448.8 R .607
+(ord being completed on the current command line.)-.1 F .608
+(No \214ltering of the generated completions)5.607 F(ag)108 460.8 Q .094
(ainst the w)-.05 F .093(ord being completed is performed; the function\
or command has complete freedom in generat-)-.1 F(ing the matches.)108
-355.2 Q(An)108 372 Q 2.938(yf)-.15 G .437(unction speci\214ed with)
--2.938 F F1<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G
+472.8 Q(An)108 489.6 Q 2.937(yf)-.15 G .437(unction speci\214ed with)
+-2.937 F F1<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G
2.937<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F
-2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .437
-(acilities, including)-.1 F(the)108 384 Q F1(compgen)2.956 E F0 -.2(bu)
-2.956 G .456(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956(og)
-.65 G .456(enerate the matches.)-2.956 F .457
-(It must put the possible completions in the)5.456 F F2(COMPREPL)108 396
-Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 412.8 Q .081
-(xt, an)-.15 F 2.581(yc)-.15 G .081(ommand speci\214ed with the)-2.581 F
-F1<ad43>2.581 E F0 .081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G
-2.581(di).1 G 2.58(na)-2.581 G 2.58(ne)-2.58 G -.4(nv)-2.58 G .08
-(ironment equi).4 F -.25(va)-.25 G .08(lent to command sub-).25 F 2.858
-(stitution. It)108 424.8 R .359(should print a list of completions, one\
- per line, to the standard output.)2.858 F .359(Backslash may be used)
-5.359 F(to escape a ne)108 436.8 Q(wline, if necessary)-.25 E(.)-.65 E
-.377(After all of the possible completions are generated, an)108 453.6 R
-2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F1<ad58>2.876
-E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 465.6 R
-.681(\214lter is a pattern as used for pathname e)3.181 F .681
-(xpansion; a)-.15 F F1(&)3.181 E F0 .682
-(in the pattern is replaced with the te)3.182 F .682(xt of)-.15 F .523
-(the w)108 477.6 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G
-(iteral)-3.023 E F1(&)3.023 E F0 .522
+2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .438
+(acilities, including)-.1 F(the)108 501.6 Q F1(compgen)2.957 E F0 -.2
+(bu)2.957 G .457(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956
+(og).65 G .456(enerate the matches.)-2.956 F .456
+(It must put the possible completions in the)5.456 F F2(COMPREPL)108
+513.6 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 530.4 Q .08
+(xt, an)-.15 F 2.58(yc)-.15 G .08(ommand speci\214ed with the)-2.58 F F1
+<ad43>2.58 E F0 .081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581
+(di).1 G 2.581(na)-2.581 G 2.581(ne)-2.581 G -.4(nv)-2.581 G .081
+(ironment equi).4 F -.25(va)-.25 G .081(lent to command sub-).25 F 2.859
+(stitution. It)108 542.4 R .359(should print a list of completions, one\
+ per line, to the standard output.)2.859 F .358(Backslash may be used)
+5.359 F(to escape a ne)108 554.4 Q(wline, if necessary)-.25 E(.)-.65 E
+.376(After all of the possible completions are generated, an)108 571.2 R
+2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F1<ad58>2.877
+E F0 .377(option is applied to the)2.877 F 3.182(list. The)108 583.2 R
+.682(\214lter is a pattern as used for pathname e)3.182 F .681
+(xpansion; a)-.15 F F1(&)3.181 E F0 .681
+(in the pattern is replaced with the te)3.181 F .681(xt of)-.15 F .522
+(the w)108 595.2 R .522(ord being completed.)-.1 F 3.022(Al)5.522 G
+(iteral)-3.022 E F1(&)3.022 E F0 .523
(may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve)
--.15 G 3.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 489.6
-R(An)5.849 E 3.349(yc)-.15 G .849
-(ompletion that matches the pattern will be remo)-3.349 F -.15(ve)-.15 G
-3.35(df).15 G .85(rom the list.)-3.35 F 3.35(Al)5.85 G(eading)-3.35 E F1
-(!)3.35 E F0(ne)108 501.6 Q -.05(ga)-.15 G
+-.15 G 3.023(db).15 G(efore)-3.023 E .85(attempting a match.)108 607.2 R
+(An)5.85 E 3.35(yc)-.15 G .849
+(ompletion that matches the pattern will be remo)-3.35 F -.15(ve)-.15 G
+3.349(df).15 G .849(rom the list.)-3.349 F 3.349(Al)5.849 G(eading)
+-3.349 E F1(!)3.349 E F0(ne)108 619.2 Q -.05(ga)-.15 G
(tes the pattern; in this case an).05 E 2.5(yc)-.15 G
(ompletion not matching the pattern will be remo)-2.5 E -.15(ve)-.15 G
-(d.).15 E(Finally)108 518.4 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H
-.587(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F1
-<ad50>3.087 E F0(and)3.087 E F1<ad53>3.087 E F0 .587
+(d.).15 E(Finally)108 636 Q 3.086(,a)-.65 G .886 -.15(ny p)-3.086 H .586
+(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F1<ad50>
+3.087 E F0(and)3.087 E F1<ad53>3.087 E F0 .587
(options are added to each member of the com-)3.087 F(pletion list, and\
the result is returned to the readline completion code as the list of \
-possible completions.)108 530.4 Q .246(If the pre)108 547.2 R .247
+possible completions.)108 648 Q .247(If the pre)108 664.8 R .247
(viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G .247
(atches, and the)-2.747 F F1 .247(\255o dir)2.747 F(names)-.15 E F0 .247
-(option w)2.747 F .247(as supplied to)-.1 F F1(complete)108 559.2 Q F0
+(option w)2.747 F .246(as supplied to)-.1 F F1(complete)108 676.8 Q F0
(when the compspec w)2.5 E
-(as de\214ned, directory name completion is attempted.)-.1 E .462
-(If the)108 576 R F1 .462(\255o plusdirs)2.962 F F0 .462(option w)2.962
-F .462(as supplied to)-.1 F F1(complete)2.962 E F0 .462
+(as de\214ned, directory name completion is attempted.)-.1 E .461
+(If the)108 693.6 R F1 .462(\255o plusdirs)2.961 F F0 .462(option w)
+2.962 F .462(as supplied to)-.1 F F1(complete)2.962 E F0 .462
(when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1
-F(pletion is attempted and an)108 588 Q 2.5(ym)-.15 G
-(atches are added to the results of the other actions.)-2.5 E .559
-(By def)108 604.8 R .559(ault, if a compspec is found, whate)-.1 F -.15
-(ve)-.25 G 3.059(ri).15 G 3.059(tg)-3.059 G .56
-(enerates is returned to the completion code as the full set)-3.059 F
-.632(of possible completions.)108 616.8 R .632(The def)5.632 F(ault)-.1
-E F1(bash)3.132 E F0 .631
-(completions are not attempted, and the readline def)3.131 F .631
-(ault of \214le-)-.1 F .558(name completion is disabled.)108 628.8 R
-.558(If the)5.558 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)
-3.059 F .559(as supplied to)-.1 F F1(complete)3.059 E F0 .559
-(when the compspec)3.059 F -.1(wa)108 640.8 S 3.172(sd).1 G .672
-(e\214ned, the)-3.172 F F1(bash)3.172 E F0(def)3.172 E .671
-(ault completions are attempted if the compspec generates no matches.)
--.1 F .671(If the)5.671 F F1<ad6f>3.171 E(default)108 652.8 Q F0 1.207
-(option w)3.706 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
-1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F
-3.707(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F
-(will be performed if the compspec \(and, if attempted, the def)108
-664.8 Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)
-2.5 E .245(When a compspec indicates that directory name completion is \
-desired, the programmable completion func-)108 681.6 R .632(tions force\
- readline to append a slash to completed names which are symbolic links\
- to directories, subject)108 693.6 R 2.762(to the v)108 705.6 R 2.762
-(alue of the)-.25 F F1(mark\255dir)5.262 E(ectories)-.18 E F0 2.761
-(readline v)5.262 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.761
-(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 717.6
-Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(45)185.115 E 0 Cg EP
+F(pletion is attempted and an)108 705.6 Q 2.5(ym)-.15 G
+(atches are added to the results of the other actions.)-2.5 E .56
+(By def)108 722.4 R .56(ault, if a compspec is found, whate)-.1 F -.15
+(ve)-.25 G 3.06(ri).15 G 3.06(tg)-3.06 G .559
+(enerates is returned to the completion code as the full set)-3.06 F
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(45)192.895 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .19(There is some support for dynamically modifying completions.)
-108 84 R .191(This is most useful when used in combina-)5.191 F 1.33
-(tion with a def)108 96 R 1.33(ault completion speci\214ed with)-.1 F/F1
-10/Times-Bold@0 SF 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83
-(sp)-.55 G 1.33(ossible for shell functions e)-3.83 F -.15(xe)-.15 G
-1.33(cuted as).15 F .93(completion handlers to indicate that completion\
- should be retried by returning an e)108 108 R .93(xit status of 124.)
--.15 F .93(If a)5.93 F .1(shell function returns 124, and changes the c\
-ompspec associated with the command on which completion is)108 120 R
-.665(being attempted \(supplied as the \214rst ar)108 132 R .666
-(gument when the function is e)-.18 F -.15(xe)-.15 G .666
-(cuted\), programmable completion).15 F 1.139(restarts from the be)108
-144 R 1.139
+-.35 E .631(of possible completions.)108 84 R .631(The def)5.631 F(ault)
+-.1 E/F1 10/Times-Bold@0 SF(bash)3.131 E F0 .631
+(completions are not attempted, and the readline def)3.131 F .632
+(ault of \214le-)-.1 F .559(name completion is disabled.)108 96 R .559
+(If the)5.559 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)3.059
+F .559(as supplied to)-.1 F F1(complete)3.058 E F0 .558
+(when the compspec)3.058 F -.1(wa)108 108 S 3.171(sd).1 G .671
+(e\214ned, the)-3.171 F F1(bash)3.171 E F0(def)3.171 E .671
+(ault completions are attempted if the compspec generates no matches.)
+-.1 F .672(If the)5.672 F F1<ad6f>3.172 E(default)108 120 Q F0 1.207
+(option w)3.707 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
+1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F
+3.707(sd)-.55 G(ef)-3.707 E 1.206(ault completion)-.1 F
+(will be performed if the compspec \(and, if attempted, the def)108 132
+Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)2.5 E
+.245(When a compspec indicates that directory name completion is desire\
+d, the programmable completion func-)108 148.8 R .633(tions force readl\
+ine to append a slash to completed names which are symbolic links to di\
+rectories, subject)108 160.8 R 2.761(to the v)108 172.8 R 2.761
+(alue of the)-.25 F F1(mark\255dir)5.261 E(ectories)-.18 E F0 2.761
+(readline v)5.261 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.762
+(rdless of the setting of the).05 F F1(mark-sym-)5.262 E(link)108 184.8
+Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E
+.191(There is some support for dynamically modifying completions.)108
+201.6 R .19(This is most useful when used in combina-)5.191 F 1.33
+(tion with a def)108 213.6 R 1.33(ault completion speci\214ed with)-.1 F
+F1 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83(sp)-.55 G 1.33
+(ossible for shell functions e)-3.83 F -.15(xe)-.15 G 1.33(cuted as).15
+F .93(completion handlers to indicate that completion should be retried\
+ by returning an e)108 225.6 R .93(xit status of 124.)-.15 F .93(If a)
+5.93 F .1(shell function returns 124, and changes the compspec associat\
+ed with the command on which completion is)108 237.6 R .666
+(being attempted \(supplied as the \214rst ar)108 249.6 R .665
+(gument when the function is e)-.18 F -.15(xe)-.15 G .665
+(cuted\), programmable completion).15 F 1.138(restarts from the be)108
+261.6 R 1.139
(ginning, with an attempt to \214nd a compspec for that command.)-.15 F
-1.139(This allo)6.139 F 1.138(ws a set of)-.25 F(completions to be b)108
-156 Q(uilt dynamically as completion is attempted, rather than being lo\
-aded all at once.)-.2 E -.15(Fo)108 172.8 S 2.636(ri).15 G .137
-(nstance, assuming that there is a library of compspecs, each k)-2.636 F
+1.139(This allo)6.139 F 1.139(ws a set of)-.25 F(completions to be b)108
+273.6 Q(uilt dynamically as completion is attempted, rather than being \
+loaded all at once.)-.2 E -.15(Fo)108 290.4 S 2.637(ri).15 G .137
+(nstance, assuming that there is a library of compspecs, each k)-2.637 F
.137(ept in a \214le corresponding to the name of)-.1 F
-(the command, the follo)108 184.8 Q(wing def)-.25 E
+(the command, the follo)108 302.4 Q(wing def)-.25 E
(ault completion function w)-.1 E(ould load completions dynamically:)-.1
-E/F2 10/Courier@0 SF(_completion_loader\(\))108 201.6 Q({)108 213.6 Q 6
-(.")144 225.6 S
+E/F2 10/Courier@0 SF(_completion_loader\(\))108 319.2 Q({)108 331.2 Q 6
+(.")144 343.2 S
(/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124)-6 E(})108
-237.6 Q(complete -D -F _completion_loader)108 249.6 Q/F3 10.95
-/Times-Bold@0 SF(HIST)72 278.4 Q(OR)-.197 E(Y)-.383 E F0 .372(When the)
-108 290.4 R F1 .372(\255o history)2.872 F F0 .372(option to the)2.872 F
-F1(set)2.872 E F0 -.2(bu)2.872 G .372(iltin is enabled, the shell pro).2
-F .371(vides access to the)-.15 F/F4 10/Times-Italic@0 SF .371
-(command history)2.871 F F0(,)A .031(the list of commands pre)108 302.4
-R .031(viously typed.)-.25 F .031(The v)5.031 F .031(alue of the)-.25 F
-F1(HISTSIZE)2.531 E F0 -.25(va)2.531 G .031
-(riable is used as the number of com-).25 F .43(mands to sa)108 314.4 R
-.73 -.15(ve i)-.2 H 2.93(nah).15 G .43(istory list.)-2.93 F .43(The te)
-5.43 F .429(xt of the last)-.15 F/F5 9/Times-Bold@0 SF(HISTSIZE)2.929 E
-F0 .429(commands \(def)2.679 F .429(ault 500\) is sa)-.1 F -.15(ve)-.2 G
-2.929(d. The).15 F(shell)2.929 E .287
+355.2 Q(complete -D -F _completion_loader)108 367.2 Q/F3 10.95
+/Times-Bold@0 SF(HIST)72 396 Q(OR)-.197 E(Y)-.383 E F0 .371(When the)108
+408 R F1 .371(\255o history)2.871 F F0 .371(option to the)2.871 F F1
+(set)2.872 E F0 -.2(bu)2.872 G .372(iltin is enabled, the shell pro).2 F
+.372(vides access to the)-.15 F/F4 10/Times-Italic@0 SF .372
+(command history)2.872 F F0(,)A .032(the list of commands pre)108 420 R
+.031(viously typed.)-.25 F .031(The v)5.031 F .031(alue of the)-.25 F F1
+(HISTSIZE)2.531 E F0 -.25(va)2.531 G .031
+(riable is used as the number of com-).25 F .429(mands to sa)108 432 R
+.729 -.15(ve i)-.2 H 2.929(nah).15 G .429(istory list.)-2.929 F .429
+(The te)5.429 F .429(xt of the last)-.15 F/F5 9/Times-Bold@0 SF
+(HISTSIZE)2.93 E F0 .43(commands \(def)2.68 F .43(ault 500\) is sa)-.1 F
+-.15(ve)-.2 G 2.93(d. The).15 F(shell)2.93 E .287
(stores each command in the history list prior to parameter and v)108
-326.4 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F5(EXP)2.787 E
-(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 338.4
-S 4.066(ta).2 G 1.565(fter history e)-4.066 F 1.565
+444 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F5(EXP)2.787 E
+(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 456 S
+4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565
(xpansion is performed, subject to the v)-.15 F 1.565
(alues of the shell v)-.25 F(ariables)-.25 E F5(HISTIGNORE)4.065 E F0
-(and)3.815 E F5(HISTCONTR)108 350.4 Q(OL)-.27 E/F6 9/Times-Roman@0 SF(.)
-A F0 .082
+(and)3.816 E F5(HISTCONTR)108 468 Q(OL)-.27 E/F6 9/Times-Roman@0 SF(.)A
+F0 .082
(On startup, the history is initialized from the \214le named by the v)
-108 367.2 R(ariable)-.25 E F5(HISTFILE)2.583 E F0(\(def)2.333 E(ault)-.1
-E F4(~/.bash_history)2.583 E F0(\).)A .315(The \214le named by the v)108
-379.2 R .315(alue of)-.25 F F5(HISTFILE)2.815 E F0 .315
+108 484.8 R(ariable)-.25 E F5(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
+E F4(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108
+496.8 R .315(alue of)-.25 F F5(HISTFILE)2.815 E F0 .315
(is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815(oc)-2.815 G
.315(ontain no more than the number of)-2.815 F .532
-(lines speci\214ed by the v)108 391.2 R .532(alue of)-.25 F F5
+(lines speci\214ed by the v)108 508.8 R .532(alue of)-.25 F F5
(HISTFILESIZE)3.032 E F6(.)A F0 .532
(When the history \214le is read, lines be)5.032 F .532
-(ginning with the his-)-.15 F 1.159(tory comment character follo)108
-403.2 R 1.158(wed immediately by a digit are interpreted as timestamps \
-for the preceding)-.25 F .052(history line.)108 415.2 R .053
-(These timestamps are optionally displayed depending on the v)5.052 F
-.053(alue of the)-.25 F F5(HISTTIMEFORMA)2.553 E(T)-.855 E F0 -.25(va)
-108 427.2 S 4.387(riable. When).25 F 1.887(an interacti)4.387 F 2.187
+(ginning with the his-)-.15 F 1.158(tory comment character follo)108
+520.8 R 1.159(wed immediately by a digit are interpreted as timestamps \
+for the preceding)-.25 F .053(history line.)108 532.8 R .053
+(These timestamps are optionally displayed depending on the v)5.053 F
+.052(alue of the)-.25 F F5(HISTTIMEFORMA)2.552 E(T)-.855 E F0 -.25(va)
+108 544.8 S 4.386(riable. When).25 F 1.886(an interacti)4.386 F 2.187
-.15(ve s)-.25 H 1.887(hell e).15 F 1.887(xits, the last)-.15 F F5
($HISTSIZE)4.387 E F0 1.887(lines are copied from the history list to)
-4.137 F F5($HISTFILE)108 439.2 Q F6(.)A F0 .056(If the)4.556 F F1
+4.137 F F5($HISTFILE)108 556.8 Q F6(.)A F0 .056(If the)4.556 F F1
(histappend)2.556 E F0 .056
(shell option is enabled \(see the description of)2.556 F F1(shopt)2.556
E F0(under)2.556 E F5 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E
-(COMMANDS)108 451.2 Q F0(belo)2.672 E .422(w\), the lines are appended \
+(COMMANDS)108 568.8 Q F0(belo)2.671 E .422(w\), the lines are appended \
to the history \214le, otherwise the history \214le is o)-.25 F -.15(ve)
--.15 G 2.921(rwritten. If).15 F F5(HISTFILE)108 463.2 Q F0 1.114(is uns\
-et, or if the history \214le is unwritable, the history is not sa)3.363
-F -.15(ve)-.2 G 3.614(d. If).15 F(the)3.614 E F6 -.225(va)3.614 G 1.114
-(riable is set, time).225 F 1.252
-(stamps are written to the history \214le, mark)108 475.2 R(ed)-.09 E F0
-1.252(with the history comment character)3.502 F 3.751(,s)-.4 G 3.751
-(ot)-3.751 G(he)-3.751 E 3.751(ym)-.15 G 1.251(ay be preserv)-3.751 F
-(ed)-.15 E .105(across shell sessions.)108 487.2 R .105(This uses the h\
+-.15 G 2.922(rwritten. If).15 F F5(HISTFILE)108 580.8 Q F0 1.114(is uns\
+et, or if the history \214le is unwritable, the history is not sa)3.364
+F -.15(ve)-.2 G 3.614(d. If).15 F(the)3.614 E F6 -.225(va)3.613 G 1.113
+(riable is set, time).225 F 1.251
+(stamps are written to the history \214le, mark)108 592.8 R(ed)-.09 E F0
+1.252(with the history comment character)3.502 F 3.752(,s)-.4 G 3.752
+(ot)-3.752 G(he)-3.752 E 3.752(ym)-.15 G 1.252(ay be preserv)-3.752 F
+(ed)-.15 E .105(across shell sessions.)108 604.8 R .105(This uses the h\
istory comment character to distinguish timestamps from other history)
-5.105 F 2.605(lines. After)108 499.2 R(sa)2.605 E .105(ving the history)
--.2 F 2.605(,t)-.65 G .104
-(he history \214le is truncated to contain no more than)-2.605 F F5
-(HISTFILESIZE)2.604 E F0 2.604(lines. If)2.354 F F5(HISTFILESIZE)108
-511.2 Q F0(is not set, no truncation is performed.)2.25 E 1.293(The b)
-108 528 R 1.293(uiltin command)-.2 F F1(fc)3.793 E F0(\(see)3.793 E F5
-1.293(SHELL B)3.793 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo)
-3.543 E 1.294(w\) may be used to list or edit and re-)-.25 F -.15(exe)
-108 540 S .674(cute a portion of the history list.).15 F(The)5.673 E F1
-(history)3.173 E F0 -.2(bu)3.173 G .673
-(iltin may be used to display or modify the history list).2 F .279
-(and manipulate the history \214le.)108 552 R .279
+5.105 F 2.604(lines. After)108 616.8 R(sa)2.604 E .104(ving the history)
+-.2 F 2.604(,t)-.65 G .104
+(he history \214le is truncated to contain no more than)-2.604 F F5
+(HISTFILESIZE)2.605 E F0 2.605(lines. If)2.355 F F5(HISTFILESIZE)108
+628.8 Q F0(is not set, no truncation is performed.)2.25 E 1.294(The b)
+108 645.6 R 1.294(uiltin command)-.2 F F1(fc)3.794 E F0(\(see)3.794 E F5
+1.293(SHELL B)3.794 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo)
+3.543 E 1.293(w\) may be used to list or edit and re-)-.25 F -.15(exe)
+108 657.6 S .673(cute a portion of the history list.).15 F(The)5.673 E
+F1(history)3.173 E F0 -.2(bu)3.173 G .673
+(iltin may be used to display or modify the history list).2 F .28
+(and manipulate the history \214le.)108 669.6 R .279
(When using command-line editing, search commands are a)5.279 F -.25(va)
--.2 G .28(ilable in each).25 F(editing mode that pro)108 564 Q
-(vide access to the history list.)-.15 E 1.486(The shell allo)108 580.8
-R 1.486(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
+-.2 G .279(ilable in each).25 F(editing mode that pro)108 681.6 Q
+(vide access to the history list.)-.15 E 1.485(The shell allo)108 698.4
+R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
--3.986 G 1.486(he history list.)-3.986 F(The)6.485 E F5(HISTCONTR)3.985
-E(OL)-.27 E F0(and)3.735 E F5(HISTIGNORE)108 592.8 Q F0 -.25(va)2.707 G
-.457(riables may be set to cause the shell to sa).25 F .758 -.15(ve o)
--.2 H .458(nly a subset of the commands entered.).15 F(The)5.458 E F1
-(cmdhist)108 604.8 Q F0 .75
+-3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F5(HISTCONTR)3.986
+E(OL)-.27 E F0(and)3.736 E F5(HISTIGNORE)108 710.4 Q F0 -.25(va)2.708 G
+.458(riables may be set to cause the shell to sa).25 F .757 -.15(ve o)
+-.2 H .457(nly a subset of the commands entered.).15 F(The)5.457 E F1
+(cmdhist)108 722.4 Q F0 .75
(shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05
--.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077
-(the same history entry)108 616.8 R 3.577(,a)-.65 G 1.077
-(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
-1.077(yntactic correctness.)-3.577 F(The)6.077 E F1(lithist)3.577 E F0
-.374(shell option causes the shell to sa)108 628.8 R .674 -.15(ve t)-.2
-H .374(he command with embedded ne).15 F .373
-(wlines instead of semicolons.)-.25 F .373(See the)5.373 F .318
-(description of the)108 640.8 R F1(shopt)2.818 E F0 -.2(bu)2.818 G .318
-(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F5 .318(SHELL B)2.818 F
-(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .319
-(for information on setting and)2.568 F(unsetting shell options.)108
-652.8 Q F3(HIST)72 669.6 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E
-(ANSION)-.81 E F0 .611(The shell supports a history e)108 681.6 R .611
-(xpansion feature that is similar to the history e)-.15 F .61
-(xpansion in)-.15 F F1(csh.)3.11 E F0 .61(This section)5.61 F .87
-(describes what syntax features are a)108 693.6 R -.25(va)-.2 G 3.371
-(ilable. This).25 F .871(feature is enabled by def)3.371 F .871
-(ault for interacti)-.1 F 1.171 -.15(ve s)-.25 H .871(hells, and).15 F
-2.014(can be disabled using the)108 705.6 R F1(+H)4.514 E F0 2.014
-(option to the)4.514 F F1(set)4.514 E F0 -.2(bu)4.514 G 2.014
-(iltin command \(see).2 F F5 2.013(SHELL B)4.513 F(UIL)-.09 E 2.013
-(TIN COMMANDS)-.828 F F0(belo)108 717.6 Q 2.5(w\). Non-interacti)-.25 F
-.3 -.15(ve s)-.25 H(hells do not perform history e).15 E
-(xpansion by def)-.15 E(ault.)-.1 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(46)185.115 E 0 Cg EP
+-.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(46)192.895 E 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 1.305(History e)108 84 R 1.305(xpansions introduce w)-.15 F 1.306
-(ords from the history list into the input stream, making it easy to re\
-peat)-.1 F .21(commands, insert the ar)108 96 R .21(guments to a pre)
--.18 F .209
+-.35 E 1.077(the same history entry)108 84 R 3.577(,a)-.65 G 1.077
+(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
+1.077(yntactic correctness.)-3.577 F(The)6.077 E/F1 10/Times-Bold@0 SF
+(lithist)3.576 E F0 .373(shell option causes the shell to sa)108 96 R
+.674 -.15(ve t)-.2 H .374(he command with embedded ne).15 F .374
+(wlines instead of semicolons.)-.25 F .374(See the)5.374 F .319
+(description of the)108 108 R F1(shopt)2.819 E F0 -.2(bu)2.819 G .318
+(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E/F2 9/Times-Bold@0 SF .318
+(SHELL B)2.818 F(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .318
+(for information on setting and)2.568 F(unsetting shell options.)108 120
+Q/F3 10.95/Times-Bold@0 SF(HIST)72 136.8 Q(OR)-.197 E 2.738(YE)-.383 G
+(XP)-2.738 E(ANSION)-.81 E F0 .61(The shell supports a history e)108
+148.8 R .611(xpansion feature that is similar to the history e)-.15 F
+.611(xpansion in)-.15 F F1(csh.)3.111 E F0 .611(This section)5.611 F
+.871(describes what syntax features are a)108 160.8 R -.25(va)-.2 G
+3.371(ilable. This).25 F .871(feature is enabled by def)3.371 F .87
+(ault for interacti)-.1 F 1.17 -.15(ve s)-.25 H .87(hells, and).15 F
+2.013(can be disabled using the)108 172.8 R F1(+H)4.514 E F0 2.014
+(option to the)4.514 F F1(set)4.514 E F0 -.2(bu)4.514 G 2.014
+(iltin command \(see).2 F F2 2.014(SHELL B)4.514 F(UIL)-.09 E 2.014
+(TIN COMMANDS)-.828 F F0(belo)108 184.8 Q 2.5(w\). Non-interacti)-.25 F
+.3 -.15(ve s)-.25 H(hells do not perform history e).15 E
+(xpansion by def)-.15 E(ault.)-.1 E 1.306(History e)108 201.6 R 1.306
+(xpansions introduce w)-.15 F 1.306(ords from the history list into the\
+ input stream, making it easy to repeat)-.1 F .209
+(commands, insert the ar)108 213.6 R .209(guments to a pre)-.18 F .21
(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 108 Q(.)-.65 E 1.163(History e)108
-124.8 R 1.163(xpansion is performed immediately after a complete line i\
-s read, before the shell breaks it into)-.15 F -.1(wo)108 136.8 S 3.2
+F(vious)-.25 E(commands quickly)108 225.6 Q(.)-.65 E 1.164(History e)108
+242.4 R 1.163(xpansion is performed immediately after a complete line i\
+s read, before the shell breaks it into)-.15 F -.1(wo)108 254.4 S 3.2
(rds. It).1 F(tak)3.2 E .7(es place in tw)-.1 F 3.2(op)-.1 G 3.2
(arts. The)-3.2 F .7
(\214rst is to determine which line from the history list to use during)
-3.2 F 4.367(substitution. The)108 148.8 R 1.868(second is to select por\
-tions of that line for inclusion into the current one.)4.367 F 1.868
-(The line)6.868 F .663(selected from the history is the)108 160.8 R/F1
-10/Times-Italic@0 SF -.15(ev)3.163 G(ent).15 E F0 3.163(,a)C .663
-(nd the portions of that line that are acted upon are)-3.163 F F1(wor)
-3.162 E(ds)-.37 E F0 5.662(.V)C(arious)-6.772 E F1(modi\214er)108 172.8
-Q(s)-.1 E F0 .226(are a)2.726 F -.25(va)-.2 G .226
-(ilable to manipulate the selected w).25 F 2.726(ords. The)-.1 F .227
-(line is brok)2.726 F .227(en into w)-.1 F .227(ords in the same f)-.1 F
-(ashion)-.1 E .352(as when reading input, so that se)108 184.8 R -.15
-(ve)-.25 G(ral).15 E F1(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .351
-(-separated w)B .351(ords surrounded by quotes are considered)-.1 F .624
-(one w)108 196.8 R 3.124(ord. History)-.1 F -.15(ex)3.124 G .624
-(pansions are introduced by the appearance of the history e).15 F .625
-(xpansion character)-.15 F 3.125(,w)-.4 G(hich)-3.125 E(is)108 208.8 Q
-/F2 10/Times-Bold@0 SF(!)3.333 E F0(by def)3.333 E 2.5(ault. Only)-.1 F
-(backslash \()2.5 E F2(\\).833 E F0 2.5(\)a).833 G
-(nd single quotes can quote the history e)-2.5 E(xpansion character)-.15
-E(.)-.55 E(Se)108 225.6 Q -.15(ve)-.25 G .03
-(ral characters inhibit history e).15 F .03
+3.2 F 4.368(substitution. The)108 266.4 R 1.868(second is to select por\
+tions of that line for inclusion into the current one.)4.368 F 1.867
+(The line)6.867 F .662(selected from the history is the)108 278.4 R/F4
+10/Times-Italic@0 SF -.15(ev)3.162 G(ent).15 E F0 3.162(,a)C .663
+(nd the portions of that line that are acted upon are)-3.162 F F4(wor)
+3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F4(modi\214er)108 290.4
+Q(s)-.1 E F0 .227(are a)2.727 F -.25(va)-.2 G .227
+(ilable to manipulate the selected w).25 F 2.727(ords. The)-.1 F .226
+(line is brok)2.726 F .226(en into w)-.1 F .226(ords in the same f)-.1 F
+(ashion)-.1 E .351(as when reading input, so that se)108 302.4 R -.15
+(ve)-.25 G(ral).15 E F4(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .352
+(-separated w)B .352(ords surrounded by quotes are considered)-.1 F .625
+(one w)108 314.4 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624
+(pansions are introduced by the appearance of the history e).15 F .624
+(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 326.4 Q
+F1(!)3.333 E F0(by def)3.333 E 2.5(ault. Only)-.1 F(backslash \()2.5 E
+F1(\\).833 E F0 2.5(\)a).833 G(nd single quotes can quote the history e)
+-2.5 E(xpansion character)-.15 E(.)-.55 E(Se)108 343.2 Q -.15(ve)-.25 G
+.03(ral characters inhibit history e).15 F .03
(xpansion if found immediately follo)-.15 F .03(wing the history e)-.25
-F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 237.6 T
-3.162(ni).25 G 3.162(fi)-3.162 G 3.162(ti)-3.162 G 3.162(su)-3.162 G
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 355.2 T
+3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G
.662(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and)
--.25 F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2
-(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.163 E
-F0(will also inhibit e)108 249.6 Q(xpansion.)-.15 E(Se)108 266.4 Q -.15
-(ve)-.25 G .11(ral shell options settable with the).15 F F2(shopt)2.61 E
-F0 -.2(bu)2.61 G .109(iltin may be used to tailor the beha).2 F .109
-(vior of history e)-.2 F(xpansion.)-.15 E 1.258(If the)108 278.4 R F2
-(histv)3.758 E(erify)-.1 E F0 1.259
-(shell option is enabled \(see the description of the)3.758 F F2(shopt)
-3.759 E F0 -.2(bu)3.759 G 1.259(iltin\), and).2 F F2 -.18(re)3.759 G
-(adline).18 E F0 1.259(is being)3.759 F 1.498(used, history substitutio\
-ns are not immediately passed to the shell parser)108 290.4 R 6.497(.I)
--.55 G 1.497(nstead, the e)-6.497 F 1.497(xpanded line is)-.15 F 2.228
-(reloaded into the)108 302.4 R F2 -.18(re)4.728 G(adline).18 E F0 2.228
+-.25 F F1(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F1
+(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F1(\()3.162 E
+F0(will also inhibit e)108 367.2 Q(xpansion.)-.15 E(Se)108 384 Q -.15
+(ve)-.25 G .109(ral shell options settable with the).15 F F1(shopt)2.609
+E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11
+(vior of history e)-.2 F(xpansion.)-.15 E 1.259(If the)108 396 R F1
+(histv)3.759 E(erify)-.1 E F0 1.259
+(shell option is enabled \(see the description of the)3.759 F F1(shopt)
+3.759 E F0 -.2(bu)3.759 G 1.259(iltin\), and).2 F F1 -.18(re)3.758 G
+(adline).18 E F0 1.258(is being)3.758 F 1.497(used, history substitutio\
+ns are not immediately passed to the shell parser)108 408 R 6.498(.I)
+-.55 G 1.498(nstead, the e)-6.498 F 1.498(xpanded line is)-.15 F 2.228
+(reloaded into the)108 420 R F1 -.18(re)4.728 G(adline).18 E F0 2.228
(editing b)4.728 F(uf)-.2 E 2.228(fer for further modi\214cation.)-.25 F
-(If)7.228 E F2 -.18(re)4.728 G(adline).18 E F0 2.228
-(is being used, and the)4.728 F F2(histr)108 314.4 Q(eedit)-.18 E F0
-1.202(shell option is enabled, a f)3.702 F 1.202
-(ailed history substitution will be reloaded into the)-.1 F F2 -.18(re)
-3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 326.4 S -.25(ff).2 G
-1.16(er for correction.).25 F(The)6.16 E F2<ad70>3.66 E F0 1.16
-(option to the)3.66 F F2(history)3.66 E F0 -.2(bu)3.661 G 1.161
-(iltin command may be used to see what a history).2 F -.15(ex)108 338.4
-S .056(pansion will do before using it.).15 F(The)5.056 E F2<ad73>2.556
-E F0 .056(option to the)2.556 F F2(history)2.555 E F0 -.2(bu)2.555 G
-.055(iltin may be used to add commands to the).2 F
-(end of the history list without actually e)108 350.4 Q -.15(xe)-.15 G
+(If)7.228 E F1 -.18(re)4.728 G(adline).18 E F0 2.228
+(is being used, and the)4.728 F F1(histr)108 432 Q(eedit)-.18 E F0 1.202
+(shell option is enabled, a f)3.702 F 1.202
+(ailed history substitution will be reloaded into the)-.1 F F1 -.18(re)
+3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 444 S -.25(ff).2 G
+1.161(er for correction.).25 F(The)6.161 E F1<ad70>3.661 E F0 1.161
+(option to the)3.661 F F1(history)3.661 E F0 -.2(bu)3.661 G 1.16
+(iltin command may be used to see what a history).2 F -.15(ex)108 456 S
+.055(pansion will do before using it.).15 F(The)5.055 E F1<ad73>2.555 E
+F0 .055(option to the)2.555 F F1(history)2.556 E F0 -.2(bu)2.556 G .056
+(iltin may be used to add commands to the).2 F
+(end of the history list without actually e)108 468 Q -.15(xe)-.15 G
(cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G
-(ilable for subsequent recall.).25 E 2.2(The shell allo)108 367.2 R 2.2
+(ilable for subsequent recall.).25 E 2.2(The shell allo)108 484.8 R 2.2
(ws control of the v)-.25 F 2.2(arious characters used by the history e)
--.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.147(description of)108
-379.2 R F2(histchars)3.647 E F0(abo)3.647 E 1.447 -.15(ve u)-.15 H(nder)
-.15 E F2 1.147(Shell V)3.647 F(ariables)-.92 E F0 3.646(\). The)B 1.146
+-.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.146(description of)108
+496.8 R F1(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder)
+.15 E F1 1.146(Shell V)3.646 F(ariables)-.92 E F0 3.646(\). The)B 1.147
(shell uses the history comment character to)3.646 F
-(mark history timestamps when writing the history \214le.)108 391.2 Q F2
-(Ev)87 408 Q(ent Designators)-.1 E F0(An e)108 420 Q -.15(ve)-.25 G(nt \
-designator is a reference to a command line entry in the history list.)
-.15 E F2(!)108 436.8 Q F0 1.607(Start a history substitution, e)32.67 F
-1.607(xcept when follo)-.15 F 1.607(wed by a)-.25 F F2(blank)4.107 E F0
-4.107(,n)C -.25(ew)-4.107 G 1.608(line, carriage return, = or \().25 F
-(\(when the)144 448.8 Q F2(extglob)2.5 E F0
-(shell option is enabled using the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G
-(iltin\).).2 E F2(!)108 460.8 Q F1(n)A F0(Refer to command line)27.67 E
-F1(n)2.5 E F0(.).24 E F2<21ad>108 472.8 Q F1(n)A F0
-(Refer to the current command line minus)21.97 E F1(n)2.5 E F0(.).24 E
-F2(!!)108 484.8 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 496.8 Q F1(string)
-A F0(Refer to the most recent command starting with)9.33 E F1(string)2.5
-E F0(.).22 E F2(!?)108 508.8 Q F1(string)A F2([?])A F0 1.022
-(Refer to the most recent command containing)144 520.8 R F1(string)3.522
-E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F2(?)3.522 E F0 1.022
-(may be omitted if)3.522 F F1(string)3.861 E F0(is)3.741 E(follo)144
-532.8 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F3 12/Times-Bold@0
-SF(^)108 549.8 Q F1(string1)-5 I F3(^)5 I F1(string2)-5 I F3(^)5 I F0
-2.629(Quick substitution.)144 556.8 R 2.629
-(Repeat the last command, replacing)7.629 F F1(string1)5.469 E F0(with)
-5.129 E F1(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G
-2.63(lent to).25 F -.74(``)144 568.8 S(!!:s/).74 E F1(string1)A F0(/)A
-F1(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
-(belo)2.5 E(w\).)-.25 E F2(!#)108 580.8 Q F0
-(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
-(Wo)87 597.6 S(rd Designators).75 E F0 -.8(Wo)108 609.6 S 1.314
-(rd designators are used to select desired w).8 F 1.314(ords from the e)
--.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.313
-(separates the e)3.813 F -.15(ve)-.25 G 1.313(nt speci\214cation).15 F
-.529(from the w)108 621.6 R .529(ord designator)-.1 F 5.529(.I)-.55 G
-3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
-(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
-($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
--3.029 E F2(%)3.029 E F0 5.53(.W)C(ords)-6.33 E 1.301
-(are numbered from the be)108 633.6 R 1.301
-(ginning of the line, with the \214rst w)-.15 F 1.3
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.3 G 1.3(rds are).8 F
-(inserted into the current line separated by single spaces.)108 645.6 Q
-F2 2.5(0\()108 662.4 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 674.4 Q
-2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
-F1(n)108.36 686.4 Q F0(The)30.64 E F1(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)
-108 698.4 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5
-E(ord 1.)-.1 E F2($)108 710.4 Q F0(The last ar)31 E(gument.)-.18 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(47)185.115 E 0 Cg EP
+(mark history timestamps when writing the history \214le.)108 508.8 Q F1
+(Ev)87 525.6 Q(ent Designators)-.1 E F0(An e)108 537.6 Q -.15(ve)-.25 G
+(nt designator is a reference to a command line entry in the history li\
+st.).15 E F1(!)108 554.4 Q F0 1.608(Start a history substitution, e)
+32.67 F 1.608(xcept when follo)-.15 F 1.607(wed by a)-.25 F F1(blank)
+4.107 E F0 4.107(,n)C -.25(ew)-4.107 G 1.607
+(line, carriage return, = or \().25 F(\(when the)144 566.4 Q F1(extglob)
+2.5 E F0(shell option is enabled using the)2.5 E F1(shopt)2.5 E F0 -.2
+(bu)2.5 G(iltin\).).2 E F1(!)108 578.4 Q F4(n)A F0
+(Refer to command line)27.67 E F4(n)2.5 E F0(.).24 E F1<21ad>108 590.4 Q
+F4(n)A F0(Refer to the current command line minus)21.97 E F4(n)2.5 E F0
+(.).24 E F1(!!)108 602.4 Q F0(Refer to the pre)29.34 E(vious command.)
+-.25 E(This is a synon)5 E(ym for `!\2551'.)-.15 E F1(!)108 614.4 Q F4
+(string)A F0(Refer to the most recent command starting with)9.33 E F4
+(string)2.5 E F0(.).22 E F1(!?)108 626.4 Q F4(string)A F1([?])A F0 1.022
+(Refer to the most recent command containing)144 638.4 R F4(string)3.522
+E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F1(?)3.522 E F0 1.022
+(may be omitted if)3.522 F F4(string)3.862 E F0(is)3.742 E(follo)144
+650.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F5 12/Times-Bold@0
+SF(^)108 667.4 Q F4(string1)-5 I F5(^)5 I F4(string2)-5 I F5(^)5 I F0
+2.63(Quick substitution.)144 674.4 R 2.629
+(Repeat the last command, replacing)7.629 F F4(string1)5.469 E F0(with)
+5.129 E F4(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G
+2.629(lent to).25 F -.74(``)144 686.4 S(!!:s/).74 E F4(string1)A F0(/)A
+F4(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F1(Modi\214ers)2.5 E F0
+(belo)2.5 E(w\).)-.25 E F1(!#)108 698.4 Q F0
+(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(47)192.895 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(%)108 84 Q F0(The w)26 E
-(ord matched by the most recent `?)-.1 E/F2 10/Times-Italic@0 SF(string)
-A F0(?' search.)A F2(x)108.77 96 Q F1<ad>A F2(y)A F0 2.5(Ar)20.65 G
-(ange of w)-2.5 E(ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5 E
-(viates `0\255)-.25 E F2(y)A F0('.)A F1(*)108 108 Q F0 .315
-(All of the w)31 F .315(ords b)-.1 F .315(ut the zeroth.)-.2 F .315
-(This is a synon)5.315 F .315(ym for `)-.15 F F2(1\255$)A F0 2.815
-('. It)B .315(is not an error to use)2.815 F F1(*)2.816 E F0 .316
-(if there is)2.816 F(just one w)144 120 Q(ord in the e)-.1 E -.15(ve)
--.25 G(nt; the empty string is returned in that case.).15 E F1(x*)108
-132 Q F0(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 144
-Q F0(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E(e)-.1 E F1
+-.35 E/F1 10/Times-Bold@0 SF -.75(Wo)87 84 S(rd Designators).75 E F0 -.8
+(Wo)108 96 S 1.313(rd designators are used to select desired w).8 F
+1.314(ords from the e)-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F1(:)3.814
+E F0 1.314(separates the e)3.814 F -.15(ve)-.25 G 1.314
+(nt speci\214cation).15 F .53(from the w)108 108 R .529(ord designator)
+-.1 F 5.529(.I)-.55 G 3.029(tm)-5.529 G .529(ay be omitted if the w)
+-3.029 F .529(ord designator be)-.1 F .529(gins with a)-.15 F F1(^)3.029
+E F0(,)A F1($)3.029 E F0(,)A F1(*)3.029 E F0(,)A F1<ad>3.029 E F0 3.029
+(,o)C(r)-3.029 E F1(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
+(are numbered from the be)108 120 R 1.3
+(ginning of the line, with the \214rst w)-.15 F 1.301
+(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
+F(inserted into the current line separated by single spaces.)108 132 Q
+F1 2.5(0\()108 148.8 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 160.8 Q
+2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
+/F2 10/Times-Italic@0 SF(n)108.36 172.8 Q F0(The)30.64 E F2(n)2.5 E F0
+(th w)A(ord.)-.1 E F1(^)108 184.8 Q F0(The \214rst ar)32.67 E 2.5
+(gument. That)-.18 F(is, w)2.5 E(ord 1.)-.1 E F1($)108 196.8 Q F0
+(The last ar)31 E(gument.)-.18 E F1(%)108 208.8 Q F0(The w)26 E
+(ord matched by the most recent `?)-.1 E F2(string)A F0(?' search.)A F2
+(x)108.77 220.8 Q F1<ad>A F2(y)A F0 2.5(Ar)20.65 G(ange of w)-2.5 E
+(ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)-.25 E
+F2(y)A F0('.)A F1(*)108 232.8 Q F0 .316(All of the w)31 F .316(ords b)
+-.1 F .316(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315
+(ym for `)-.15 F F2(1\255$)A F0 2.815('. It)B .315
+(is not an error to use)2.815 F F1(*)2.815 E F0 .315(if there is)2.815 F
+(just one w)144 244.8 Q(ord in the e)-.1 E -.15(ve)-.25 G
+(nt; the empty string is returned in that case.).15 E F1(x*)108 256.8 Q
+F0(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 268.8 Q
+F0(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E(e)-.1 E F1
(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)108
-160.8 Q(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G
+285.6 Q(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G
(nt speci\214cation, the pre).15 E(vious command is used as the e)-.25 E
--.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 177.6 Q F0 .184
-(After the optional w)108 189.6 R .184(ord designator)-.1 F 2.684(,t)-.4
-G .183(here may appear a sequence of one or more of the follo)-2.684 F
-.183(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 201.6 Q F1(h)
-108 218.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
+-.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 302.4 Q F0 .183
+(After the optional w)108 314.4 R .183(ord designator)-.1 F 2.683(,t)-.4
+G .184(here may appear a sequence of one or more of the follo)-2.683 F
+.184(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 326.4 Q F1(h)
+108 343.2 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 230.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
+(t)108 355.2 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 242.4 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
+108 367.2 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 254.4 Q F0(Remo)31.56 E .3 -.15(ve a)
--.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 266.4
+(ving the basename.)-.2 E F1(e)108 379.2 Q F0(Remo)31.56 E .3 -.15(ve a)
+-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 391.2
Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
-E -.15(xe)-.15 G(cute it.).15 E F1(q)108 278.4 Q F0
+E -.15(xe)-.15 G(cute it.).15 E F1(q)108 403.2 Q F0
(Quote the substituted w)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 290.4 Q F0(Quote the substituted w)31 E(ords as with)-.1
+-.1 E F1(x)108 415.2 Q F0(Quote the substituted w)31 E(ords as with)-.1
E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)
-2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 302.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 314.4 Q F2(ne)3.081 E(w)-.15 E
-F0 .221(for the \214rst occurrence of)3.031 F F2(old)2.951 E F0 .221
+2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 427.2 Q F2(old)A F1(/)A
+F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 439.2 Q F2(ne)3.082 E(w)-.15 E
+F0 .221(for the \214rst occurrence of)3.032 F F2(old)2.951 E F0 .221
(in the e)3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721
-(yd)-.15 G .221(elimiter can be used in place)-2.721 F .617(of /.)144
-326.4 R .617
+(yd)-.15 G .221(elimiter can be used in place)-2.721 F .616(of /.)144
+451.2 R .617
(The \214nal delimiter is optional if it is the last character of the e)
-5.617 F -.15(ve)-.25 G .617(nt line.).15 F .616(The delimiter may)5.616
-F .666(be quoted in)144 338.4 R F2(old)3.396 E F0(and)3.936 E F2(ne)
+5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
+F .666(be quoted in)144 463.2 R F2(old)3.396 E F0(and)3.936 E F2(ne)
3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
(If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166
(ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E
-F0 5.666(.A).77 G .275(single backslash will quote the &.)144 350.4 R
-(If)5.275 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
-F F2(old)3.004 E F0 .274(substituted, or)3.544 F 2.774(,i)-.4 G 2.774
-(fn)-2.774 G 2.774(op)-2.774 G(re)-2.774 E(vi-)-.25 E
-(ous history substitutions took place, the last)144 362.4 Q F2(string)
+F0 5.666(.A).77 G .274(single backslash will quote the &.)144 475.2 R
+(If)5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
+F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775
+(fn)-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E
+(ous history substitutions took place, the last)144 487.2 Q F2(string)
2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1
-(&)108 374.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
-(g)108 386.4 Q F0 .397(Cause changes to be applied o)31 F -.15(ve)-.15 G
-2.897(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398(nt line.)
-.15 F .398(This is used in conjunction with `)5.398 F F1(:s)A F0 2.898
-('\()C(e.g.,)-2.898 E(`)144 398.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
--.15 E F1(/)A F0 1.219('\) or `)B F1(:&)A F0 3.719('. If)B 1.219
-(used with `)3.719 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.218
-(elimiter can be used in place of /, and the \214nal)-3.718 F .089
-(delimiter is optional if it is the last character of the e)144 410.4 R
--.15(ve)-.25 G .09(nt line.).15 F(An)5.09 E F1(a)2.59 E F0 .09
-(may be used as a synon)2.59 F .09(ym for)-.15 F F1(g)144 422.4 Q F0(.)A
-F1(G)108 434.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0 2.5
-('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25 G
-(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 451.2 Q(UIL)-.11 E
-(TIN COMMANDS)-1.007 E F0 .063(Unless otherwise noted, each b)108 463.2
-R .062(uiltin command documented in this section as accepting options p\
-receded by)-.2 F F1<ad>108 475.2 Q F0(accepts)2.533 E F1<adad>2.533 E F0
-.034(to signify the end of the options.)2.533 F(The)5.034 E F1(:)2.534 E
+(&)108 499.2 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
+(g)108 511.2 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G
+2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.)
+.15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897
+('\()C(e.g.,)-2.897 E(`)144 523.2 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
+-.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218
+(used with `)3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
+(elimiter can be used in place of /, and the \214nal)-3.718 F .09
+(delimiter is optional if it is the last character of the e)144 535.2 R
+-.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089
+(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 547.2 Q F0
+(.)A F1(G)108 559.2 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0
+2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25
+G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 576 Q(UIL)-.11 E
+(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 588 R
+.062(uiltin command documented in this section as accepting options pre\
+ceded by)-.2 F F1<ad>108 600 Q F0(accepts)2.534 E F1<adad>2.534 E F0
+.034(to signify the end of the options.)2.534 F(The)5.034 E F1(:)2.534 E
F0(,)A F1(true)2.534 E F0(,)A F1(false)2.534 E F0 2.534(,a)C(nd)-2.534 E
-F1(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and)
-.2 F .078(do not treat)108 487.2 R F1<adad>2.577 E F0(specially)2.577 E
+F1(test)2.534 E F0 -.2(bu)2.534 G .033(iltins do not accept options and)
+.2 F .077(do not treat)108 612 R F1<adad>2.577 E F0(specially)2.577 E
5.077(.T)-.65 G(he)-5.077 E F1(exit)2.577 E F0(,)A F1(logout)2.577 E F0
(,)A F1(br)2.577 E(eak)-.18 E F0(,)A F1(continue)2.577 E F0(,)A F1(let)
2.577 E F0 2.577(,a)C(nd)-2.577 E F1(shift)2.577 E F0 -.2(bu)2.577 G
-.077(iltins accept and process ar).2 F(gu-)-.18 E .319(ments be)108
-499.2 R .319(ginning with)-.15 F F1<ad>2.819 E F0 .319
-(without requiring)2.819 F F1<adad>2.819 E F0 5.319(.O)C .319(ther b)
--5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32
-(ut are not speci\214ed as)-.2 F 1.144(accepting options interpret ar)
-108 511.2 R 1.144(guments be)-.18 F 1.144(ginning with)-.15 F F1<ad>
-3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143
-(lid options and require).25 F F1<adad>3.643 E F0 1.143(to pre)3.643 F
--.15(ve)-.25 G 1.143(nt this).15 F(interpretation.)108 523.2 Q F1(:)108
-541.2 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .451(No ef)144 553.2 R
-.451(fect; the command does nothing be)-.25 F .452(yond e)-.15 F
-(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)
-3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144
-565.2 R(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 582 Q F2
-(\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108
-594 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0
-(])A 1.02(Read and e)144 606 R -.15(xe)-.15 G 1.02(cute commands from)
-.15 F F2(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02
+.077(iltins accept and process ar).2 F(gu-)-.18 E .32(ments be)108 624 R
+.32(ginning with)-.15 F F1<ad>2.82 E F0 .32(without requiring)2.82 F F1
+<adad>2.82 E F0 5.319(.O)C .319(ther b)-5.319 F .319
+(uiltins that accept ar)-.2 F .319(guments b)-.18 F .319
+(ut are not speci\214ed as)-.2 F 1.143(accepting options interpret ar)
+108 636 R 1.143(guments be)-.18 F 1.143(ginning with)-.15 F F1<ad>3.643
+E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143(lid options and require).25
+F F1<adad>3.644 E F0 1.144(to pre)3.644 F -.15(ve)-.25 G 1.144(nt this)
+.15 F(interpretation.)108 648 Q F1(:)108 666 Q F0([)2.5 E F2(ar)A
+(guments)-.37 E F0(])A .452(No ef)144 678 R .452
+(fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding)
+-.15 E F2(ar)3.282 E(guments)-.37 E F0 .451(and performing an)3.221 F
+2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144 690 R
+(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 706.8 Q F2
+(\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(48)192.895 E 0 Cg EP
+%%Page: 49 49
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(sour)108 84 Q(ce)-.18 E/F2 10
+/Times-Italic@0 SF(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0
+(])A 1.02(Read and e)144 96 R -.15(xe)-.15 G 1.02(cute commands from).15
+F F2(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02
(vironment and return the e)-.4 F(xit)-.15 E 1.68
-(status of the last command e)144 618 R -.15(xe)-.15 G 1.68(cuted from)
+(status of the last command e)144 108 R -.15(xe)-.15 G 1.68(cuted from)
.15 F F2(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F2(\214lename)6.09
-E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 630
-R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
+E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 120
+R/F3 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
(are used to \214nd the directory containing)2.858 F F2(\214lename)3.108
-E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA)
-3.108 G(TH)-.189 E F0 .832(need not be e)144 642 R -.15(xe)-.15 G 3.332
-(cutable. When).15 F F1(bash)3.332 E F0 .832(is not in)3.332 F F2 .832
-(posix mode)3.332 F F0 3.332(,t)C .833
-(he current directory is searched if no)-3.332 F .982
-(\214le is found in)144 654 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F3 -.666(PA)
+3.108 G(TH)-.189 E F0 .833(need not be e)144 132 R -.15(xe)-.15 G 3.333
+(cutable. When).15 F F1(bash)3.333 E F0 .832(is not in)3.333 F F2 .832
+(posix mode)3.332 F F0 3.332(,t)C .832
+(he current directory is searched if no)-3.332 F .981
+(\214le is found in)144 144 R F3 -.666(PA)3.481 G(TH)-.189 E/F4 9
/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E(cepath)-.18
E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981
-(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 666
-S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F(y)-.15
+(iltin command is turned of).2 F .982(f, the)-.25 F F3 -.666(PA)144 156
+S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F(y)-.15
E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F 2.612
(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F2
-(\214lename)144 678 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842
-(cuted. Otherwise).15 F .342(the positional parameters are unchanged.)
-2.842 F .341(The return status is the)5.341 F .716
-(status of the last command e)144 690 R .716
+(\214lename)144 168 Q F0 .341(is e)2.841 F -.15(xe)-.15 G 2.841
+(cuted. Otherwise).15 F .341(the positional parameters are unchanged.)
+2.841 F .342(The return status is the)5.342 F .716
+(status of the last command e)144 180 R .716
(xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
-.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 702 Q
-F0(is not found or cannot be read.)2.68 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(48)185.115 E 0 Cg EP
-%%Page: 49 49
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(alias)108 84 Q F0([)2.5 E F1<ad70>A F0 2.5
-(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(..])-2.5 E F1(Alias)144 96 Q F0 2.725(with no ar)5.225 F 2.724
+.716(cuted\), and f).15 F .715(alse if)-.1 F F2(\214lename)145.91 192 Q
+F0(is not found or cannot be read.)2.68 E F1(alias)108 208.8 Q F0([)2.5
+E F1<ad70>A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
+(..])-2.5 E F1(Alias)144 220.8 Q F0 2.724(with no ar)5.224 F 2.724
(guments or with the)-.18 F F1<ad70>5.224 E F0 2.724
-(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E
-F2(name)144 108 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
+(option prints the list of aliases in the form)5.224 F F1(alias)5.225 E
+F2(name)144 232.8 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
.58(When ar)5.58 F .58
(guments are supplied, an alias is de\214ned for each)-.18 F F2(name)
-3.08 E F0(whose)144 120 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
+3.08 E F0(whose)144 244.8 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F2(value)
5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395
(ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054
-(stitution when the alias is e)144 132 R 2.554(xpanded. F)-.15 F .054
+(stitution when the alias is e)144 256.8 R 2.554(xpanded. F)-.15 F .054
(or each)-.15 F F2(name)2.554 E F0 .054(in the ar)2.554 F .054
-(gument list for which no)-.18 F F2(value)2.554 E F0 .054(is sup-)2.554
-F 1.314(plied, the name and v)144 144 R 1.314
+(gument list for which no)-.18 F F2(value)2.554 E F0 .053(is sup-)2.553
+F 1.313(plied, the name and v)144 268.8 R 1.314
(alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314
-(returns true unless a)3.814 F F2(name)3.814 E F0 1.313(is gi)3.814 F
--.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E
-(which no alias has been de\214ned.)144 156 Q F1(bg)108 172.8 Q F0([)2.5
-E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 184.8 R
-F2(jobspec)3.244 E F0 .745
-(in the background, as if it had been started with)3.244 F F1(&)3.245 E
-F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 196.8 Q F0 .672
-(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
--3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
-(bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
-(when job control is disabled or)144 208.8 R 2.919(,w)-.4 G .419
-(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G
-(peci\214ed)-2.919 E F2(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
-(ot)-2.919 E(found or w)144 220.8 Q(as started without job control.)-.1
-E F1(bind)108 237.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
-2.5(][)C F1(\255lpsvPSV)-2.5 E F0(])A F1(bind)108 249.6 Q F0([)2.5 E F1
+(returns true unless a)3.814 F F2(name)3.814 E F0 1.314(is gi)3.814 F
+-.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E
+(which no alias has been de\214ned.)144 280.8 Q F1(bg)108 297.6 Q F0([)
+2.5 E F2(jobspec)A F0(...])2.5 E .745(Resume each suspended job)144
+309.6 R F2(jobspec)3.245 E F0 .745
+(in the background, as if it had been started with)3.245 F F1(&)3.244 E
+F0 5.744(.I)C(f)-5.744 E F2(job-)4.984 E(spec)144 321.6 Q F0 .671
+(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the)
+-3.171 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
+(bg)5.672 E F2(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419
+(when job control is disabled or)144 333.6 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G
+(peci\214ed)-2.918 E F2(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
+(ot)-2.918 E(found or w)144 345.6 Q(as started without job control.)-.1
+E F1(bind)108 362.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F1(\255lpsvPSV)-2.5 E F0(])A F1(bind)108 374.4 Q F0([)2.5 E F1
<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1<ad71>-2.5 E F2
(function)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(function)2.5 E F0 2.5(][)C
-F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 261.6 Q F0
+F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 386.4 Q F0
([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0(])A F1<ad66>2.5 E F2
-(\214lename)2.5 E F1(bind)108 273.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
+(\214lename)2.5 E F1(bind)108 398.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
G(ymap)-.2 E F0(])A F1<ad78>2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(shell\255command)A F1(bind)108 285.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
+(shell\255command)A F1(bind)108 410.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(function\255name)A F1(bind)108 297.6 Q F2 -.37(re)2.5 G
-(adline\255command).37 E F0 .239(Display current)144 309.6 R F1 -.18(re)
-2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
-(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238
-(equence to a).15 F F1 -.18(re)2.738 G(adline).18 E F0 .238(function or)
-2.738 F .475(macro, or set a)144 321.6 R F1 -.18(re)2.975 G(adline).18 E
-F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
-.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F2
-(.inputr)144 333.6 Q(c)-.37 E F0 2.984(,b).31 G .484
-(ut each binding or command must be passed as a separate ar)-3.184 F
-.483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
-(re\255read\255init\255\214le'. Options,)144 345.6 R(if supplied, ha)2.5
+(function\255name)A F1(bind)108 422.4 Q F2 -.37(re)2.5 G
+(adline\255command).37 E F0 .238(Display current)144 434.4 R F1 -.18(re)
+2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
+(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
+(equence to a).15 F F1 -.18(re)2.739 G(adline).18 E F0 .239(function or)
+2.739 F .476(macro, or set a)144 446.4 R F1 -.18(re)2.976 G(adline).18 E
+F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F
+.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F2
+(.inputr)144 458.4 Q(c)-.37 E F0 2.983(,b).31 G .484
+(ut each binding or command must be passed as a separate ar)-3.183 F
+.484(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
+(re\255read\255init\255\214le'. Options,)144 470.4 R(if supplied, ha)2.5
E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144
-357.6 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 369.6 Q F2 -.1(ke)5.158 G
-(ymap)-.2 E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af)
-.15 F 2.659(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E
-F2 -.1(ke)180 381.6 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
-(emacs, emacs\255standar)5.693 F 3.192
+482.4 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 494.4 Q F2 -.1(ke)5.159 G
+(ymap)-.2 E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af)
+.15 F 2.658(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E
+F2 -.1(ke)180 506.4 S(ymap)-.2 E F0 3.192(names are)5.882 F F2 3.192
+(emacs, emacs\255standar)5.692 F 3.193
(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 393.6 Q F0 4.429(,a)C(nd)-4.429 E F2(vi\255insert)
-4.429 E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G
-1.929(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0
-1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F2
-(emacs\255standar)180 405.6 Q(d)-.37 E F0(.)A F1<ad6c>144 417.6 Q F0
+(vi\255command)180 518.4 Q F0 4.43(,a)C(nd)-4.43 E F2(vi\255insert)4.429
+E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.929
+(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0 1.929
+(is equi)4.429 F -.25(va)-.25 G 1.929(lent to).25 F F2(emacs\255standar)
+180 530.4 Q(d)-.37 E F0(.)A F1<ad6c>144 542.4 Q F0
(List the names of all)27.52 E F1 -.18(re)2.5 G(adline).18 E F0
-(functions.)2.5 E F1<ad70>144 429.6 Q F0(Display)24.74 E F1 -.18(re)2.5
+(functions.)2.5 E F1<ad70>144 554.4 Q F0(Display)24.74 E F1 -.18(re)2.5
G(adline).18 E F0(function names and bindings in such a w)2.5 E
-(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 441.6
+(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 566.4
Q F0(List current)24.19 E F1 -.18(re)2.5 G(adline).18 E F0
-(function names and bindings.)2.5 E F1<ad73>144 453.6 Q F0(Display)26.41
+(function names and bindings.)2.5 E F1<ad73>144 578.4 Q F0(Display)26.41
E F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G
1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
--.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 465.6 S 2.5(yt).1 G
-(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 477.6 Q
+-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 590.4 S 2.5(yt).1 G
+(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 602.4 Q
F0(Display)24.74 E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)
-.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 E F1<ad76>144 489.6 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(utput.)-2.5 E F1<ad76>144 614.4 Q F0(Display)25.3 E F1 -.18(re)2.5 G
(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
(alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
-(an be re-read.)-2.5 E F1<ad56>144 501.6 Q F0(List current)23.08 E F1
+(an be re-read.)-2.5 E F1<ad56>144 626.4 Q F0(List current)23.08 E F1
-.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
-(alues.)-.25 E F1<ad66>144 513.6 Q F2(\214lename)2.5 E F0(Read k)180
-525.6 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
-F1<ad71>144 537.6 Q F2(function)2.5 E F0(Query about which k)180 549.6 Q
+(alues.)-.25 E F1<ad66>144 638.4 Q F2(\214lename)2.5 E F0(Read k)180
+650.4 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
+F1<ad71>144 662.4 Q F2(function)2.5 E F0(Query about which k)180 674.4 Q
-.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H
-(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 561.6 Q F2(function)
-2.5 E F0(Unbind all k)180 573.6 Q -.15(ey)-.1 G 2.5(sb).15 G
-(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 585.6 Q
-F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 597.6 Q .3 -.15(ve a)-.15 H .3
--.15(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0
-(.)A F1<ad78>144 609.6 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
-(shell\255command)A F0(Cause)180 621.6 Q F2(shell\255command)4.325 E F0
-1.825(to be e)4.325 F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)
--.25 G(r).15 E F2 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F
-(When)6.825 E F2(shell\255com-)4.325 E(mand)180 633.6 Q F0 1.113(is e)
-3.614 F -.15(xe)-.15 G 1.113(cuted, the shell sets the).15 F F1
-(READLINE_LINE)3.613 E F0 -.25(va)3.613 G 1.113
-(riable to the contents of the).25 F F1 -.18(re)180 645.6 S(adline).18 E
-F0 .586(line b)3.086 F(uf)-.2 E .586(fer and the)-.25 F F1
-(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .587
-(riable to the current location of the).25 F 1.241(insertion point.)180
-657.6 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
+(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 686.4 Q F2(function)
+2.5 E F0(Unbind all k)180 698.4 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F2(function)2.5 E F0(.)A(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(49)192.895 E 0 Cg EP
+%%Page: 50 50
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad72>144 84 Q/F2 10/Times-Italic@0 SF -.1
+(ke)2.5 G(yseq)-.2 E F0(Remo)180 96 Q .3 -.15(ve a)-.15 H .3 -.15(ny c)
+.15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(.)A F1
+<ad78>144 108 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)A
+F0(Cause)180 120 Q F2(shell\255command)4.325 E F0 1.825(to be e)4.325 F
+-.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F2 -.1(ke)
+4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F2
+(shell\255com-)4.325 E(mand)180 132 Q F0 1.113(is e)3.613 F -.15(xe)-.15
+G 1.113(cuted, the shell sets the).15 F F1(READLINE_LINE)3.613 E F0 -.25
+(va)3.613 G 1.113(riable to the contents of the).25 F F1 -.18(re)180 144
+S(adline).18 E F0 .587(line b)3.087 F(uf)-.2 E .587(fer and the)-.25 F
+F1(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .586
+(riable to the current location of the).25 F 1.24(insertion point.)180
+156 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
(cuted command changes the v).15 F 1.241(alue of)-.25 F F1
-(READLINE_LINE)3.741 E F0(or)3.74 E F1(READLINE_POINT)180 669.6 Q F0 2.5
+(READLINE_LINE)3.741 E F0(or)3.741 E F1(READLINE_POINT)180 168 Q F0 2.5
(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G
(alues will be re\215ected in the editing state.)-2.75 E(The return v)
-144 686.4 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+144 184.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F1(br)108 703.2 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054
-(Exit from within a)144 715.2 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1
-(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
+E F1(br)108 201.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055
+(Exit from within a)144 213.6 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1
+(while)2.555 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
-(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F3 10/Symbol SF<b3>2.555
-E F0(1.)2.555 E(If)144 727.2 Q F2(n)3.075 E F0 .215(is greater than the\
- number of enclosing loops, all enclosing loops are e)2.955 F 2.714
-(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(GNU Bash-4.1)72 768
-Q(2009 September 16)135.125 E(49)185.115 E 0 Cg EP
-%%Page: 50 50
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(is 0 unless)144 84 Q/F1 10/Times-Italic@0 SF(n)2.5 E F0
-(is not greater than or equal to 1.)2.5 E/F2 10/Times-Bold@0 SF -.2(bu)
-108 100.8 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E F1
-(ar)A(guments)-.37 E F0(])A(Ex)144 112.8 Q .792
-(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1
+(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F3 10/Symbol SF<b3>2.554
+E F0(1.)2.554 E(If)144 225.6 Q F2(n)3.074 E F0 .215(is greater than the\
+ number of enclosing loops, all enclosing loops are e)2.954 F 2.715
+(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144
+237.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
+(bu)108 254.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
+F2(ar)A(guments)-.37 E F0(])A(Ex)144 266.4 Q .793
+(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F2
(ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
-F .793(xit status.)-.15 F .793(This is useful)5.793 F .616
+F .792(xit status.)-.15 F .792(This is useful)5.792 F .615
(when de\214ning a function whose name is the same as a shell b)144
-124.8 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
-136.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
+278.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
+290.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
-5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 148.8 Q(alse if)-.1
-E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
-(uiltin command.)-.2 E F2(caller)108 165.6 Q F0([)2.5 E F1 -.2(ex)C(pr)
-.2 E F0(])A .254(Returns the conte)144 177.6 R .254(xt of an)-.15 F
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 302.4 Q(alse if)-.1
+E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
+(uiltin command.)-.2 E F1(caller)108 319.2 Q F0([)2.5 E F2 -.2(ex)C(pr)
+.2 E F0(])A .253(Returns the conte)144 331.2 R .254(xt of an)-.15 F
2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 189.6 Q
-(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F1 -.2
-(ex)3.062 G(pr).2 E F0(,)A F2(caller)3.062 E F0 .562
+.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 343.2 Q
+(ce)-.18 E F0 -.2(bu)3.063 G 3.063(iltins. W).2 F(ithout)-.4 E F2 -.2
+(ex)3.062 G(pr).2 E F0(,)A F1(caller)3.062 E F0 .562
(displays the line number and source \214lename of the current)3.062 F
-.254(subroutine call.)144 201.6 R .254(If a non-ne)5.254 F -.05(ga)-.15
-G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
-F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253
-(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
+.253(subroutine call.)144 355.2 R .253(If a non-ne)5.253 F -.05(ga)-.15
+G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .254
+(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\
tine name, and source \214le corresponding to that position in the curr\
-ent e)144 213.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
-(This e)144 225.6 R .001(xtra information may be used, for e)-.15 F .001
-(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
-3.019(0. The)144 237.6 R .519(return v)3.019 F .519
-(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
-(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52
-(does not corre-)3.02 F(spond to a v)144 249.6 Q
-(alid position in the call stack.)-.25 E F2(cd)108 266.4 Q F0([)2.5 E F2
-(\255L|-P)A F0 2.5(][)C F1(dir)-2.5 E F0(])A .21
-(Change the current directory to)144 278.4 R F1(dir)2.71 E F0 5.21(.T)C
-.21(he v)-5.21 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
-(is the def)2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v)
--5.21 F(ariable)-.25 E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776
-(de\214nes the search path for the directory containing)144 290.4 R F1
-(dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H
-.777(irectory names in).15 F F3(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0
-.764(are separated by a colon \(:\).)144 302.4 R 3.264(An)5.764 G .764
-(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H).855 E
-F0 .764(is the same as the current direc-)3.014 F(tory)144 314.4 Q 2.973
-(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I)
-.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474
-(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H)
-.855 E F0 .474(is not used. The)2.724 F F2<ad50>2.974 E F0 .474
-(option says to use)2.974 F .58(the ph)144 326.4 R .58
+ent e)144 367.2 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
+144 379.2 Q(xtra information may be used, for e)-.15 E .001
+(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
+5.001 F 3.02(0. The)144 391.2 R .52(return v)3.02 F .52
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519
+(cuting a subroutine call or).15 F F2 -.2(ex)3.019 G(pr).2 E F0 .519
+(does not corre-)3.019 F(spond to a v)144 403.2 Q
+(alid position in the call stack.)-.25 E F1(cd)108 420 Q F0([)2.5 E F1
+(\255L|-P)A F0 2.5(][)C F2(dir)-2.5 E F0(])A .21
+(Change the current directory to)144 432 R F2(dir)2.71 E F0 5.21(.T)C
+.21(he v)-5.21 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
+(is the def)2.46 F(ault)-.1 E F2(dir)2.71 E F0 5.21(.T).73 G .21(he v)
+-5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .777
+(de\214nes the search path for the directory containing)144 444 R F2
+(dir)3.276 E F0 5.776(.A).73 G(lternati)-5.776 E 1.076 -.15(ve d)-.25 H
+.776(irectory names in).15 F F4(CDP)3.276 E -.855(AT)-.666 G(H).855 E F0
+.764(are separated by a colon \(:\).)144 456 R 3.264(An)5.764 G .764
+(ull directory name in)-3.264 F F4(CDP)3.264 E -.855(AT)-.666 G(H).855 E
+F0 .764(is the same as the current direc-)3.014 F(tory)144 468 Q 2.974
+(,i)-.65 G .474(.e., `)-2.974 F(`)-.74 E F1(.)A F0 -.74('')C 5.474(.I)
+.74 G(f)-5.474 E F2(dir)3.324 E F0(be)3.704 E .474
+(gins with a slash \(/\), then)-.15 F F4(CDP)2.974 E -.855(AT)-.666 G(H)
+.855 E F0 .473(is not used. The)2.724 F F1<ad50>2.973 E F0 .473
+(option says to use)2.973 F .579(the ph)144 480 R .579
(ysical directory structure instead of follo)-.05 F .579
-(wing symbolic links \(see also the)-.25 F F2<ad50>3.079 E F0 .579
-(option to the)3.079 F F2(set)144 338.4 Q F0 -.2(bu)3.383 G .883
-(iltin command\); the).2 F F2<ad4c>3.383 E F0 .884
+(wing symbolic links \(see also the)-.25 F F1<ad50>3.08 E F0 .58
+(option to the)3.08 F F1(set)144 492 Q F0 -.2(bu)3.384 G .884
+(iltin command\); the).2 F F1<ad4c>3.384 E F0 .884
(option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F
-(ar)3.384 E .884(gument of)-.18 F F2<ad>3.384 E F0(is)3.384 E(equi)144
-350.4 Q -.25(va)-.25 G .063(lent to).25 F F3($OLDPWD)2.563 E/F4 9
-/Times-Roman@0 SF(.)A F0 .063(If a non-empty directory name from)4.563 F
-F2(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .062(is used, or if)2.562 F F2
-<ad>2.562 E F0 .062(is the \214rst)2.562 F(ar)144 362.4 Q .116(gument, \
-and the directory change is successful, the absolute pathname of the ne)
--.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165
-(tory is written to the standard output.)144 374.4 R 1.164(The return v)
-6.164 F 1.164(alue is true if the directory w)-.25 F 1.164
-(as successfully)-.1 F(changed; f)144 386.4 Q(alse otherwise.)-.1 E F2
-(command)108 403.2 Q F0([)2.5 E F2(\255pVv)A F0(])A F1(command)2.5 E F0
-([)2.5 E F1(ar)A(g)-.37 E F0(...])2.5 E(Run)144 415.2 Q F1(command)2.956
-E F0(with)3.527 E F1(ar)3.087 E(gs)-.37 E F0 .257
+(ar)3.383 E .883(gument of)-.18 F F1<ad>3.383 E F0(is)3.383 E(equi)144
+504 Q -.25(va)-.25 G .062(lent to).25 F F4($OLDPWD)2.562 E/F5 9
+/Times-Roman@0 SF(.)A F0 .062(If a non-empty directory name from)4.562 F
+F1(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .063(is used, or if)2.562 F F1
+<ad>2.563 E F0 .063(is the \214rst)2.563 F(ar)144 516 Q .116(gument, an\
+d the directory change is successful, the absolute pathname of the ne)
+-.18 F 2.615(ww)-.25 G .115(orking direc-)-2.715 F 1.164
+(tory is written to the standard output.)144 528 R 1.164(The return v)
+6.164 F 1.165(alue is true if the directory w)-.25 F 1.165
+(as successfully)-.1 F(changed; f)144 540 Q(alse otherwise.)-.1 E F1
+(command)108 556.8 Q F0([)2.5 E F1(\255pVv)A F0(])A F2(command)2.5 E F0
+([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 568.8 Q F2(command)2.957
+E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257
(suppressing the normal shell function lookup. Only b)3.027 F .257
-(uiltin commands or)-.2 F .502(commands found in the)144 427.2 R F3
--.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002
-(cuted. If).15 F(the)3.002 E F2<ad70>3.002 E F0 .502(option is gi)3.002
-F -.15(ve)-.25 G .501(n, the search for).15 F F1(command)3.201 E F0(is)
-3.771 E .231(performed using a def)144 439.2 R .231(ault v)-.1 F .231
-(alue for)-.25 F F2 -.74(PA)2.731 G(TH)-.21 E F0 .231
+(uiltin commands or)-.2 F .501(commands found in the)144 580.8 R F4
+-.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G 3.002
+(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502(option is gi)3.002
+F -.15(ve)-.25 G .502(n, the search for).15 F F2(command)3.202 E F0(is)
+3.772 E .232(performed using a def)144 592.8 R .231(ault v)-.1 F .231
+(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0 .231
(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If)
-5.232 E .175(either the)144 451.2 R F2<ad56>2.675 E F0(or)2.675 E F2
-<ad76>2.675 E F0 .175(option is supplied, a description of)2.675 F F1
-(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F2<ad76>2.674 E
-F0 .174(option causes)2.674 F 3.11(as)144 463.2 S .61(ingle w)-3.11 F
+5.231 E .174(either the)144 604.8 R F1<ad56>2.674 E F0(or)2.674 E F1
+<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F2
+(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F1<ad76>2.675 E
+F0 .175(option causes)2.675 F 3.11(as)144 616.8 S .61(ingle w)-3.11 F
.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo)
--.4 G -.1(ke).2 G F1(command)3.41 E F0 .61(to be displayed; the)3.88 F
-F2<ad56>144 475.2 Q F0 .25(option produces a more v)2.75 F .25
-(erbose description.)-.15 F .249(If the)5.25 F F2<ad56>2.749 E F0(or)
-2.749 E F2<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
-(xit status)-.15 F 1.004(is 0 if)144 487.2 R F1(command)3.704 E F0 -.1
-(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005
-(If neither option is supplied and an error occurred or)6.005 F F1
-(command)144.2 499.2 Q F0 1.599(cannot be found, the e)4.869 F 1.599
-(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
-(xit status of the)-.15 F F2(command)4.098 E F0 -.2(bu)144 511.2 S
-(iltin is the e).2 E(xit status of)-.15 E F1(command)2.5 E F0(.).77 E F2
-(compgen)108 528 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
--.37 E F0(])A .012(Generate possible completion matches for)144 540 R F1
-(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513 E
-F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
-(accepted by the)144 552 R F2(complete)3.482 E F0 -.2(bu)3.481 G .981
-(iltin with the e).2 F .981(xception of)-.15 F F2<ad70>3.481 E F0(and)
-3.481 E F2<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
--3.481 F 1.415(standard output.)144 564 R 1.415(When using the)6.415 F
-F2<ad46>3.915 E F0(or)3.915 E F2<ad43>3.915 E F0 1.415(options, the v)
+-.4 G -.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F
+F1<ad56>144 628.8 Q F0 .249(option produces a more v)2.749 F .249
+(erbose description.)-.15 F .249(If the)5.249 F F1<ad56>2.749 E F0(or)
+2.749 E F1<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
+(xit status)-.15 F 1.005(is 0 if)144 640.8 R F2(command)3.705 E F0 -.1
+(wa)4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
+(If neither option is supplied and an error occurred or)6.005 F F2
+(command)144.2 652.8 Q F0 1.598(cannot be found, the e)4.868 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
+(xit status of the)-.15 F F1(command)4.099 E F0 -.2(bu)144 664.8 S
+(iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
+(compgen)108 681.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
+-.37 E F0(])A .013(Generate possible completion matches for)144 693.6 R
+F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513
+E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
+(accepted by the)144 705.6 R F1(complete)3.481 E F0 -.2(bu)3.481 G .981
+(iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
+3.481 E F1<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
+-3.481 F 1.415(standard output.)144 717.6 R 1.415(When using the)6.415 F
+F1<ad46>3.915 E F0(or)3.915 E F1<ad43>3.915 E F0 1.415(options, the v)
3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
-F(grammable completion f)144 576 Q(acilities, while a)-.1 E -.25(va)-.2
-G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25
-E .352(The matches will be generated in the same w)144 600 R .352
-(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
-em directly from a completion speci\214cation with the same \215ags.)144
-612 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52
-F(those completions matching)144 624 Q F1(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 648 Q
-(alue is true unless an in)-.25 E -.25(va)-.4 G
-(lid option is supplied, or no matches were generated.).25 E F2
-(complete)108 664.8 Q F0([)3.729 E F2(\255abcdefgjksuv)A F0 3.729(][)C
-F2<ad6f>-3.729 E F1(comp-option)3.729 E F0 3.729(][)C F2(\255DE)-3.729 E
-F0 3.728(][)C F2<ad41>-3.728 E F1(action)3.728 E F0 3.728(][)C F2<ad47>
--3.728 E F1(globpat)3.728 E F0 3.728(][)C F2<ad57>-3.728 E F1(wor)3.728
-E(dlist)-.37 E F0 3.728(][)C F2<ad46>-3.728 E F1(func-)3.728 E(tion)108
-676.8 Q F0 2.5(][)C F2<ad43>-2.5 E F1(command)2.5 E F0(])A([)144 688.8 Q
-F2<ad58>A F1(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F1(pr)2.5 E
-(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])
-A F1(name)2.5 E F0([)2.5 E F1(name ...)A F0(])A F2(complete \255pr)108
-700.8 Q F0([)2.5 E F2(\255DE)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E
-.634(Specify ho)144 712.8 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
-(uments to each).18 F F1(name)3.134 E F0 .634(should be completed.)3.134
-F .633(If the)5.634 F F2<ad70>3.133 E F0 .633
-(option is supplied, or if no)3.133 F .139(options are supplied, e)144
-724.8 R .139(xisting completion speci\214cations are printed in a w)-.15
-F .14(ay that allo)-.1 F .14(ws them to be)-.25 F(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(50)185.115 E 0 Cg EP
+F(grammable completion f)144 729.6 Q(acilities, while a)-.1 E -.25(va)
+-.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)
+-.25 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(50)192.895 E 0 Cg
+EP
%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .31(reused as input.)144 84 R(The)5.31 E/F1 10/Times-Bold@0 SF
-<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31
-(ompletion speci\214cation for each)-2.81 F/F2 10/Times-Italic@0 SF
-(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E
-F2(name)2.81 E F0(s)A 1.346
-(are supplied, all completion speci\214cations.)144 96 R(The)6.347 E F1
-<ad44>3.847 E F0 1.347(option indicates that the remaining options)3.847
-F .5(and actions should apply to the `)144 108 R(`def)-.74 E(ault')-.1 E
-3('c)-.74 G .5(ommand completion; that is, completion attempted on)-3 F
-3.455(ac)144 120 S .955(ommand for which no completion has pre)-3.455 F
-.955(viously been de\214ned.)-.25 F(The)5.955 E F1<ad45>3.455 E F0 .955
-(option indicates that)3.455 F .065
-(the remaining options and actions should apply to `)144 132 R(`empty')
--.74 E 2.564('c)-.74 G .064(ommand completion; that is, comple-)-2.564 F
-(tion attempted on a blank line.)144 144 Q 1.437
+-.35 E .352(The matches will be generated in the same w)144 84 R .352
+(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
+em directly from a completion speci\214cation with the same \215ags.)144
+96 R(If)5.02 E/F1 10/Times-Italic@0 SF(wor)2.52 E(d)-.37 E F0 .02
+(is speci\214ed, only)2.52 F(those completions matching)144 108 Q F1
+(wor)2.5 E(d)-.37 E F0(will be displayed.)2.5 E(The return v)144 132 Q
+(alue is true unless an in)-.25 E -.25(va)-.4 G
+(lid option is supplied, or no matches were generated.).25 E/F2 10
+/Times-Bold@0 SF(complete)108 148.8 Q F0([)3.728 E F2(\255abcdefgjksuv)A
+F0 3.728(][)C F2<ad6f>-3.728 E F1(comp-option)3.728 E F0 3.728(][)C F2
+(\255DE)-3.728 E F0 3.728(][)C F2<ad41>-3.728 E F1(action)3.728 E F0
+3.728(][)C F2<ad47>-3.728 E F1(globpat)3.728 E F0 3.729(][)C F2<ad57>
+-3.729 E F1(wor)3.729 E(dlist)-.37 E F0 3.729(][)C F2<ad46>-3.729 E F1
+(func-)3.729 E(tion)108 160.8 Q F0 2.5(][)C F2<ad43>-2.5 E F1(command)
+2.5 E F0(])A([)144 172.8 Q F2<ad58>A F1(\214lterpat)2.5 E F0 2.5(][)C F2
+<ad50>-2.5 E F1(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F1
+(suf)2.5 E<8c78>-.18 E F0(])A F1(name)2.5 E F0([)2.5 E F1(name ...)A F0
+(])A F2(complete \255pr)108 184.8 Q F0([)2.5 E F2(\255DE)A F0 2.5(][)C
+F1(name)-2.5 E F0(...])2.5 E .633(Specify ho)144 196.8 R 3.133(wa)-.25 G
+-.18(rg)-3.133 G .633(uments to each).18 F F1(name)3.133 E F0 .633
+(should be completed.)3.133 F .634(If the)5.634 F F2<ad70>3.134 E F0
+.634(option is supplied, or if no)3.134 F .14(options are supplied, e)
+144 208.8 R .139(xisting completion speci\214cations are printed in a w)
+-.15 F .139(ay that allo)-.1 F .139(ws them to be)-.25 F .31
+(reused as input.)144 220.8 R(The)5.31 E F2<ad72>2.81 E F0 .31
+(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31
+(ompletion speci\214cation for each)-2.81 F F1(name)2.81 E F0 2.81(,o)C
+1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F1(name)2.81 E F0(s)A 1.347
+(are supplied, all completion speci\214cations.)144 232.8 R(The)6.347 E
+F2<ad44>3.847 E F0 1.346(option indicates that the remaining options)
+3.847 F .5(and actions should apply to the `)144 244.8 R(`def)-.74 E
+(ault')-.1 E 3('c)-.74 G .5
+(ommand completion; that is, completion attempted on)-3 F 3.455(ac)144
+256.8 S .955(ommand for which no completion has pre)-3.455 F .955
+(viously been de\214ned.)-.25 F(The)5.955 E F2<ad45>3.455 E F0 .955
+(option indicates that)3.455 F .064
+(the remaining options and actions should apply to `)144 268.8 R
+(`empty')-.74 E 2.565('c)-.74 G .065
+(ommand completion; that is, comple-)-2.565 F
+(tion attempted on a blank line.)144 280.8 Q 1.438
(The process of applying these completion speci\214cations when w)144
-168 R 1.438(ord completion is attempted is)-.1 F(described abo)144 180 Q
-.3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
-F0(.)A .556(Other options, if speci\214ed, ha)144 204 R .856 -.15(ve t)
--.2 H .555(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F
-.555(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0
-3.055(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722
-(options \(and, if necessary)144 216 R 3.222(,t)-.65 G(he)-3.222 E F1
-<ad50>3.222 E F0(and)3.222 E F1<ad53>3.222 E F0 .723
-(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
-(sion before the)144 228 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 240 Q F2
-(comp-option)2.5 E F0(The)184 252 Q F2(comp-option)2.791 E F0 .291
+304.8 R 1.437(ord completion is attempted is)-.1 F(described abo)144
+316.8 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(.)A .555
+(Other options, if speci\214ed, ha)144 340.8 R .855 -.15(ve t)-.2 H .555
+(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
+(guments to the)-.18 F F2<ad47>3.056 E F0(,)A F2<ad57>3.056 E F0 3.056
+(,a)C(nd)-3.056 E F2<ad58>3.056 E F0 .723(options \(and, if necessary)
+144 352.8 R 3.223(,t)-.65 G(he)-3.223 E F2<ad50>3.223 E F0(and)3.223 E
+F2<ad53>3.223 E F0 .722
+(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
+(sion before the)144 364.8 Q F2(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F2<ad6f>144 376.8 Q
+F1(comp-option)2.5 E F0(The)184 388.8 Q F1(comp-option)2.79 E F0 .291
(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 264 Q F2
-(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 276 Q F0
-.281(Perform the rest of the def)224 288 R(ault)-.1 E F1(bash)2.781 E F0
-.281(completions if the compspec generates no)2.781 F(matches.)224 300 Q
-F1(default)184 312 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef)
--5.376 E 2.875(ault \214lename completion if the compspec generates no)
--.1 F(matches.)224 324 Q F1(dir)184 336 Q(names)-.15 E F0(Perform direc\
-tory name completion if the compspec generates no matches.)224 348 Q F1
-(\214lenames)184 360 Q F0 -.7(Te)224 372 S .137(ll readline that the co\
-mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15
-G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 384 R 2.634
-(ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F
-.45(cial characters, or suppressing trailing spaces\).)224 396 R .45
-(Intended to be used with shell)5.45 F(functions.)224 408 Q F1(nospace)
-184 420 Q F0 -.7(Te)6.11 G .22
+(yond the simple)-.15 F(generation of completions.)184 400.8 Q F1
+(comp-option)5 E F0(may be one of:)2.5 E F2(bashdefault)184 412.8 Q F0
+.281(Perform the rest of the def)224 424.8 R(ault)-.1 E F2(bash)2.781 E
+F0 .281(completions if the compspec generates no)2.781 F(matches.)224
+436.8 Q F2(default)184 448.8 Q F0 2.875(Use readline')10 F 5.375(sd)-.55
+G(ef)-5.375 E 2.876
+(ault \214lename completion if the compspec generates no)-.1 F(matches.)
+224 460.8 Q F2(dir)184 472.8 Q(names)-.15 E F0(Perform directory name c\
+ompletion if the compspec generates no matches.)224 484.8 Q F2
+(\214lenames)184 496.8 Q F0 -.7(Te)224 508.8 S .137(ll readline that th\
+e compspec generates \214lenames, so it can perform an).7 F 2.636<798c>
+-.15 G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 520.8 R
+2.634(ea)-.1 G .134(dding a slash to directory names, quoting spe-)
+-2.634 F .45(cial characters, or suppressing trailing spaces\).)224
+532.8 R .45(Intended to be used with shell)5.45 F(functions.)224 544.8 Q
+F2(nospace)184 556.8 Q F0 -.7(Te)6.11 G .22
(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
-.22(ords completed at the end)-.1 F(of the line.)224 432 Q F1(plusdirs)
-184 444 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
+.22(ords completed at the end)-.1 F(of the line.)224 568.8 Q F2
+(plusdirs)184 580.8 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
(atches de\214ned by the compspec are generated, directory name)-4.485 F
-.584(completion is attempted and an)224 456 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 468
-Q F1<ad41>144 480 Q F2(action)2.5 E F0(The)184 492 Q F2(action)2.5 E F0
-(may be one of the follo)2.5 E
-(wing to generate a list of possible completions:)-.25 E F1(alias)184
-504 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
-E F0(.)A F1(arrayv)184 516 Q(ar)-.1 E F0(Array v)224 528 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 540 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 552 S(iltin).2 E F0
+.583(completion is attempted and an)224 592.8 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224
+604.8 Q F2<ad41>144 616.8 Q F1(action)2.5 E F0(The)184 628.8 Q F1
+(action)2.5 E F0(may be one of the follo)2.5 E
+(wing to generate a list of possible completions:)-.25 E F2(alias)184
+640.8 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F2<ad61>
+2.5 E F0(.)A F2(arrayv)184 652.8 Q(ar)-.1 E F0(Array v)224 664.8 Q
+(ariable names.)-.25 E F2 4.7(binding Readline)184 676.8 R F0 -.1(ke)2.5
+G 2.5(yb)-.05 G(inding names.)-2.5 E F2 -.2(bu)184 688.8 S(iltin).2 E F0
(Names of shell b)11.85 E(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 564
-Q F0(Command names.)224 576 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 588 Q(ectory)-.18 E F0(Directory names.)224 600 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 612
-Q F0(Names of disabled shell b)224 624 Q(uiltins.)-.2 E F1(enabled)184
-636 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-648 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
--.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-660 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
-E F0(.)A F1(function)184 672 Q F0(Names of shell functions.)224 684 Q F1
-(gr)184 696 Q(oup)-.18 E F0(Group names.)14.62 E
-(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A(GNU Bash-4.1)72 768
-Q(2009 September 16)135.125 E(51)185.115 E 0 Cg EP
+(May also be speci\214ed as)5 E F2<ad62>2.5 E F0(.)A F2(command)184
+700.8 Q F0(Command names.)224 712.8 Q(May also be speci\214ed as)5 E F2
+<ad63>2.5 E F0(.)A(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(51)
+192.895 E 0 Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(helptopic)184 84 Q F0
-(Help topics as accepted by the)224 96 Q F1(help)2.5 E F0 -.2(bu)2.5 G
-(iltin.).2 E F1(hostname)184 108 Q F0(Hostnames, as tak)224 120 Q
-(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 132 Q F0
-(Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 144 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 156 Q(ed w)-.15 E 2.5(ords. May)
--.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
-168 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
--.25 G(.).15 E F1(ser)184 180 Q(vice)-.1 E F0(Service names.)10.67 E
-(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 192 Q
-F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
-F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 204 Q F0(Shell option names as accepted by the)16.66 E F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 216 Q F0
-(Signal names.)14.99 E F1(stopped)184 228 Q F0
+-.35 E/F1 10/Times-Bold@0 SF(dir)184 84 Q(ectory)-.18 E F0
+(Directory names.)224 96 Q(May also be speci\214ed as)5 E F1<ad64>2.5 E
+F0(.)A F1(disabled)184 108 Q F0(Names of disabled shell b)224 120 Q
+(uiltins.)-.2 E F1(enabled)184 132 Q F0(Names of enabled shell b)6.66 E
+(uiltins.)-.2 E F1(export)184 144 Q F0(Names of e)12.23 E
+(xported shell v)-.15 E 2.5(ariables. May)-.25 F(also be speci\214ed as)
+2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184 156 Q F0(File names.)27.22 E
+(May also be speci\214ed as)5 E F1<ad66>2.5 E F0(.)A F1(function)184 168
+Q F0(Names of shell functions.)224 180 Q F1(gr)184 192 Q(oup)-.18 E F0
+(Group names.)14.62 E(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)
+A F1(helptopic)184 204 Q F0(Help topics as accepted by the)224 216 Q F1
+(help)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(hostname)184 228 Q F0
+(Hostnames, as tak)224 240 Q(en from the \214le speci\214ed by the)-.1 E
+/F2 9/Times-Bold@0 SF(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E
+F1(job)184 252 Q F0(Job names, if job control is acti)26.11 E -.15(ve)
+-.25 G 5(.M).15 G(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1
+-.1(ke)184 264 S(yw).1 E(ord)-.1 E F0(Shell reserv)224 276 Q(ed w)-.15 E
+2.5(ords. May)-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1
+(running)184 288 Q F0(Names of running jobs, if job control is acti)5.54
+E -.15(ve)-.25 G(.).15 E F1(ser)184 300 Q(vice)-.1 E F0(Service names.)
+10.67 E(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)
+184 312 Q F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1
+<ad6f>2.5 E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.)
+.2 E F1(shopt)184 324 Q F0(Shell option names as accepted by the)16.66 E
+F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 336 Q F0
+(Signal names.)14.99 E F1(stopped)184 348 Q F0
(Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 240 Q F0(User names.)21.67 E
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 252 S
+.15 E F1(user)184 360 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 372 S
(riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 264 Q/F3
-10/Times-Italic@0 SF(globpat)2.5 E F0 1.007(The pathname e)184 276 R
-1.007(xpansion pattern)-.15 F F3(globpat)3.507 E F0 1.007(is e)3.507 F
-1.008(xpanded to generate the possible comple-)-.15 F(tions.)184 288 Q
-F1<ad57>144 300 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 312 Q F3(wor)3.64
-E(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F F2
-(IFS)3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and)
--.25 F 2.007(each resultant w)184 324 R 2.007(ord is e)-.1 F 4.507
-(xpanded. The)-.15 F 2.008(possible completions are the members of the)
-4.507 F(resultant list which match the w)184 336 Q(ord being completed.)
--.1 E F1<ad43>144 348 Q F3(command)2.5 E(command)184 360 Q F0 1.056
-(is e)3.556 F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 384 Q/F3
+10/Times-Italic@0 SF(globpat)2.5 E F0 1.008(The pathname e)184 396 R
+1.008(xpansion pattern)-.15 F F3(globpat)3.507 E F0 1.007(is e)3.507 F
+1.007(xpanded to generate the possible comple-)-.15 F(tions.)184 408 Q
+F1<ad57>144 420 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 432 Q F3(wor)
+3.639 E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639
+F F2(IFS)3.64 E F0 1.14(special v)3.39 F 1.14
+(ariable as delimiters, and)-.25 F 2.008(each resultant w)184 444 R
+2.008(ord is e)-.1 F 4.508(xpanded. The)-.15 F 2.007
+(possible completions are the members of the)4.508 F
+(resultant list which match the w)184 456 Q(ord being completed.)-.1 E
+F1<ad43>144 468 Q F3(command)2.5 E(command)184 480 Q F0 1.055(is e)3.555
+F -.15(xe)-.15 G 1.055(cuted in a subshell en).15 F 1.056
(vironment, and its output is used as the possible)-.4 F(completions.)
-184 372 Q F1<ad46>144 384 Q F3(function)2.5 E F0 1.18
-(The shell function)184 396 R F3(function)3.68 E F0 1.181(is e)3.681 F
--.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681
-(vironment. When)-.4 F 1.181(it \214n-)3.681 F .932
-(ishes, the possible completions are retrie)184 408 R -.15(ve)-.25 G
+184 492 Q F1<ad46>144 504 Q F3(function)2.5 E F0 1.181
+(The shell function)184 516 R F3(function)3.681 E F0 1.181(is e)3.681 F
+-.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68
+(vironment. When)-.4 F 1.18(it \214n-)3.68 F .932
+(ishes, the possible completions are retrie)184 528 R -.15(ve)-.25 G
3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F2
-(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 420 S(riable.)
-.25 E F1<ad58>144 432 Q F3(\214lterpat)2.5 E(\214lterpat)184 444 Q F0
-.455(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15
-F .456(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 456 R 1.596
-(guments, and each completion)-.18 F(matching)184 468 Q F3(\214lterpat)
-3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
-(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
-(in)3.204 E F3(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
-(tes the pattern;).05 F(in this case, an)184 480 Q 2.5(yc)-.15 G
+(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 540 S(riable.)
+.25 E F1<ad58>144 552 Q F3(\214lterpat)2.5 E(\214lterpat)184 564 Q F0
+.456(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15
+F .455(is applied to the list of possible)2.956 F 1.596
+(completions generated by the preceding options and ar)184 576 R 1.596
+(guments, and each completion)-.18 F(matching)184 588 Q F3(\214lterpat)
+3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
+(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F3(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+(tes the pattern;).05 F(in this case, an)184 600 Q 2.5(yc)-.15 G
(ompletion not matching)-2.5 E F3(\214lterpat)2.5 E F0(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E F1<ad50>144 492 Q F3(pr)2.5 E(e\214x)-.37 E(pr)
-184 504 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
+-.15(ve)-.15 G(d.).15 E F1<ad50>144 612 Q F3(pr)2.5 E(e\214x)-.37 E(pr)
+184 624 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
(ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 516 Q F1<ad53>144 528 Q F3(suf)2.5 E
+-.15(ve)-.2 G(been applied.)184 636 Q F1<ad53>144 648 Q F3(suf)2.5 E
2.81(\214x suf)-.18 F<8c78>-.18 E F0
(is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 544.8 R
-.466(alue is true unless an in)-.25 F -.25(va)-.4 G .466
-(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
-(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
-(plied without a)144 556.8 R F3(name)3.862 E F0(ar)3.862 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
-1.361(ompletion speci\214cation for a).15 F F3(name)144 568.8 Q F0
+E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 664.8 R
+.467(alue is true unless an in)-.25 F -.25(va)-.4 G .466
+(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
+(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
+(plied without a)144 676.8 R F3(name)3.861 E F0(ar)3.861 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
+1.362(ompletion speci\214cation for a).15 F F3(name)144 688.8 Q F0
(for which no speci\214cation e)2.5 E
(xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 585.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
+F1(compopt)108 705.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
F1(\255DE)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C F3
-(name)-2.5 E F0(])A .447(Modify completion options for each)144 597.6 R
+(name)-2.5 E F0(])A .447(Modify completion options for each)144 717.6 R
F3(name)2.947 E F0 .447(according to the)2.947 F F3(option)2.947 E F0
-.447(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726
-(completion if no)144 609.6 R F3(name)3.226 E F0 3.226(sa)C .726
-(re supplied.)-3.226 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .725
-(n, display the completion options for).15 F(each)144 621.6 Q F3(name)
-3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
-5.724 F .724(alues of)-.25 F F3(option)3.224 E F0 .724(are those v)3.224
-F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 633.6 Q F0 -.2(bu)
-2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he)
--5.297 E F1<ad44>2.797 E F0 .297
-(option indicates that the remaining options should apply to)2.797 F
-1.227(the `)144 645.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
-mmand completion; that is, completion attempted on a command for which \
-no)-3.727 F 2.178(completion has pre)144 657.6 R 2.178
-(viously been de\214ned.)-.25 F(The)7.178 E F1<ad45>4.678 E F0 2.177
-(option indicates that the remaining options)4.677 F(should apply to `)
-144 669.6 Q(`empty')-.74 E 2.5('c)-.74 G
-(ommand completion; that is, completion attempted on a blank line.)-2.5
-E .327(The return v)108 686.4 R .327(alue is true unless an in)-.25 F
--.25(va)-.4 G .327
-(lid option is supplied, an attempt is made to modify the options for a)
-.25 F F3(name)108 698.4 Q F0(for which no completion speci\214cation e)
-2.5 E(xists, or an output error occurs.)-.15 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(52)185.115 E 0 Cg EP
+.447(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725
+(completion if no)144 729.6 R F3(name)3.225 E F0 3.225(sa)C .725
+(re supplied.)-3.225 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .726
+(n, display the completion options for).15 F(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(52)192.895 E 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(continue)108 84 Q F0([)2.5 E/F2 10
-/Times-Italic@0 SF(n)A F0(])A 1.754(Resume the ne)144 96 R 1.754
-(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
-F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
-(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
-(is speci\214ed,)4.493 F 1.208(resume at the)144 108 R F2(n)3.709 E F0
-1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F3 10
-/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
-(is greater than the number of enclosing)3.949 F .514
-(loops, the last enclosing loop \(the `)144 120 R(`top-le)-.74 E -.15
-(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
-(The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
-3.013 E(not greater than or equal to 1.)144 132 Q F1(declar)108 148.8 Q
-(e)-.18 E F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0
-2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1
-(typeset)108 160.8 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>
--2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
--2.5 E 1.264(Declare v)144 172.8 R 1.264(ariables and/or gi)-.25 F 1.564
--.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
-F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765
-(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25
-(va)144 184.8 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
-(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
-(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
-<ad70>3.482 E F0 .982(is used)3.482 F(with)144 196.8 Q F2(name)3.579 E
-F0(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F
-(When)6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2
-(name)3.58 E F0(ar)3.58 E(gu-)-.18 E .151
-(ments, it will display the attrib)144 208.8 R .151(utes and v)-.2 F
-.151(alues of all v)-.25 F .15(ariables ha)-.25 F .15(ving the attrib)
--.2 F .15(utes speci\214ed by the)-.2 F .046(additional options.)144
-220.8 R .046(If no other options are supplied with)5.046 F F1<ad70>2.547
-E F0(,)A F1(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)
-2.547 F .047(utes and)-.2 F -.25(va)144 232.8 S 1.363
-(lues of all shell v).25 F 3.863(ariables. The)-.25 F F1<ad66>3.863 E F0
-1.362(option will restrict the display to shell functions.)3.863 F(The)
-6.362 E F1<ad46>3.862 E F0 2.422(option inhibits the display of functio\
-n de\214nitions; only the function name and attrib)144 244.8 R 2.423
-(utes are)-.2 F 2.664(printed. If)144 256.8 R(the)2.664 E F1(extdeb)
-2.664 E(ug)-.2 E F0 .164(shell option is enabled using)2.664 F F1(shopt)
-2.664 E F0 2.664(,t)C .163(he source \214le name and line number)-2.664
-F 1.382(where the function is de\214ned are displayed as well.)144 268.8
-R(The)6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>
-3.882 E F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794
-(options can be used to restrict output to v)144 280.8 R .794
-(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
-1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 292.8 Q(utes:)-.2 E F1
-<ad61>144 304.8 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15
-(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
-E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 316.8 Q F0(Each)
-23.08 E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H
-(rray v).15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)
--.15 G(\).).15 E F1<ad66>144 328.8 Q F0(Use function names only)26.97 E
-(.)-.65 E F1<ad69>144 340.8 Q F0 .557(The v)27.52 F .558
+-.35 E(each)144 84 Q/F1 10/Times-Italic@0 SF(name)3.224 E F0 .724
+(or the current completion.)3.224 F .724(The possible v)5.724 F .724
+(alues of)-.25 F F1(option)3.224 E F0 .724(are those v)3.224 F .723
+(alid for the)-.25 F/F2 10/Times-Bold@0 SF(com-)3.223 E(plete)144 96 Q
+F0 -.2(bu)2.797 G .297(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T)
+.15 G(he)-5.297 E F2<ad44>2.797 E F0 .297
+(option indicates that the remaining options should apply to)2.797 F
+1.228(the `)144 108 R(`def)-.74 E(ault')-.1 E 3.728('c)-.74 G 1.228(omm\
+and completion; that is, completion attempted on a command for which no)
+-3.728 F 2.177(completion has pre)144 120 R 2.177
+(viously been de\214ned.)-.25 F(The)7.177 E F2<ad45>4.677 E F0 2.178
+(option indicates that the remaining options)4.678 F(should apply to `)
+144 132 Q(`empty')-.74 E 2.5('c)-.74 G
+(ommand completion; that is, completion attempted on a blank line.)-2.5
+E .327(The return v)108 148.8 R .327(alue is true unless an in)-.25 F
+-.25(va)-.4 G .327
+(lid option is supplied, an attempt is made to modify the options for a)
+.25 F F1(name)108 160.8 Q F0(for which no completion speci\214cation e)
+2.5 E(xists, or an output error occurs.)-.15 E F2(continue)108 177.6 Q
+F0([)2.5 E F1(n)A F0(])A 1.753(Resume the ne)144 189.6 R 1.753
+(xt iteration of the enclosing)-.15 F F2 -.25(fo)4.254 G(r).25 E F0(,)A
+F2(while)4.254 E F0(,)A F2(until)4.254 E F0 4.254(,o)C(r)-4.254 E F2
+(select)4.254 E F0 4.254(loop. If)4.254 F F1(n)4.614 E F0 1.754
+(is speci\214ed,)4.494 F 1.209(resume at the)144 201.6 R F1(n)3.709 E F0
+1.209(th enclosing loop.)B F1(n)6.569 E F0 1.209(must be)3.949 F/F3 10
+/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F1(n)4.069 E F0 1.209
+(is greater than the number of enclosing)3.949 F .513
+(loops, the last enclosing loop \(the `)144 213.6 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.013('l)-.74 G .513(oop\) is resumed.)-3.013 F .514
+(The return v)5.514 F .514(alue is 0 unless)-.25 F F1(n)3.014 E F0(is)
+3.014 E(not greater than or equal to 1.)144 225.6 Q F2(declar)108 242.4
+Q(e)-.18 E F0([)2.5 E F2(\255aAfFilrtux)A F0 2.5(][)C F2<ad70>-2.5 E F0
+2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E F2
+(typeset)108 254.4 Q F0([)2.5 E F2(\255aAfFilrtux)A F0 2.5(][)C F2<ad70>
+-2.5 E F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])
+-2.5 E 1.265(Declare v)144 266.4 R 1.265(ariables and/or gi)-.25 F 1.565
+-.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
+F1(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.764
+(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F -.25
+(va)144 278.4 S 3.482(riables. The).25 F F2<ad70>3.482 E F0 .982
+(option will display the attrib)3.482 F .982(utes and v)-.2 F .983
+(alues of each)-.25 F F1(name)3.483 E F0 5.983(.W).18 G(hen)-5.983 E F2
+<ad70>3.483 E F0 .983(is used)3.483 F(with)144 290.4 Q F1(name)3.58 E F0
+(ar)3.58 E 1.079(guments, additional options are ignored.)-.18 F(When)
+6.079 E F2<ad70>3.579 E F0 1.079(is supplied without)3.579 F F1(name)
+3.579 E F0(ar)3.579 E(gu-)-.18 E .15(ments, it will display the attrib)
+144 302.4 R .15(utes and v)-.2 F .151(alues of all v)-.25 F .151
+(ariables ha)-.25 F .151(ving the attrib)-.2 F .151
+(utes speci\214ed by the)-.2 F .047(additional options.)144 314.4 R .047
+(If no other options are supplied with)5.047 F F2<ad70>2.547 E F0(,)A F2
+(declar)2.547 E(e)-.18 E F0 .046(will display the attrib)2.546 F .046
+(utes and)-.2 F -.25(va)144 326.4 S 1.362(lues of all shell v).25 F
+3.862(ariables. The)-.25 F F2<ad66>3.862 E F0 1.363
+(option will restrict the display to shell functions.)3.862 F(The)6.363
+E F2<ad46>3.863 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 338.4 R 2.422
+(utes are)-.2 F 2.663(printed. If)144 350.4 R(the)2.663 E F2(extdeb)
+2.663 E(ug)-.2 E F0 .164(shell option is enabled using)2.663 F F2(shopt)
+2.664 E F0 2.664(,t)C .164(he source \214le name and line number)-2.664
+F 1.382(where the function is de\214ned are displayed as well.)144 362.4
+R(The)6.382 E F2<ad46>3.882 E F0 1.382(option implies)3.882 F F2<ad66>
+3.882 E F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .793
+(options can be used to restrict output to v)144 374.4 R .794
+(ariables with the speci\214ed attrib)-.25 F .794(ute or to gi)-.2 F
+1.094 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 386.4 Q(utes:)-.2 E F2
+<ad61>144 398.4 Q F0(Each)25.3 E F1(name)2.5 E F0(is an inde)2.5 E -.15
+(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F2(Arrays)2.5
+E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2<ad41>144 410.4 Q F0(Each)
+23.08 E F1(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H
+(rray v).15 E(ariable \(see)-.25 E F2(Arrays)2.5 E F0(abo)2.5 E -.15(ve)
+-.15 G(\).).15 E F2<ad66>144 422.4 Q F0(Use function names only)26.97 E
+(.)-.65 E F2<ad69>144 434.4 Q F0 .558(The v)27.52 F .558
(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
-(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .558
-(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 352.8 Q F0
+(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .557
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 446.4 Q F0
(is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
--.25 E F1<ad6c>144 364.8 Q F0 .91(When the v)27.52 F .909
+-.25 E F2<ad6c>144 458.4 Q F0 .909(When the v)27.52 F .909
(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
--.25 E(-)-.2 E 2.5(case. The)180 376.8 R(upper)2.5 E(-case attrib)-.2 E
-(ute is disabled.)-.2 E F1<ad72>144 388.8 Q F0(Mak)25.86 E(e)-.1 E F2
-(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T)-.65 G 2.546
-(hese names cannot then be assigned v)-7.546 F 2.547
-(alues by subsequent)-.25 F(assignment statements or unset.)180 400.8 Q
-F1<ad74>144 412.8 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2
-(name)2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
-2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929
-E(UG)-.1 E F0(and)2.929 E F1(RETURN)2.929 E F0
-(traps from the calling shell.)180 424.8 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad75>144
-436.8 Q F0 .909(When the v)24.74 F .909(ariable is assigned a v)-.25 F
+(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer)
+-.25 E(-)-.2 E 2.5(case. The)180 470.4 R(upper)2.5 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F2<ad72>144 482.4 Q F0(Mak)25.86 E(e)-.1 E F1
+(name)5.047 E F0 5.047(sr)C(eadonly)-5.047 E 7.547(.T)-.65 G 2.546
+(hese names cannot then be assigned v)-7.547 F 2.546
+(alues by subsequent)-.25 F(assignment statements or unset.)180 494.4 Q
+F2<ad74>144 506.4 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F1
+(name)2.929 E F0(the)2.929 E F1(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
+2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F2(DEB)2.929
+E(UG)-.1 E F0(and)2.93 E F2(RETURN)2.93 E F0
+(traps from the calling shell.)180 518.4 Q(The trace attrib)5 E
+(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2<ad75>144
+530.4 Q F0 .91(When the v)24.74 F .909(ariable is assigned a v)-.25 F
.909(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2 F
--.15(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 448.8 R
-(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad78>
-144 460.8 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
-(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .121
-(Using `+' instead of `\255' turns of)144 477.6 R 2.621(ft)-.25 G .121
-(he attrib)-2.621 F .121(ute instead, with the e)-.2 F .12
-(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F 1.236
-(to destro)144 489.6 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237(rray v)
--3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F(emo)
--.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)-.18 F
-3.737(ute. When)-.2 F 1.237(used in a)3.737 F .312(function, mak)144
-501.6 R .312(es each)-.1 F F2(name)2.812 E F1 .311
-(local, as with the local)2.812 F F0 2.811(command. If)2.811 F 2.811(av)
-2.811 G .311(ariable name is follo)-3.061 F .311(wed by)-.25 F(=)144
-513.6 Q F2(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)
--.25 F .738(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738
-(he return v)-5.738 F .739(alue is 0 unless an in)-.25 F -.25(va)-.4 G
-.739(lid option is).25 F .603
-(encountered, an attempt is made to de\214ne a function using)144 525.6
+-.15(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 542.4 R
+(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad78>
+144 554.4 Q F0(Mark)25.3 E F1(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
+(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .12
+(Using `+' instead of `\255' turns of)144 571.2 R 2.62(ft)-.25 G .12
+(he attrib)-2.62 F .121(ute instead, with the e)-.2 F .121
+(xceptions that)-.15 F F2(+a)2.621 E F0 .121(may not be used)2.621 F
+1.237(to destro)144 583.2 R 3.737(ya)-.1 G 3.737(na)-3.737 G 1.237
+(rray v)-3.737 F 1.237(ariable and)-.25 F F2 1.237(+r will not r)3.737 F
+(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)
+-.18 F 3.737(ute. When)-.2 F 1.236(used in a)3.737 F .311(function, mak)
+144 595.2 R .311(es each)-.1 F F1(name)2.811 E F2 .311
+(local, as with the local)2.811 F F0 2.811(command. If)2.811 F 2.811(av)
+2.811 G .312(ariable name is follo)-3.061 F .312(wed by)-.25 F(=)144
+607.2 Q F1(value)A F0 3.239(,t)C .739(he v)-3.239 F .739(alue of the v)
+-.25 F .739(ariable is set to)-.25 F F1(value)3.238 E F0 5.738(.T)C .738
+(he return v)-5.738 F .738(alue is 0 unless an in)-.25 F -.25(va)-.4 G
+.738(lid option is).25 F .603
+(encountered, an attempt is made to de\214ne a function using)144 619.2
R/F5 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na)
--3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 537.6 R
-1.242(alue to a readonly v)-.25 F 1.242
-(ariable, an attempt is made to assign a v)-.25 F 1.243
+-3.103 G .604(ttempt is made to)-3.103 F 1.243(assign a v)144 631.2 R
+1.243(alue to a readonly v)-.25 F 1.242
+(ariable, an attempt is made to assign a v)-.25 F 1.242
(alue to an array v)-.25 F(ariable)-.25 E 1.386
-(without using the compound assignment syntax \(see)144 549.6 R F1
+(without using the compound assignment syntax \(see)144 643.2 R F2
(Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F
-F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 561.6 S .171
+F1(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 655.2 S .172
(lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
-F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172
-(ariable, an)-.25 F .96(attempt is made to turn of)144 573.6 R 3.46(fa)
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171
+(ariable, an)-.25 F .96(attempt is made to turn of)144 667.2 R 3.46(fa)
-.25 G .96(rray status for an array v)-3.46 F .96
-(ariable, or an attempt is made to display a)-.25 F(non-e)144 585.6 Q
-(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 602.4
-Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
--.4(Wi)144 614.4 S .328
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 679.2 Q
+(xistent function with)-.15 E F2<ad66>2.5 E F0(.)A F2(dirs [+)108 696 Q
+F1(n)A F2 2.5(][)C<ad>-2.5 E F1(n)A F2 2.5(][)C(\255cplv])-2.5 E F0 -.4
+(Wi)144 708 S .329
(thout options, displays the list of currently remembered directories.)
-.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238
-(single line with directory names separated by spaces.)144 626.4 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 638.4 Q
-F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
-2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 650.4 Q F2(n)A F0
-1.564(Displays the)25.3 F F2(n)4.064 E F0 1.565
-(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
-(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 662.4 Q F1<ad>144 674.4 Q F2
-(n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
-(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
-F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 686.4 Q F1<ad63>144 698.4 Q F0
-(Clears the directory stack by deleting all of the entries.)25.86 E F1
-<ad6c>144 710.4 Q F0 .324(Produces a longer listing; the def)27.52 F
-.324(ault listing format uses a tilde to denote the home direc-)-.1 F
-(tory)180 722.4 Q(.)-.65 E(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(53)185.115 E 0 Cg EP
+.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
+(single line with directory names separated by spaces.)144 720 R 1.238
+(Directories are added to the list with the)6.238 F(GNU Bash-4.1)72 768
+Q(2009 October 9)142.905 E(53)192.895 E 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF<ad70>144 84 Q F0
+-.35 E/F1 10/Times-Bold@0 SF(pushd)144 84 Q F0(command; the)2.5 E F1
+(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G 2.5(se).15 G
+(ntries from the list.)-2.5 E F1(+)144 96 Q/F2 10/Times-Italic@0 SF(n)A
+F0 1.565(Displays the)25.3 F F2(n)4.065 E F0 1.565
+(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
+(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 108 Q F1<ad>144 120 Q F2(n)A
+F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
+(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
+F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 132 Q F1<ad63>144 144 Q F0
+(Clears the directory stack by deleting all of the entries.)25.86 E F1
+<ad6c>144 156 Q F0 .324(Produces a longer listing; the def)27.52 F .324
+(ault listing format uses a tilde to denote the home direc-)-.1 F(tory)
+180 168 Q(.)-.65 E F1<ad70>144 180 Q F0
(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-96 Q F0 .273(Print the directory stack with one entry per line, pre\214\
-xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772 G
-(he)-2.772 E(stack.)180 108 Q .257(The return v)144 124.8 R .258
+192 Q F0 .272(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
+G(he)-2.773 E(stack.)180 204 Q .258(The return v)144 220.8 R .258
(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
-(lid option is supplied or).25 F/F2 10/Times-Italic@0 SF(n)2.758 E F0
-(inde)2.758 E -.15(xe)-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258
-(ond the end of the direc-).15 F(tory stack.)144 136.8 Q F1(diso)108
-153.6 Q(wn)-.1 E F0([)2.5 E F1(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0
-2.5(][)C F2(jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 165.6 S .295
-(thout options, each).4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F
--.15(ve)-.15 G 2.795(df).15 G .295(rom the table of acti)-2.795 F .595
--.15(ve j)-.25 H 2.795(obs. If).15 F F2(jobspec)4.535 E F0 .295
-(is not present,)3.105 F .243(and neither)144 177.6 R F1 .243
-(\255a nor \255r is supplied, the shell')2.743 F 2.743(sn)-.37 G .243
-(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)-.37 F F1 .243
-(is used.)2.743 F .244(If the \255h option)5.243 F .334(is gi)144 189.6
-R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0 .334(is not remo)
-3.144 F -.15(ve)-.15 G 2.834(df).15 G .334(rom the table, b)-2.834 F
-.334(ut is mark)-.2 F .334(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)
-2.834 E F0 .333(is not sent to)2.584 F 1.189(the job if the shell recei)
-144 201.6 R -.15(ve)-.25 G 3.689(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0
-SF(.)A F0 1.189(If no)5.689 F F2(jobspec)5.429 E F0 1.189
-(is present, and neither the)3.999 F F1<ad61>3.689 E F0 1.19(nor the)
-3.69 F F1<ad72>3.69 E F0 1.57(option is supplied, the)144 213.6 R F2
-(curr)4.07 E 1.57(ent job)-.37 F F0 1.57(is used.)4.07 F 1.569(If no)
-6.569 F F2(jobspec)5.809 E F0 1.569(is supplied, the)4.379 F F1<ad61>
-4.069 E F0 1.569(option means to)4.069 F(remo)144 225.6 Q .903 -.15
-(ve o)-.15 H 3.103(rm).15 G .603(ark all jobs; the)-3.103 F F1<ad72>
-3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.414
-E .604(gument restricts operation to running)-.18 F 2.5(jobs. The)144
-237.6 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
-(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 254.4 Q
+(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
+-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
+.15 F(tory stack.)144 232.8 Q F1(diso)108 249.6 Q(wn)-.1 E F0([)2.5 E F1
+(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C F2(jobspec)-2.5 E F0
+(...])2.5 E -.4(Wi)144 261.6 S .295(thout options, each).4 F F2(jobspec)
+4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295
+(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15
+F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .244(and neither)
+144 273.6 R F1 .243(\255a nor \255r is supplied, the shell')2.744 F
+2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)
+-.37 F F1 .243(is used.)2.743 F .243(If the \255h option)5.243 F .333
+(is gi)144 285.6 R -.1(ve)-.1 G .333(n, each).1 F F2(jobspec)4.574 E F0
+.334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
+(rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
+/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .334(is not sent to)2.584 F 1.19
+(the job if the shell recei)144 297.6 R -.15(ve)-.25 G 3.689(sa).15 G F3
+(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec)
+5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>3.689 E F0
+1.189(nor the)3.689 F F1<ad72>3.689 E F0 1.569(option is supplied, the)
+144 309.6 R F2(curr)4.069 E 1.569(ent job)-.37 F F0 1.569(is used.)4.069
+F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.57(is supplied, the)4.38 F
+F1<ad61>4.07 E F0 1.57(option means to)4.07 F(remo)144 321.6 Q .904 -.15
+(ve o)-.15 H 3.104(rm).15 G .604(ark all jobs; the)-3.104 F F1<ad72>
+3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.413
+E .603(gument restricts operation to running)-.18 F 2.5(jobs. The)144
+333.6 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
+(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 350.4 Q
F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.395(Output the)144 266.4 R F2(ar)2.895 E(g)-.37 E F0 .395
+.394(Output the)144 362.4 R F2(ar)2.894 E(g)-.37 E F0 .394
(s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
-(wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394
-(ys 0.).1 F(If)5.394 E F1<ad6e>2.894 E F0 .548
-(is speci\214ed, the trailing ne)144 278.4 R .548(wline is suppressed.)
+(wline. The)-.25 F .395(return status is al)2.895 F -.1(wa)-.1 G .395
+(ys 0.).1 F(If)5.395 E F1<ad6e>2.895 E F0 .549
+(is speci\214ed, the trailing ne)144 374.4 R .548(wline is suppressed.)
-.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
--.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 290.4 Q
-.053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1
-<ad45>2.553 E F0 .052(option disables the interpretation of these)2.552
-F 1.502(escape characters, e)144 302.4 R -.15(ve)-.25 G 4.002(no).15 G
-4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502
-(re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003
-E F0(shell)4.003 E .009
-(option may be used to dynamically determine whether or not)144 314.4 R
-F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
-.15 F .659(by def)144 326.4 R(ault.)-.1 E F1(echo)5.659 E F0 .659
-(does not interpret)3.159 F F1<adad>3.159 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66
-(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 338.4 Q
-F1(\\a)144 350.4 Q F0(alert \(bell\))28.22 E F1(\\b)144 362.4 Q F0
-(backspace)27.66 E F1(\\c)144 374.4 Q F0(suppress further output)28.78 E
-F1(\\e)144 386.4 Q F0(an escape character)28.78 E F1(\\f)144 398.4 Q F0
-(form feed)29.89 E F1(\\n)144 410.4 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)
--2.5 E F1(\\r)144 422.4 Q F0(carriage return)28.78 E F1(\\t)144 434.4 Q
-F0(horizontal tab)29.89 E F1(\\v)144 446.4 Q F0 -.15(ve)28.22 G
-(rtical tab).15 E F1(\\\\)144 458.4 Q F0(backslash)30.44 E F1(\\0)144
-470.4 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
+-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 386.4 Q
+.052(wing backslash-escaped characters is enabled.)-.25 F(The)5.052 E F1
+<ad45>2.552 E F0 .053(option disables the interpretation of these)2.553
+F 1.503(escape characters, e)144 398.4 R -.15(ve)-.25 G 4.003(no).15 G
+4.003(ns)-4.003 G 1.502(ystems where the)-4.003 F 4.002(ya)-.15 G 1.502
+(re interpreted by def)-4.002 F 4.002(ault. The)-.1 F F1(xpg_echo)4.002
+E F0(shell)4.002 E .009
+(option may be used to dynamically determine whether or not)144 410.4 R
+F1(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15
+F .66(by def)144 422.4 R(ault.)-.1 E F1(echo)5.66 E F0 .66
+(does not interpret)3.16 F F1<adad>3.16 E F0 .659
+(to mean the end of options.)3.159 F F1(echo)5.659 E F0 .659
+(interprets the follo)3.159 F(wing)-.25 E(escape sequences:)144 434.4 Q
+F1(\\a)144 446.4 Q F0(alert \(bell\))28.22 E F1(\\b)144 458.4 Q F0
+(backspace)27.66 E F1(\\c)144 470.4 Q F0(suppress further output)28.78 E
+F1(\\e)144 482.4 Q F0(an escape character)28.78 E F1(\\f)144 494.4 Q F0
+(form feed)29.89 E F1(\\n)144 506.4 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)
+-2.5 E F1(\\r)144 518.4 Q F0(carriage return)28.78 E F1(\\t)144 530.4 Q
+F0(horizontal tab)29.89 E F1(\\v)144 542.4 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F1(\\\\)144 554.4 Q F0(backslash)30.44 E F1(\\0)144
+566.4 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
-(\(zero to three octal digits\))2.5 E F1(\\x)144 482.4 Q F2(HH)A F0
+(\(zero to three octal digits\))2.5 E F1(\\x)144 578.4 Q F2(HH)A F0
(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
--.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 499.2 Q F0([)2.5 E
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 595.2 Q F0([)2.5 E
F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
-(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
-(Enable and disable b)144 511.2 R .278(uiltin shell commands.)-.2 F .278
+(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .277
+(Enable and disable b)144 607.2 R .278(uiltin shell commands.)-.2 F .278
(Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
-(ws a disk command which has)-.25 F .833(the same name as a shell b)144
-523.2 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
-(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
-(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 535.2
-R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0
-.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
-(abled; otherwise,)144 547.2 R F2(names)4.082 E F0 1.582(are enabled.)
-4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
-F1(test)4.082 E F0 1.582(binary found via the)4.082 F F3 -.666(PA)4.082
-G(TH)-.189 E F0 .081(instead of the shell b)144 559.2 R .081(uiltin v)
--.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test)
-2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
-(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 571.2 S 1.524
-(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F
-F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524
-(ystems that support dynamic loading.)-4.024 F(The)144 583.2 Q F1<ad64>
-2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
-.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
--5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
--.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 595.2 R F1<ad70>
-2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
-(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
-F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
-607.2 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
-(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
-(If)5.098 E F1<ad61>2.598 E F0 1.916
-(is supplied, the list printed includes all b)144 619.2 R 1.916
-(uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 631.2 R F1<ad73>2.879 E F0 .379
-(is supplied, the output is restricted to the POSIX)2.879 F F2(special)
-2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F
-(alue)-.25 E .994(is 0 unless a)144 643.2 R F2(name)3.854 E F0 .994
-(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
--.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
-655.2 Q F1 -2.3 -.15(ev a)108 672 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E
-F0(...])2.5 E(The)144 684 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C .671
-(re read and concatenated together into a single command.)-3.171 F .67
-(This command is then read)5.67 F .495(and e)144 696 R -.15(xe)-.15 G
-.495(cuted by the shell, and its e).15 F .495
-(xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
-(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
--2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 708 Q
-(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(54)185.115 E 0 Cg EP
+(ws a disk command which has)-.25 F .834(the same name as a shell b)144
+619.2 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.333
+(nt).15 G(hough)-3.333 E .989(the shell normally searches for b)144
+631.2 R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>
+3.489 E F0 .99(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F
+1.582(abled; otherwise,)144 643.2 R F2(names)4.082 E F0 1.582
+(are enabled.)4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582
+(xample, to use the)-4.232 F F1(test)4.082 E F0 1.582
+(binary found via the)4.082 F F3 -.666(PA)4.081 G(TH)-.189 E F0 .08
+(instead of the shell b)144 655.2 R .08(uiltin v)-.2 F .08(ersion, run)
+-.15 F/F5 10/Courier@0 SF .081(enable -n test)2.58 F F0 5.081(.T)C(he)
+-5.081 E F1<ad66>2.581 E F0 .081(option means to load the ne)2.581 F(w)
+-.25 E -.2(bu)144 667.2 S 1.525(iltin command).2 F F2(name)4.385 E F0
+1.524(from shared object)4.204 F F2(\214lename)4.024 E F0 4.024(,o).18 G
+4.024(ns)-4.024 G 1.524(ystems that support dynamic loading.)-4.024 F
+(The)144 679.2 Q F1<ad64>2.866 E F0 .366(option will delete a b)2.866 F
+.366(uiltin pre)-.2 F .366(viously loaded with)-.25 F F1<ad66>2.867 E F0
+5.367(.I)C 2.867(fn)-5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E
+.367(guments are gi)-.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the)
+144 691.2 R F1<ad70>2.899 E F0 .399
+(option is supplied, a list of shell b)2.899 F .399(uiltins is printed.)
+-.2 F -.4(Wi)5.399 G .399(th no other option ar).4 F .398(guments, the)
+-.18 F .098(list consists of all enabled shell b)144 703.2 R 2.598
+(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098(is supplied, only disabled b)
+2.598 F .099(uiltins are printed.)-.2 F(If)5.099 E F1<ad61>2.599 E F0
+1.917(is supplied, the list printed includes all b)144 715.2 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.878
+(enabled. If)144 727.2 R F1<ad73>2.878 E F0 .379
+(is supplied, the output is restricted to the POSIX)2.878 F F2(special)
+2.879 E F0 -.2(bu)2.879 G 2.879(iltins. The).2 F .379(return v)2.879 F
+(alue)-.25 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(54)192.895 E
+0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(exec)108 84 Q F0([)2.5 E F1(\255cl)A F0 2.5
-(][)C F1<ad61>-2.5 E/F2 10/Times-Italic@0 SF(name)2.5 E F0 2.5(][)C F2
-(command)-2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(]])A(If)144 96 Q F2
-(command)3.006 E F0 .306(is speci\214ed, it replaces the shell.)3.576 F
-.305(No ne)5.305 F 2.805(wp)-.25 G .305(rocess is created.)-2.805 F(The)
-5.305 E F2(ar)3.135 E(guments)-.37 E F0(become)3.075 E .176(the ar)144
-108 R .176(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)
--5.176 G(he)-2.676 E F1<ad6c>2.676 E F0 .176
-(option is supplied, the shell places a dash at the be)2.676 F .177
-(ginning of)-.15 F .5(the zeroth ar)144 120 R .5(gument passed to)-.18 F
-F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999 E
-(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0 .499
-(option causes)2.999 F F2(com-)3.199 E(mand)144 132 Q F0 .638(to be e)
-3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
-(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
-(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
-3.319 F 1.078(zeroth ar)144 144 R 1.077(gument to the e)-.18 F -.15(xe)
--.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0 1.077
-(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a).15 F
-(non-interacti)144 156 Q .617 -.15(ve s)-.25 H .317(hell e).15 F .317
-(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318
+-.35 E .995(is 0 unless a)144 84 R/F1 10/Times-Italic@0 SF(name)3.855 E
+F0 .994(is not a shell b)3.675 F .994
+(uiltin or there is an error loading a ne)-.2 F 3.494(wb)-.25 G .994
+(uiltin from a shared)-3.694 F(object.)144 96 Q/F2 10/Times-Bold@0 SF
+-2.3 -.15(ev a)108 112.8 T(l).15 E F0([)2.5 E F1(ar)A(g)-.37 E F0(...])
+2.5 E(The)144 124.8 Q F1(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
+(re read and concatenated together into a single command.)-3.17 F .671
+(This command is then read)5.671 F .495(and e)144 136.8 R -.15(xe)-.15 G
+.495(cuted by the shell, and its e).15 F .495
+(xit status is returned as the v)-.15 F .495(alue of)-.25 F F2 -2.3 -.15
+(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
+-2.995 F F1(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 148.8 Q
+(guments,)-.18 E F2 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F2
+(exec)108 165.6 Q F0([)2.5 E F2(\255cl)A F0 2.5(][)C F2<ad61>-2.5 E F1
+(name)2.5 E F0 2.5(][)C F1(command)-2.5 E F0([)2.5 E F1(ar)A(guments)
+-.37 E F0(]])A(If)144 177.6 Q F1(command)3.005 E F0 .305
+(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805
+(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F1(ar)3.136 E
+(guments)-.37 E F0(become)3.076 E .177(the ar)144 189.6 R .177
+(guments to)-.18 F F1(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
+(he)-2.676 E F2<ad6c>2.676 E F0 .176
+(option is supplied, the shell places a dash at the be)2.676 F .176
+(ginning of)-.15 F .499(the zeroth ar)144 201.6 R .499(gument passed to)
+-.18 F F1(command)2.999 E F0 5.499(.T).77 G .499(his is what)-5.499 F F1
+(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.5 E F2<ad63>3 E F0
+.5(option causes)3 F F1(com-)3.2 E(mand)144 213.6 Q F0 .639(to be e)
+3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(vironment. If)-.4 F F2<ad61>3.138 E F0 .638
+(is supplied, the shell passes)3.138 F F1(name)3.498 E F0 .638(as the)
+3.318 F 1.077(zeroth ar)144 225.6 R 1.077(gument to the e)-.18 F -.15
+(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F1(command)3.777 E F0
+1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
+.15 F(non-interacti)144 237.6 Q .618 -.15(ve s)-.25 H .318(hell e).15 F
+.318(xits, unless the shell option)-.15 F F2(execfail)2.817 E F0 .317
(is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
-(ure. An)144 168 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
+(ure. An)144 249.6 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
(hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
-(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
-(is not speci\214ed,)3.275 F(an)144 180 Q 3.036(yr)-.15 G .536
-(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
+(xe)-.15 G 2.505(cuted. If).15 F F1(command)2.705 E F0 .005
+(is not speci\214ed,)3.275 F(an)144 261.6 Q 3.037(yr)-.15 G .537
+(edirections tak)-3.037 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
(ect in the current shell, and the return status is 0.).25 F .536
-(If there is a redirection)5.536 F(error)144 192 Q 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 208.8 Q F0([)2.5 E F2(n)A F0
-6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of)
--.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095
-(is omitted, the e)2.835 F .095(xit status is that of the last command)
--.15 F -.15(exe)144 220.8 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
+(If there is a redirection)5.536 F(error)144 273.6 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E F2(exit)108 290.4 Q F0([)2.5 E F1(n)A F0
+6.29(]C)C .095(ause the shell to e)-6.29 F .095(xit with a status of)
+-.15 F F1(n)2.595 E F0 5.095(.I)C(f)-5.095 E F1(n)2.955 E F0 .096
+(is omitted, the e)2.835 F .096(xit status is that of the last command)
+-.15 F -.15(exe)144 302.4 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
/Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G
-(cuted before the shell terminates.).15 E F1(export)108 237.6 Q F0([)2.5
-E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
-F0(]] ...)A F1(export \255p)108 249.6 Q F0 .256(The supplied)144 261.6 R
-F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
+(cuted before the shell terminates.).15 E F2(export)108 319.2 Q F0([)2.5
+E F2(\255fn)A F0 2.5(][).833 G F1(name)-2.5 E F0([=)A F1(wor)A(d)-.37 E
+F0(]] ...)A F2(export \255p)108 331.2 Q F0 .257(The supplied)144 343.2 R
+F1(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
.257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15
-(xe)-.15 G(cuted).15 E 2.627(commands. If)144 273.6 R(the)2.627 E F1
-<ad66>2.627 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the)
-.15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
-5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126
-(n, or if the).15 F F1<ad70>144 285.6 Q F0 .659
-(option is supplied, a list of all names that are e)3.159 F .66
-(xported in this shell is printed.)-.15 F(The)5.66 E F1<ad6e>3.16 E F0
-(option)3.16 E 1.587(causes the e)144 297.6 R 1.587
+(xe)-.15 G(cuted).15 E 2.626(commands. If)144 355.2 R(the)2.626 E F2
+<ad66>2.626 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the)
+.15 F F1(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
+5.127 F F1(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .127
+(n, or if the).15 F F2<ad70>144 367.2 Q F0 .66
+(option is supplied, a list of all names that are e)3.16 F .659
+(xported in this shell is printed.)-.15 F(The)5.659 E F2<ad6e>3.159 E F0
+(option)3.159 E 1.586(causes the e)144 379.2 R 1.586
(xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
-(rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
-1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 309.6 Q
-F2(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)
--.25 F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1
-(export)5.304 E F0 .304(returns an e)2.804 F .304
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294
-(option is encountered, one of the)144 321.6 R F2(names)2.793 E F0 .293
+(rom each)-4.086 F F1(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
+1.587(ariable name is follo)-4.336 F 1.587(wed by)-.25 F(=)144 391.2 Q
+F1(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v)
+-.25 F .304(ariable is set to)-.25 F F1(wor)2.804 E(d)-.37 E F0(.)A F2
+(export)5.304 E F0 .304(returns an e)2.804 F .303
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .293
+(option is encountered, one of the)144 403.2 R F1(names)2.793 E F0 .293
(is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
-F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36
-333.6 Q F0(that is not a function.)2.68 E F1(fc)108 350.4 Q F0([)2.5 E
-F1<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
-<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
-362.4 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
-(cmd)-2.5 E F0(])A .477(Fix Command.)144 374.4 R .478
-(In the \214rst form, a range of commands from)5.477 F F2<8c72>4.888 E
-(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .478
-(is selected from the his-)3.658 F .882(tory list.)144 386.4 R F2 -.45
-(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882
+F F2<ad66>2.793 E F0 .294(is supplied with a)2.793 F F1(name)144.36
+415.2 Q F0(that is not a function.)2.68 E F2(fc)108 432 Q F0([)2.5 E F2
+<ad65>A F1(ename)2.5 E F0 2.5(][)C F2(\255lnr)-2.5 E F0 2.5(][)C F1
+<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F1(last)-2.5 E F0(])A F2(fc \255s)108
+444 Q F0([)2.5 E F1(pat)A F0(=)A F1 -.37(re)C(p).37 E F0 2.5(][)C F1
+(cmd)-2.5 E F0(])A .478(Fix Command.)144 456 R .478
+(In the \214rst form, a range of commands from)5.478 F F1<8c72>4.888 E
+(st)-.1 E F0(to)3.658 E F1(last)3.068 E F0 .477
+(is selected from the his-)3.658 F .881(tory list.)144 468 R F1 -.45(Fi)
+5.881 G -.1(rs).45 G(t).1 E F0(and)4.061 E F1(last)3.471 E F0 .882
(may be speci\214ed as a string \(to locate the last command be)4.062 F
-.881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
-398.4 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
--.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an)
-.15 F(of)144 410.4 Q .277(fset from the current command number\).)-.25 F
-(If)5.277 E F2(last)2.867 E F0 .276
-(is not speci\214ed it is set to the current command)3.457 F .092
-(for listing \(so that)144 422.4 R/F4 10/Courier@0 SF .092
+.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
+480 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
+-.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .796(umber is used as an)
+.15 F(of)144 492 Q .276(fset from the current command number\).)-.25 F
+(If)5.276 E F1(last)2.866 E F0 .277
+(is not speci\214ed it is set to the current command)3.456 F .093
+(for listing \(so that)144 504 R/F4 10/Courier@0 SF .092
(fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
-2.592 F F2<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F2<8c72>
-4.502 E(st)-.1 E F0 .093(is not)3.273 F
-(speci\214ed it is set to the pre)144 434.4 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 458.4
-Q F1<ad6e>2.522 E F0 .022
+2.592 F F1<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F1<8c72>
+4.502 E(st)-.1 E F0 .092(is not)3.272 F
+(speci\214ed it is set to the pre)144 516 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 540 Q
+F2<ad6e>2.522 E F0 .022
(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
-F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
-(rses the order of).15 F .438(the commands.)144 470.4 R .438(If the)
-5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+F2<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
+(rses the order of).15 F .438(the commands.)144 552 R .438(If the)5.438
+F F2<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.335(the editor gi)144 482.4 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
-F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
-(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
-(n,).15 E .63(the v)144 494.4 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
-F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
-F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
-(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 506.4 R .951
-(ariable is set,)-.25 F F2(vi)5.117 E F0 .951(is used.)5.117 F .95
-(When editing is complete, the edited commands are echoed and)5.951 F
--.15(exe)144 518.4 S(cuted.).15 E .039(In the second form,)144 542.4 R
-F2(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 G .039
-(cuted after each instance of).15 F F2(pat)2.54 E F0 .04(is replaced by)
-2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)-2.5 E .406
-(alias to use with this is)144 554.4 R F4 .406(r='fc \255s')2.906 F F0
-2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 6.406(rc)2.906
-G(c)-6.406 E F0 .406(runs the last command be)2.906 F .406(ginning with)
--.15 F F4(cc)144 566.4 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E
--.15(xe)-.15 G(cutes the last command.).15 E .142
-(If the \214rst form is used, the return v)144 590.4 R .142
+.334(the editor gi)144 564 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E F1
+(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835(do)
+.1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 F
+(If)5.335 E F1(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G
+(n,).15 E .631(the v)144 576 R .631(alue of the)-.25 F F3(FCEDIT)3.131 E
+F0 -.25(va)2.881 G .631(riable is used, and the v).25 F .631(alue of)
+-.25 F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.13 E F0 .63
+(is not set.)2.88 F .63(If nei-)5.63 F .95(ther v)144 588 R .95
+(ariable is set,)-.25 F F1(vi)5.116 E F0 .95(is used.)5.116 F .951
+(When editing is complete, the edited commands are echoed and)5.95 F
+-.15(exe)144 600 S(cuted.).15 E .04(In the second form,)144 624 R F1
+(command)2.54 E F0 .04(is re-e)2.54 F -.15(xe)-.15 G .039
+(cuted after each instance of).15 F F1(pat)2.539 E F0 .039
+(is replaced by)2.539 F F1 -.37(re)2.539 G(p).37 E F0 5.039(.A)C(useful)
+-2.5 E .406(alias to use with this is)144 636 R F4 .406(r='fc \255s')
+2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4
+6.406(rc)2.906 G(c)-6.406 E F0 .406(runs the last command be)2.906 F
+.407(ginning with)-.15 F F4(cc)144 648 Q F0(and typing)2.5 E F4(r)2.5 E
+F0(re-e)2.5 E -.15(xe)-.15 G(cutes the last command.).15 E .142
+(If the \214rst form is used, the return v)144 672 R .142
(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
-(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .455(specify history lines out of range.)144 602.4
-R .454(If the)5.454 F F1<ad65>2.954 E F0 .454
-(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454
-(alue of the)-.25 F .787(last command e)144 614.4 R -.15(xe)-.15 G .787
-(cuted or f).15 F .788
+(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F1(last)2.732 E F0 .454(specify history lines out of range.)144 684 R
+.454(If the)5.454 F F2<ad65>2.954 E F0 .454
+(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
+(alue of the)-.25 F .788(last command e)144 696 R -.15(xe)-.15 G .788
+(cuted or f).15 F .787
(ailure if an error occurs with the temporary \214le of commands.)-.1 F
-.788(If the)5.788 F 1.136
+.787(If the)5.787 F 1.135
(second form is used, the return status is that of the command re-e)144
-626.4 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135
-(does not)4.405 F(specify a v)144 638.4 Q
-(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F1(fg)108 655.2 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 667.2 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
-(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
-(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.414(is not present, the)4.223 F(shell')144 679.2 Q 3.117(sn)-.55 G
-.617(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617
-(is used.)3.117 F .617(The return v)5.617 F .616
-(alue is that of the command placed into the)-.25 F(fore)144 691.2 Q
-.362(ground, or f)-.15 F .362
-(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .363
-(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 703.2 Q
-F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F2(jobspec)
-4.244 E F0 .004(speci\214es a job that w)2.814 F .004
-(as started without job control.)-.1 F(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(55)185.115 E 0 Cg EP
+708 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 720 Q
+(alid history line, in which case)-.25 E F2(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(55)192.895
+E 0 Cg EP
%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(getopts)108 84 Q/F2 10/Times-Italic@0 SF
-(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144
-96 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F2
-(optstring)6.023 E F0 .793(contains the option)3.513 F .15
-(characters to be recognized; if a character is follo)144 108 R .149
-(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
--.15(ve a)-.2 H(n).15 E(ar)144 120 Q .578
-(gument, which should be separated from it by white space.)-.18 F .579
+-.35 E/F1 10/Times-Bold@0 SF(fg)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0
+SF(jobspec)A F0(])A(Resume)144 96 Q F2(jobspec)5.654 E F0 1.413
+(in the fore)4.224 F 1.413(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913
+(tt)-3.913 G 1.413(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2
+(jobspec)5.653 E F0 1.413(is not present, the)4.223 F(shell')144 108 Q
+3.116(sn)-.55 G .616(otion of the)-3.116 F F2(curr)3.116 E .616(ent job)
+-.37 F F0 .617(is used.)3.116 F .617(The return v)5.617 F .617
+(alue is that of the command placed into the)-.25 F(fore)144 120 Q .363
+(ground, or f)-.15 F .363(ailure if run when job control is disabled or)
+-.1 F 2.862(,w)-.4 G .362(hen run with job control enabled, if)-2.862 F
+F2(jobspec)145.74 132 Q F0 .004(does not specify a v)2.814 F .004
+(alid job or)-.25 F F2(jobspec)4.244 E F0 .004(speci\214es a job that w)
+2.814 F .004(as started without job control.)-.1 F F1(getopts)108 148.8
+Q F2(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1
+(getopts)144 160.8 Q F0 .793
+(is used by shell procedures to parse positional parameters.)3.294 F F2
+(optstring)6.023 E F0 .793(contains the option)3.513 F .149
+(characters to be recognized; if a character is follo)144 172.8 R .15
+(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
+-.15(ve a)-.2 H(n).15 E(ar)144 184.8 Q .579
+(gument, which should be separated from it by white space.)-.18 F .578
(The colon and question mark char)5.579 F(-)-.2 E 1.665
-(acters may not be used as option characters.)144 132 R 1.665
+(acters may not be used as option characters.)144 196.8 R 1.665
(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts)
-4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
-(option in the shell v)144 144 R(ariable)-.25 E F2(name)3.296 E F0 3.296
-(,i).18 G(nitializing)-3.296 E F2(name)3.657 E F0 .797(if it does not e)
-3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G 3.297(ft)-3.297 G
-.797(he ne)-3.297 F(xt)-.15 E(ar)144 156 Q .085
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
+(option in the shell v)144 208.8 R(ariable)-.25 E F2(name)3.297 E F0
+3.297(,i).18 G(nitializing)-3.297 E F2(name)3.657 E F0 .797
+(if it does not e)3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G
+3.296(ft)-3.296 G .796(he ne)-3.296 F(xt)-.15 E(ar)144 220.8 Q .085
(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9
/Times-Bold@0 SF(OPTIND)2.585 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)
-4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .845
-(or a shell script is in)144 168 R -.2(vo)-.4 G -.1(ke).2 G 3.345
+4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .846
+(or a shell script is in)144 232.8 R -.2(vo)-.4 G -.1(ke).2 G 3.345
(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F1
-(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804
-(into the v)144 180 R(ariable)-.25 E F3(OPT)3.304 E(ARG)-.81 E F4(.)A F0
-.803(The shell does not reset)5.304 F F3(OPTIND)3.303 E F0 .803
-(automatically; it must be manually)3.053 F .293
-(reset between multiple calls to)144 192 R F1(getopts)2.793 E F0 .293
+(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E .803
+(into the v)144 244.8 R(ariable)-.25 E F3(OPT)3.303 E(ARG)-.81 E F4(.)A
+F0 .803(The shell does not reset)5.303 F F3(OPTIND)3.303 E F0 .804
+(automatically; it must be manually)3.054 F .294
+(reset between multiple calls to)144 256.8 R F1(getopts)2.793 E F0 .293
(within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F
-2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 204 Q
-2.044(When the end of options is encountered,)144 228 R F1(getopts)4.543
-E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043
-(alue greater than zero.)-.25 F F1(OPTIND)144 240 Q F0
+2.793(ws)-.25 G .293(et of parameters)-2.793 F(is to be used.)144 268.8
+Q 2.043(When the end of options is encountered,)144 292.8 R F1(getopts)
+4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044
+(alue greater than zero.)-.25 F F1(OPTIND)144 304.8 Q F0
(is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0
-(is set to ?.)2.5 E F1(getopts)144 264 Q F0 2.392
-(normally parses the positional parameters, b)4.892 F 2.392
-(ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
-(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F1(getopts)144
-276 Q F0(parses those instead.)2.5 E F1(getopts)144 300 Q F0 1.166
-(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
-1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.165
-(is a colon,)3.885 F F2(silent)4.005 E F0(error)4.345 E 1.263
-(reporting is used.)144 312 R 1.263
+(is set to ?.)2.5 E F1(getopts)144 328.8 Q F0 2.393
+(normally parses the positional parameters, b)4.893 F 2.392
+(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892
+(ni).15 G(n)-4.892 E F2(ar)4.892 E(gs)-.37 E F0(,).27 E F1(getopts)144
+340.8 Q F0(parses those instead.)2.5 E F1(getopts)144 364.8 Q F0 1.165
+(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
+1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.166
+(is a colon,)3.886 F F2(silent)4.006 E F0(error)4.346 E 1.264
+(reporting is used.)144 376.8 R 1.263
(In normal operation diagnostic messages are printed when in)6.263 F
--.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144 324
-R .394(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
--.25 E F3(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
-(will be displayed, e)144 336 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
-G(he \214rst character of)-2.5 E F2(optstring)2.73 E F0(is not a colon.)
-2.72 E .666(If an in)144 360 R -.25(va)-.4 G .666(lid option is seen,)
-.25 F F1(getopts)3.166 E F0 .667(places ? into)3.167 F F2(name)3.527 E
-F0 .667(and, if not silent, prints an error message)3.347 F .4
-(and unsets)144 372 R F3(OPT)2.9 E(ARG)-.81 E F4(.)A F0(If)4.899 E F1
-(getopts)2.899 E F0 .399
-(is silent, the option character found is placed in)2.899 F F3(OPT)2.899
-E(ARG)-.81 E F0 .399(and no)2.649 F(diagnostic message is printed.)144
-384 Q 1.241(If a required ar)144 408 R 1.241(gument is not found, and)
--.18 F F1(getopts)3.741 E F0 1.241(is not silent, a question mark \()
-3.741 F F1(?).833 E F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242
-(laced in)-3.742 F F2(name)144 420 Q F0(,).18 E F3(OPT)2.735 E(ARG)-.81
-E F0 .234(is unset, and a diagnostic message is printed.)2.485 F(If)
-5.234 E F1(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F1
-(:).833 E F0(\)).833 E(is placed in)144 432 Q F2(name)2.86 E F0(and)2.68
-E F3(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25
-E F1(getopts)144 456 Q F0 .902
+-.25(va)-.4 G 1.263(lid options or).25 F .393(missing option ar)144
+388.8 R .393(guments are encountered.)-.18 F .394(If the v)5.394 F
+(ariable)-.25 E F3(OPTERR)2.894 E F0 .394
+(is set to 0, no error messages)2.644 F(will be displayed, e)144 400.8 Q
+-.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
+F2(optstring)2.73 E F0(is not a colon.)2.72 E .667(If an in)144 424.8 R
+-.25(va)-.4 G .667(lid option is seen,).25 F F1(getopts)3.167 E F0 .667
+(places ? into)3.167 F F2(name)3.527 E F0 .666
+(and, if not silent, prints an error message)3.347 F .399(and unsets)144
+436.8 R F3(OPT)2.899 E(ARG)-.81 E F4(.)A F0(If)4.899 E F1(getopts)2.899
+E F0 .399(is silent, the option character found is placed in)2.899 F F3
+(OPT)2.899 E(ARG)-.81 E F0 .4(and no)2.65 F
+(diagnostic message is printed.)144 448.8 Q 1.242(If a required ar)144
+472.8 R 1.242(gument is not found, and)-.18 F F1(getopts)3.741 E F0
+1.241(is not silent, a question mark \()3.741 F F1(?).833 E F0 3.741
+(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F F2(name)144 484.8
+Q F0(,).18 E F3(OPT)2.734 E(ARG)-.81 E F0 .234
+(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F1
+(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F1(:).833 E
+F0(\)).833 E(is placed in)144 496.8 Q F2(name)2.86 E F0(and)2.68 E F3
+(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F1
+(getopts)144 520.8 Q F0 .902
(returns true if an option, speci\214ed or unspeci\214ed, is found.)
-3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 468 Q F1(hash)108 484.8
-Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F2(\214lename)2.5 E
-F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo)
-144 496.8 S 3.555(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555(,t).18
-G 1.054(he full \214le name of the command is determined by searching t\
-he directories in)-3.555 F F1($P)144 508.8 Q -.95(AT)-.74 G(H).95 E F0
-.349(and remembered.)2.849 F .349(If the)5.349 F F1<ad70>2.849 E F0 .349
-(option is supplied, no path search is performed, and)2.849 F F2
-(\214lename)4.76 E F0 .452
-(is used as the full \214le name of the command.)144 520.8 R(The)5.452 E
-F1<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .452
-(get all remem-)-.18 F .592(bered locations.)144 532.8 R(The)5.592 E F1
-<ad64>3.092 E F0 .593(option causes the shell to for)3.092 F .593
-(get the remembered location of each)-.18 F F2(name)3.093 E F0(.)A .021
-(If the)144 544.8 R F1<ad74>2.521 E F0 .021
-(option is supplied, the full pathname to which each)2.521 F F2(name)
-2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple)
-144 556.8 Q F2(name)3.703 E F0(ar)3.703 E 1.203
+3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
+(options is encountered or an error occurs.)144 532.8 Q F1(hash)108
+549.6 Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F2(\214lename)
+2.5 E F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A
+-.15(Fo)144 561.6 S 3.554(re).15 G(ach)-3.554 E F2(name)3.554 E F0 3.554
+(,t).18 G 1.054(he full \214le name of the command is determined by sea\
+rching the directories in)-3.554 F F1($P)144 573.6 Q -.95(AT)-.74 G(H)
+.95 E F0 .35(and remembered.)2.85 F .35(If the)5.35 F F1<ad70>2.85 E F0
+.349(option is supplied, no path search is performed, and)2.849 F F2
+(\214lename)4.759 E F0 .452
+(is used as the full \214le name of the command.)144 585.6 R(The)5.452 E
+F1<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .453
+(get all remem-)-.18 F .593(bered locations.)144 597.6 R(The)5.593 E F1
+<ad64>3.093 E F0 .593(option causes the shell to for)3.093 F .592
+(get the remembered location of each)-.18 F F2(name)3.092 E F0(.)A .02
+(If the)144 609.6 R F1<ad74>2.52 E F0 .02
+(option is supplied, the full pathname to which each)2.52 F F2(name)
+2.521 E F0 .021(corresponds is printed.)2.521 F .021(If multi-)5.021 F
+(ple)144 621.6 Q F2(name)3.704 E F0(ar)3.704 E 1.204
(guments are supplied with)-.18 F F1<ad74>3.703 E F0 3.703(,t)C(he)
--3.703 E F2(name)3.703 E F0 1.204
-(is printed before the hashed full pathname.)3.703 F(The)144 568.8 Q F1
-<ad6c>3.216 E F0 .715(option causes output to be displayed in a format \
-that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E
-1.183(ments are gi)144 580.8 R -.15(ve)-.25 G 1.183(n, or if only).15 F
-F1<ad6c>3.683 E F0 1.184
+-3.703 E F2(name)3.703 E F0 1.203
+(is printed before the hashed full pathname.)3.703 F(The)144 633.6 Q F1
+<ad6c>3.215 E F0 .715(option causes output to be displayed in a format \
+that may be reused as input.)3.215 F .716(If no ar)5.716 F(gu-)-.18 E
+1.184(ments are gi)144 645.6 R -.15(ve)-.25 G 1.184(n, or if only).15 F
+F1<ad6c>3.684 E F0 1.183
(is supplied, information about remembered commands is printed.)3.684 F
-(The return status is true unless a)144 592.8 Q F2(name)2.86 E F0
+(The return status is true unless a)144 657.6 Q F2(name)2.86 E F0
(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
-E F1(help)108 609.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern)
--2.5 E F0(])A .867(Display helpful information about b)144 621.6 R .867
-(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .866
-(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G
-3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
-633.6 R F2(pattern)2.806 E F0 2.807(;o).24 G .307
-(therwise help for all the b)-2.807 F .307
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 645.6 Q F1
-<ad64>144 657.6 Q F0(Display a short description of each)24.74 E F2
-(pattern)2.5 E F1<ad6d>144 669.6 Q F0(Display the description of each)
-21.97 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
--2.5 E F1<ad73>144 681.6 Q F0
-(Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E
-F0(The return status is 0 unless no command matches)108 693.6 Q F2
-(pattern)2.5 E F0(.).24 E(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(56)185.115 E 0 Cg EP
+E F1(help)108 674.4 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern)
+-2.5 E F0(])A .866(Display helpful information about b)144 686.4 R .867
+(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .867
+(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G
+3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
+698.4 R F2(pattern)2.807 E F0 2.807(;o).24 G .307
+(therwise help for all the b)-2.807 F .306
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 710.4 Q
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(56)192.895 E 0 Cg EP
%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(history [)108 84 Q/F2 10/Times-Italic@0 SF
-(n)A F1(])A(history \255c)108 96 Q(history \255d)108 108 Q F2(of)2.5 E
-(fset)-.18 E F1(history \255anrw)108 120 Q F0([)2.5 E F2(\214lename)A F0
-(])A F1(history \255p)108 132 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A
-2.5(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 144 Q F2(ar)2.5 E(g)
--.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 156
-S .752
+-.35 E/F1 10/Times-Bold@0 SF<ad64>144 84 Q F0
+(Display a short description of each)24.74 E/F2 10/Times-Italic@0 SF
+(pattern)2.5 E F1<ad6d>144 96 Q F0(Display the description of each)21.97
+E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)-2.5 E
+F1<ad73>144 108 Q F0(Display only a short usage synopsis for each)26.41
+E F2(pattern)2.5 E F0(The return status is 0 unless no command matches)
+108 120 Q F2(pattern)2.5 E F0(.).24 E F1(history [)108 136.8 Q F2(n)A F1
+(])A(history \255c)108 148.8 Q(history \255d)108 160.8 Q F2(of)2.5 E
+(fset)-.18 E F1(history \255anrw)108 172.8 Q F0([)2.5 E F2(\214lename)A
+F0(])A F1(history \255p)108 184.8 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2
+(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 196.8 Q F2(ar)
+2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)
+144 208.8 S .752
(th no options, display the command history list with line numbers.).4 F
-.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
-G 1.23(been modi\214ed.)144 168 R 1.23(An ar)6.23 F 1.23(gument of)-.18
-F F2(n)4.09 E F0 1.231(lists only the last)3.97 F F2(n)4.091 E F0 3.731
-(lines. If)3.971 F 1.231(the shell v)3.731 F(ariable)-.25 E F1
-(HISTTIME-)3.731 E(FORMA)144 180 Q(T)-.95 E F0 .25
-(is set and not null, it is used as a format string for)2.75 F F2
-(strftime)2.749 E F0 .249(\(3\) to display the time stamp)B .378
-(associated with each displayed history entry)144 192 R 5.378(.N)-.65 G
-2.878(oi)-5.378 G(nterv)-2.878 E .379
-(ening blank is printed between the format-)-.15 F .815
-(ted time stamp and the history line.)144 204 R(If)5.814 E F2
+.752(Lines listed with a)5.752 F F1(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
+G 1.231(been modi\214ed.)144 220.8 R 1.231(An ar)6.231 F 1.231
+(gument of)-.18 F F2(n)4.091 E F0 1.231(lists only the last)3.971 F F2
+(n)4.091 E F0 3.73(lines. If)3.97 F 1.23(the shell v)3.73 F(ariable)-.25
+E F1(HISTTIME-)3.73 E(FORMA)144 232.8 Q(T)-.95 E F0 .249
+(is set and not null, it is used as a format string for)2.749 F F2
+(strftime)2.75 E F0 .25(\(3\) to display the time stamp)B .379
+(associated with each displayed history entry)144 244.8 R 5.379(.N)-.65
+G 2.878(oi)-5.379 G(nterv)-2.878 E .378
+(ening blank is printed between the format-)-.15 F .814
+(ted time stamp and the history line.)144 256.8 R(If)5.814 E F2
(\214lename)3.314 E F0 .814
(is supplied, it is used as the name of the history)3.314 F
-(\214le; if not, the v)144 216 Q(alue of)-.25 E/F3 9/Times-Bold@0 SF
+(\214le; if not, the v)144 268.8 Q(alue of)-.25 E/F3 9/Times-Bold@0 SF
(HISTFILE)2.5 E F0(is used.)2.25 E(Options, if supplied, ha)5 E .3 -.15
-(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad63>144 228 Q F0
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad63>144 280.8 Q F0
(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
-240 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 252 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 264 Q F0 .598
-(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
-(istory lines \(history lines entered since the be)-3.098 F .599
-(ginning of the current)-.15 F F1(bash)180 276 Q F0
-(session\) to the history \214le.)2.5 E F1<ad6e>144 288 Q F0 .854(Read \
-the history lines not already read from the history \214le into the cur\
-rent history list.)24.74 F .772
-(These are lines appended to the history \214le since the be)180 300 R
-.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
-(sion.)180 312 Q F1<ad72>144 324 Q F0(Read the contents of the history \
-\214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>144
-336 Q F0(Write the current history to the history \214le, o)23.08 E -.15
-(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.)
--2.5 E F1<ad70>144 348 Q F0 .626
+292.8 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 304.8 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 316.8 Q F0 .599
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.099('h)-.74 G .598
+(istory lines \(history lines entered since the be)-3.099 F .598
+(ginning of the current)-.15 F F1(bash)180 328.8 Q F0
+(session\) to the history \214le.)2.5 E F1<ad6e>144 340.8 Q F0 .854(Rea\
+d the history lines not already read from the history \214le into the c\
+urrent history list.)24.74 F .773
+(These are lines appended to the history \214le since the be)180 352.8 R
+.772(ginning of the current)-.15 F F1(bash)3.272 E F0(ses-)3.272 E
+(sion.)180 364.8 Q F1<ad72>144 376.8 Q F0(Read the contents of the hist\
+ory \214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>
+144 388.8 Q F0(Write the current history to the history \214le, o)23.08
+E -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
+(ontents.)-2.5 E F1<ad70>144 400.8 Q F0 .625
(Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar)
-3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
-2.975(output. Does)180 360 R .475
+3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
+2.975(output. Does)180 412.8 R .475
(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 372 Q(xpansion.)-.15 E F1<ad73>144 384 Q F0 .363
-(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363
-(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
-(he last command in the history list is)-5.363 F(remo)180 396 Q -.15(ve)
--.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .28(If the)144 412.8 R F1(HISTTIMEFORMA)2.78 E(T)-.95
+(normal history e)180 424.8 Q(xpansion.)-.15 E F1<ad73>144 436.8 Q F0
+.362(Store the)26.41 F F2(ar)3.192 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
+(he last command in the history list is)-5.363 F(remo)180 448.8 Q -.15
+(ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .28(If the)144 465.6 R F1(HISTTIMEFORMA)2.78 E(T)-.95
E F0 .28
(is set, the time stamp information associated with each history entry)
-2.78 F .54(is written to the history \214le, mark)144 424.8 R .539
-(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539
-(hen the history \214le is)-5.539 F 1.778(read, lines be)144 436.8 R
-1.778(ginning with the history comment character follo)-.15 F 1.779
+2.78 F .539(is written to the history \214le, mark)144 477.6 R .539
+(ed with the history comment character)-.1 F 5.54(.W)-.55 G .54
+(hen the history \214le is)-5.54 F 1.779(read, lines be)144 489.6 R
+1.779(ginning with the history comment character follo)-.15 F 1.778
(wed immediately by a digit are)-.25 F 1.424
-(interpreted as timestamps for the pre)144 448.8 R 1.424
+(interpreted as timestamps for the pre)144 501.6 R 1.424
(vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 460.8 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is)
-3 E(supplied as an ar)144 472.8 Q(gument to)-.18 E F1<ad64>2.5 E F0 2.5
-(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
-E(gument to)-.18 E F1<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(jobs)108
-489.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5
-E F1(jobs \255x)108 501.6 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)
--.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 513.6 Q .3
--.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F1<ad6c>144 525.6 Q F0
+, an in)144 513.6 R -.25(va)-.4 G(lid).25 E F2(of)2.999 E(fset)-.18 E F0
+(is)2.999 E(supplied as an ar)144 525.6 Q(gument to)-.18 E F1<ad64>2.5 E
+F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
+(xpansion supplied as an ar)-.15 E(gument to)-.18 E F1<ad70>2.5 E F0 -.1
+(fa)2.5 G(ils.).1 E F1(jobs)108 542.4 Q F0([)2.5 E F1(\255lnprs)A F0 2.5
+(][)C F2(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 554.4 Q F2(command)
+2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
+(The \214rst form lists the acti)144 566.4 Q .3 -.15(ve j)-.25 H 2.5
+(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad6c>144 578.4 Q F0
(List process IDs in addition to the normal information.)27.52 E F1
-<ad70>144 537.6 Q F0(List only the process ID of the job')24.74 E 2.5
-(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad6e>144 549.6 Q F0
-.194(Display information only about jobs that ha)24.74 F .494 -.15(ve c)
--.2 H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F
-(\214ed of their status.)180 561.6 Q F1<ad72>144 573.6 Q F0
-(Restrict output to running jobs.)25.86 E F1<ad73>144 585.6 Q F0
-(Restrict output to stopped jobs.)26.41 E(If)144 602.4 Q F2(jobspec)
-4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
-(n, output is restricted to information about that job).15 F 5.314(.T)
--.4 G .314(he return status is 0 unless)-5.314 F(an in)144 614.4 Q -.25
+<ad70>144 590.4 Q F0(List only the process ID of the job')24.74 E 2.5
+(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad6e>144 602.4 Q F0
+.193(Display information only about jobs that ha)24.74 F .494 -.15(ve c)
+-.2 H .194(hanged status since the user w).15 F .194(as last noti-)-.1 F
+(\214ed of their status.)180 614.4 Q F1<ad72>144 626.4 Q F0
+(Restrict output to running jobs.)25.86 E F1<ad73>144 638.4 Q F0
+(Restrict output to stopped jobs.)26.41 E(If)144 655.2 Q F2(jobspec)
+4.554 E F0 .314(is gi)3.124 F -.15(ve)-.25 G .314
+(n, output is restricted to information about that job).15 F 5.313(.T)
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 667.2 Q -.25
(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 631.2 R F1
-<ad78>2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 684 R F1
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
-3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394
-(with the corre-)3.164 F(sponding process group ID, and e)144 643.2 Q
--.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
-2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
-F1(kill)108 660 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
-<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5
-(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1
-(kill \255l)108 672 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G
-(it_status).2 E F0(])A .119(Send the signal named by)144 684 R F2
-(sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119
-(to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2
-(jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319
-(either a case-insensiti)144 696 R .619 -.15(ve s)-.25 H .319
-(ignal name such as).15 F F3(SIGKILL)2.819 E F0 .318
-(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318
-(pre\214x\) or a signal)2.568 F(number;)144 708 Q F2(signum)4.188 E F0
-1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
-4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
-1.349(is assumed.)3.599 F(An)6.349 E(ar)144 720 Q .523(gument of)-.18 F
-F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
-F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
-F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
-.15 F(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(57)185.115 E 0
-Cg EP
+3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
+(with the corre-)3.164 F(sponding process group ID, and e)144 696 Q -.15
+(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)2.5 E
+(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(57)192.895 E 0 Cg EP
%%Page: 58 58
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .28(of the signals corresponding to the ar)144 84 R .28
-(guments are listed, and the return status is 0.)-.18 F(The)5.28 E/F1 10
-/Times-Italic@0 SF -.2(ex)2.78 G(it_status).2 E F0(ar)144 96 Q .378
-(gument to)-.18 F/F2 10/Times-Bold@0 SF<ad6c>2.878 E F0 .378
-(is a number specifying either a signal number or the e)2.878 F .377
-(xit status of a process termi-)-.15 F .593(nated by a signal.)144 108 R
-F2(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
-.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
-(occurs or an in)144 120 Q -.25(va)-.4 G(lid option is encountered.).25
-E F2(let)108 136.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0
-(...])2.5 E(Each)144 148.8 Q F1(ar)3.965 E(g)-.37 E F0 1.135
-(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25
-G 1.134(luated \(see).25 F/F3 9/Times-Bold@0 SF 1.134(ARITHMETIC EV)
-3.634 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF
-(\).)A F0 1.134(If the)5.634 F(last)144 160.8 Q F1(ar)2.83 E(g)-.37 E F0
--.25(eva)2.72 G(luates to 0,).25 E F2(let)2.5 E F0
-(returns 1; 0 is returned otherwise.)2.5 E F2(local)108 177.6 Q F0([)2.5
-E F1(option)A F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
-(..])-2.5 E -.15(Fo)144 189.6 S 2.56(re).15 G .06(ach ar)-2.56 F .06
-(gument, a local v)-.18 F .06(ariable named)-.25 F F1(name)2.92 E F0 .06
-(is created, and assigned)2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)
--5.06 E F1(option)2.56 E F0 .06(can be)2.56 F(an)144 201.6 Q 3.153(yo)
--.15 G 3.153(ft)-3.153 G .653(he options accepted by)-3.153 F F2(declar)
-3.153 E(e)-.18 E F0 5.652(.W)C(hen)-5.652 E F2(local)3.152 E F0 .652
+-.35 E/F1 10/Times-Bold@0 SF(kill)108 84 Q F0([)2.5 E F1<ad73>A/F2 10
+/Times-Italic@0 SF(sigspec)2.5 E F0(|)2.5 E F1<ad6e>2.5 E F2(signum)2.5
+E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5(][)C F2(pid)-2.5 E F0(|)2.5
+E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1(kill \255l)108 96 Q F0([)2.5
+E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G(it_status).2 E F0(])A .12
+(Send the signal named by)144 108 R F2(sigspec)2.96 E F0(or)2.93 E F2
+(signum)2.96 E F0 .119(to the processes named by)2.939 F F2(pid)3.869 E
+F0(or)3.389 E F2(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)
+2.929 E .318(either a case-insensiti)144 120 R .618 -.15(ve s)-.25 H
+.318(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.818 E F0
+.319(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319
+(pre\214x\) or a signal)2.569 F(number;)144 132 Q F2(signum)4.189 E F0
+1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 144 Q .522(gument of)-.18 F
+F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
+F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
+F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
+.15 F .28(of the signals corresponding to the ar)144 156 R .28
+(guments are listed, and the return status is 0.)-.18 F(The)5.28 E F2
+-.2(ex)2.78 G(it_status).2 E F0(ar)144 168 Q .377(gument to)-.18 F F1
+<ad6c>2.877 E F0 .378
+(is a number specifying either a signal number or the e)2.877 F .378
+(xit status of a process termi-)-.15 F .594(nated by a signal.)144 180 R
+F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
+.593(as successfully sent, or f)-.1 F .593(alse if an error)-.1 F
+(occurs or an in)144 192 Q -.25(va)-.4 G(lid option is encountered.).25
+E F1(let)108 208.8 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E F0
+(...])2.5 E(Each)144 220.8 Q F2(ar)3.964 E(g)-.37 E F0 1.134
+(is an arithmetic e)3.854 F 1.134(xpression to be e)-.15 F -.25(va)-.25
+G 1.135(luated \(see).25 F F3 1.135(ARITHMETIC EV)3.635 F(ALU)-1.215 E
+-.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.135(If the)
+5.635 F(last)144 232.8 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+(luates to 0,).25 E F1(let)2.5 E F0(returns 1; 0 is returned otherwise.)
+2.5 E F1(local)108 249.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name)
+-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 261.6 S
+2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06
+(ariable named)-.25 F F2(name)2.92 E F0 .06(is created, and assigned)
+2.74 F F2(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0
+.06(can be)2.56 F(an)144 273.6 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
+(he options accepted by)-3.152 F F1(declar)3.152 E(e)-.18 E F0 5.652(.W)
+C(hen)-5.652 E F1(local)3.152 E F0 .653
(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-213.6 Q F1(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861
-(isible scope restricted to that function and its children.).15 F -.4
-(Wi)5.861 G .861(th no operands,).4 F F2(local)144 225.6 Q F0 1.165
-(writes a list of local v)3.665 F 1.165
+285.6 Q F2(name)3.721 E F0 .861(to ha)3.541 F 1.161 -.15(ve a v)-.2 H
+.861(isible scope restricted to that function and its children.).15 F
+-.4(Wi)5.86 G .86(th no operands,).4 F F1(local)144 297.6 Q F0 1.164
+(writes a list of local v)3.664 F 1.165
(ariables to the standard output.)-.25 F 1.165(It is an error to use)
-6.165 F F2(local)3.664 E F0 1.164(when not)3.664 F .232
-(within a function.)144 237.6 R .233(The return status is 0 unless)5.232
-F F2(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
--.25(va)-.4 G(lid).25 E F1(name)3.093 E F0(is)2.913 E(supplied, or)144
-249.6 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2
-(logout)108 266.4 Q F0(Exit a login shell.)9.33 E F2(map\214le)108 283.2
-Q F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1
-(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5(][)C F2
-<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>
--2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)
-2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A F2 -.18(re)108 295.2 S
-(adarray).18 E F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>
--2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5
-(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C
-F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1
-(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A 1.006
-(Read lines from the standard input into array v)144 307.2 R(ariable)
--.25 E F1(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G
-1.006(rom \214le descriptor)-3.506 F F1(fd)3.506 E F0 1.005(if the)3.506
-F F2<ad75>3.505 E F0 1.086(option is supplied.)144 319.2 R 1.086(The v)
-6.086 F(ariable)-.25 E F2(MAPFILE)3.586 E F0 1.086(is the def)3.586 F
-(ault)-.1 E F1(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087
-(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo)
-144 331.2 Q(wing meanings:)-.25 E F2<ad6e>144 343.2 Q F0(Cop)24.74 E 2.5
-(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18
-F F1(count)2.5 E F0(is 0, all lines are copied.)2.5 E F2<ad4f>144 355.2
-Q F0(Be)22.52 E(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0
-(at inde)2.82 E(x)-.15 E F1(origin)2.5 E F0 5(.T).24 G(he def)-5 E
-(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2<ad73>144 367.2
-Q F0(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2
-<ad74>144 379.2 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H
-(railing line from each line read.).15 E F2<ad75>144 391.2 Q F0
-(Read lines from \214le descriptor)24.74 E F1(fd)2.5 E F0
-(instead of the standard input.)2.5 E F2<ad43>144 403.2 Q F0(Ev)23.08 E
-(aluate)-.25 E F1(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F1(quantum)
-2.5 E F0(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F0
-(option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2<ad63>144 415.2
-Q F0(Specify the number of lines read between each call to)25.86 E F1
-(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 432 Q F2<ad43>2.968 E F0 .467
-(is speci\214ed without)2.967 F F2<ad63>2.967 E F0 2.967(,t)C .467
-(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F1
+6.165 F F1(local)3.665 E F0 1.165(when not)3.665 F .233
+(within a function.)144 309.6 R .233(The return status is 0 unless)5.233
+F F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
+-.25(va)-.4 G(lid).25 E F2(name)3.092 E F0(is)2.912 E(supplied, or)144
+321.6 Q F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1
+(logout)108 338.4 Q F0(Exit a login shell.)9.33 E F1(map\214le)108 355.2
+Q F0([)2.5 E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2
+(origin)2.5 E F0 2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1
+<ad74>-2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>
+-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)
+2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A F1 -.18(re)108 367.2 S
+(adarray).18 E F0([)2.5 E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>
+-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5
+(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C
+F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2
+(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A 1.006
+(Read lines from the standard input into array v)144 379.2 R(ariable)
+-.25 E F2(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G
+1.006(rom \214le descriptor)-3.506 F F2(fd)3.506 E F0 1.006(if the)3.506
+F F1<ad75>3.506 E F0 1.087(option is supplied.)144 391.2 R 1.087(The v)
+6.087 F(ariable)-.25 E F1(MAPFILE)3.587 E F0 1.086(is the def)3.587 F
+(ault)-.1 E F2(arr)3.586 E(ay)-.15 E F0 6.086(.O)C 1.086
+(ptions, if supplied, ha)-6.086 F 1.386 -.15(ve t)-.2 H(he).15 E(follo)
+144 403.2 Q(wing meanings:)-.25 E F1<ad6e>144 415.2 Q F0(Cop)24.74 E 2.5
+(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18
+F F2(count)2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 427.2
+Q F0(Be)22.52 E(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0
+(at inde)2.82 E(x)-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E
+(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 439.2
+Q F0(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 451.2 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H
+(railing line from each line read.).15 E F1<ad75>144 463.2 Q F0
+(Read lines from \214le descriptor)24.74 E F2(fd)2.5 E F0
+(instead of the standard input.)2.5 E F1<ad43>144 475.2 Q F0(Ev)23.08 E
+(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2(quantum)
+2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
+(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 487.2
+Q F0(Specify the number of lines read between each call to)25.86 E F2
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 504 Q F1<ad43>2.967 E F0 .467
+(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
+(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F 1.22(plied the inde)144 444 R 3.72(xo)-.15 G
+(luated, it is sup-).25 F 1.22(plied the inde)144 516 R 3.72(xo)-.15 G
3.72(ft)-3.72 G 1.22(he ne)-3.72 F 1.22
(xt array element to be assigned as an additional ar)-.15 F(gument.)-.18
-E F1(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 456 S
+E F2(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 528 S
(luated after the line is read b).25 E
(ut before the array element is assigned.)-.2 E
-(If not supplied with an e)144 472.8 Q(xplicit origin,)-.15 E F2
-(map\214le)2.5 E F0(will clear)2.5 E F1(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F2(map\214le)144 489.6 Q F0 .996
-(returns successfully unless an in)3.496 F -.25(va)-.4 G .996
-(lid option or option ar).25 F .995(gument is supplied, or)-.18 F F1
-(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 501.6 Q -.25(va)-.4 G
-(lid or unassignable.).25 E F2(popd)108 518.4 Q F0<5bad>2.5 E F2(n)A F0
-2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A(Remo)144
-530.4 Q -.15(ve)-.15 G 2.799(se).15 G .299
-(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar)
-.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3
-(he top directory from the)-2.799 F 1.479(stack, and performs a)144
-542.4 R F2(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
-(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
-F(wing)-.25 E(meanings:)144 554.4 Q F2<ad6e>144 566.4 Q F0 .551
-(Suppresses the normal change of directory when remo)24.74 F .551
-(ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 578.4 Q F2(+)144 590.4 Q F1(n)A
-F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F1(n)2.64 E F0
+(If not supplied with an e)144 544.8 Q(xplicit origin,)-.15 E F1
+(map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
+(before assigning to it.)2.5 E F1(map\214le)144 561.6 Q F0 .995
+(returns successfully unless an in)3.495 F -.25(va)-.4 G .996
+(lid option or option ar).25 F .996(gument is supplied, or)-.18 F F2
+(arr)3.496 E(ay)-.15 E F0(is)3.496 E(in)144 573.6 Q -.25(va)-.4 G
+(lid or unassignable.).25 E F1(popd)108 590.4 Q F0<5bad>2.5 E F1(n)A F0
+2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144
+602.4 Q -.15(ve)-.15 G 2.8(se).15 G .3(ntries from the directory stack.)
+-2.8 F -.4(Wi)5.299 G .299(th no ar).4 F .299(guments, remo)-.18 F -.15
+(ve)-.15 G 2.799(st).15 G .299(he top directory from the)-2.799 F 1.478
+(stack, and performs a)144 614.4 R F1(cd)3.978 E F0 1.479(to the ne)
+3.978 F 3.979(wt)-.25 G 1.479(op directory)-3.979 F 6.479(.A)-.65 G -.18
+(rg)-6.479 G 1.479(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H
+1.479(he follo).15 F(wing)-.25 E(meanings:)144 626.4 Q F1<ad6e>144 638.4
+Q F0 .551(Suppresses the normal change of directory when remo)24.74 F
+.551(ving directories from the stack, so)-.15 F
+(that only the stack is manipulated.)180 650.4 Q F1(+)144 662.4 Q F2(n)A
+F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0
.14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
-F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-602.4 S 2.5(re).15 G(xample:)-2.65 E/F5 10/Courier@0 SF(popd +0)2.5 E F0
+F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+674.4 S 2.5(re).15 G(xample:)-2.65 E/F5 10/Courier@0 SF(popd +0)2.5 E F0
(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
--.65 E F5(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 614.4 Q F1(n)A F0
-(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0
-1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
-F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
-626.4 R(or e)-.15 E(xample:)-.15 E F5(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F5(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 643.2 R F2(popd)
-3.144 E F0 .644(command is successful, a)3.144 F F2(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F2(popd)5.643
-E F0 .415(returns f)144 655.2 R .415(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.916
-(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 667.2 Q
-(ails.)-.1 E F2(printf)108 684 Q F0([)2.5 E F2<ad76>A F1(var)2.5 E F0(])
-A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A .372
-(Write the formatted)144 696 R F1(ar)2.872 E(guments)-.37 E F0 .372
-(to the standard output under the control of the)2.872 F F1(format)2.872
-E F0 5.372(.T)C(he)-5.372 E F1(format)2.872 E F0 1.804(is a character s\
-tring which contains three types of objects: plain characters, which ar\
-e simply)144 708 R 1.859
-(copied to standard output, character escape sequences, which are con)
-144 720 R -.15(ve)-.4 G 1.858(rted and copied to the).15 F(GNU Bash-4.1)
-72 768 Q(2009 September 16)135.125 E(58)185.115 E 0 Cg EP
+-.65 E F5(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 686.4 Q F2(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
+1.259(th entry counting from the right of the list sho)B 1.259(wn by)
+-.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
+(zero. F)180 698.4 R(or e)-.15 E(xample:)-.15 E F5(popd -0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
+E F5(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
+715.2 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1
+(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
+3.143 F F1(popd)5.644 E F0 2.29(returns f)144 727.2 R 2.29
+(alse if an in)-.1 F -.25(va)-.4 G 2.289
+(lid option is encountered, the directory stack is empty).25 F 4.789
+(,an)-.65 G(on-e)-4.789 E(xistent)-.15 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(58)192.895 E 0 Cg EP
%%Page: 59 59
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 1.171(standard output, and format speci\214cations, each of whic\
-h causes printing of the ne)144 84 R 1.172(xt successi)-.15 F -.15(ve)
--.25 G/F1 10/Times-Italic@0 SF(ar)144 96 Q(gument)-.37 E F0 6.274(.I)C
-3.774(na)-6.274 G 1.274(ddition to the standard)-3.774 F F1(printf)3.774
-E F0 1.274(\(1\) formats,)B/F2 10/Times-Bold@0 SF(%b)3.774 E F0(causes)
-3.774 E F2(printf)3.774 E F0 1.273(to e)3.774 F 1.273(xpand backslash)
--.15 F .619(escape sequences in the corresponding)144 108 R F1(ar)3.119
-E(gument)-.37 E F0(\(e)3.119 E .619(xcept that)-.15 F F2(\\c)3.119 E F0
-.62(terminates output, backslashes in)3.119 F F2<5c08>144 120 Q F0(,)A
-F2(\\")2.985 E F0 2.985(,a)C(nd)-2.985 E F2(\\?)2.985 E F0 .485
-(are not remo)2.985 F -.15(ve)-.15 G .485(d, and octal escapes be).15 F
-.484(ginning with)-.15 F F2(\\0)2.984 E F0 .484
-(may contain up to four digits\),)2.984 F(and)144 132 Q F2(%q)2.567 E F0
-(causes)2.567 E F2(printf)2.567 E F0 .067(to output the corresponding)
-2.567 F F1(ar)2.568 E(gument)-.37 E F0 .068
-(in a format that can be reused as shell)2.568 F(input.)144 144 Q(The)
-144 168 Q F2<ad76>2.904 E F0 .404
-(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E
-F1(var)2.904 E F0 .404(rather than being printed to the)2.904 F
-(standard output.)144 180 Q(The)144 204 Q F1(format)3.423 E F0 .923
-(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E
-(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
-3.423 E F0 .924(requires more)3.424 F F1(ar)144 216 Q(guments)-.37 E F0
-.033(than are supplied, the e)2.534 F .033
+-.35 E(directory stack entry is speci\214ed, or the directory change f)
+144 84 Q(ails.)-.1 E/F1 10/Times-Bold@0 SF(printf)108 100.8 Q F0([)2.5 E
+F1<ad76>A/F2 10/Times-Italic@0 SF(var)2.5 E F0(])A F2(format)2.5 E F0([)
+2.5 E F2(ar)A(guments)-.37 E F0(])A .372(Write the formatted)144 112.8 R
+F2(ar)2.872 E(guments)-.37 E F0 .372
+(to the standard output under the control of the)2.872 F F2(format)2.872
+E F0 5.372(.T)C(he)-5.372 E F2(format)2.872 E F0 1.804(is a character s\
+tring which contains three types of objects: plain characters, which ar\
+e simply)144 124.8 R .158
+(copied to standard output, character escape sequences, which are con)
+144 136.8 R -.15(ve)-.4 G .159(rted and copied to the stan-).15 F .499(\
+dard output, and format speci\214cations, each of which causes printing\
+ of the ne)144 148.8 R .499(xt successi)-.15 F -.15(ve)-.25 G F2(ar)
+3.149 E(gu-)-.37 E(ment)144 160.8 Q F0 5.423(.I)C 2.923(na)-5.423 G .423
+(ddition to the standard)-2.923 F F2(printf)2.923 E F0 .424
+(\(1\) formats,)B F1(%b)2.924 E F0(causes)2.924 E F1(printf)2.924 E F0
+.424(to e)2.924 F .424(xpand backslash escape)-.15 F .977
+(sequences in the corresponding)144 172.8 R F2(ar)3.476 E(gument)-.37 E
+F0(\(e)3.476 E .976(xcept that)-.15 F F1(\\c)3.476 E F0 .976
+(terminates output, backslashes in)3.476 F F1<5c08>3.476 E F0(,)A F1
+(\\")3.476 E F0(,)A(and)144 184.8 Q F1(\\?)3.421 E F0 .921(are not remo)
+3.421 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
+(ginning with)-.15 F F1(\\0)3.422 E F0 .922
+(may contain up to four digits\), and)3.422 F F1(%q)144 196.8 Q F0
+(causes)3.631 E F1(printf)3.631 E F0 1.131(to output the corresponding)
+3.631 F F2(ar)3.631 E(gument)-.37 E F0 1.13
+(in a format that can be reused as shell)3.631 F(input.)144 208.8 Q(The)
+144 232.8 Q F1<ad76>2.903 E F0 .404
+(option causes the output to be assigned to the v)2.903 F(ariable)-.25 E
+F2(var)2.904 E F0 .404(rather than being printed to the)2.904 F
+(standard output.)144 244.8 Q(The)144 268.8 Q F2(format)3.424 E F0 .923
+(is reused as necessary to consume all of the)3.424 F F2(ar)3.423 E
+(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
+3.423 E F0 .923(requires more)3.423 F F2(ar)144 280.8 Q(guments)-.37 E
+F0 .033(than are supplied, the e)2.533 F .033
(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
-.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 228 Q(The return v)5 E
-(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F2(pushd)
-108 244.8 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C
-<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 256.8 Q F0([)2.5 E F2<ad6e>A F0
-2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
-irectory stack, or rotates the stack, making the ne)144 268.8 R 3.14(wt)
--.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 280.8 R 1.316
-(orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315
-(guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315
-(irectories and)-3.815 F .871
-(returns 0, unless the directory stack is empty)144 292.8 R 5.871(.A)
--.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15
-(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 304.8 Q
-F2<ad6e>144 316.8 Q F0 .902(Suppresses the normal change of directory w\
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 292.8 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
+108 309.6 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
+<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 321.6 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
+rectory stack, or rotates the stack, making the ne)144 333.6 R 3.139(wt)
+-.25 G .639(op of the)-3.139 F 1.315(stack the current w)144 345.6 R
+1.315(orking directory)-.1 F 6.315(.W)-.65 G 1.315(ith no ar)-6.715 F
+1.315(guments, e)-.18 F 1.316(xchanges the top tw)-.15 F 3.816(od)-.1 G
+1.316(irectories and)-3.816 F .872
+(returns 0, unless the directory stack is empty)144 357.6 R 5.871(.A)
+-.65 G -.18(rg)-5.871 G .871(uments, if supplied, ha).18 F 1.171 -.15
+(ve t)-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144 369.6 Q
+F1<ad6e>144 381.6 Q F0 .902(Suppresses the normal change of directory w\
hen adding directories to the stack, so that)24.74 F
-(only the stack is manipulated.)180 328.8 Q F2(+)144 340.8 Q F1(n)A F0
-1.267(Rotates the stack so that the)25.3 F F1(n)3.767 E F0 1.268
-(th directory \(counting from the left of the list sho)B 1.268(wn by)
--.25 F F2(dirs)180 352.8 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F2<ad>144 364.8 Q F1(n)A F0
-.92(Rotates the stack so that the)25.3 F F1(n)3.42 E F0 .92
+(only the stack is manipulated.)180 393.6 Q F1(+)144 405.6 Q F2(n)A F0
+1.268(Rotates the stack so that the)25.3 F F2(n)3.768 E F0 1.267
+(th directory \(counting from the left of the list sho)B 1.267(wn by)
+-.25 F F1(dirs)180 417.6 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F1<ad>144 429.6 Q F2(n)A F0
+.92(Rotates the stack so that the)25.3 F F2(n)3.42 E F0 .92
(th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F2(dirs)180 376.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1(dir)144.35 388.8 Q F0(Adds)23.98 E F1(dir)2.85 E F0
+F F1(dirs)180 441.6 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F2(dir)144.35 453.6 Q F0(Adds)23.98 E F2(dir)2.85 E F0
(to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
-G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 405.6
-R F2(pushd)2.988 E F0 .488(command is successful, a)2.988 F F2(dirs)
-2.988 E F0 .488(is performed as well.)2.988 F .489
-(If the \214rst form is used,)5.488 F F2(pushd)2.989 E F0 1.04
-(returns 0 unless the cd to)144 417.6 R F1(dir)3.89 E F0 -.1(fa)4.27 G
-3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.539 E F0
-1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144
-429.6 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\
-ment is speci\214ed, or the directory change to the)-.15 F
-(speci\214ed ne)144 441.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
-(ails.)-.1 E F2(pwd)108 458.4 Q F0([)2.5 E F2(\255LP)A F0(])A .845
-(Print the absolute pathname of the current w)144 470.4 R .845
-(orking directory)-.1 F 5.844(.T)-.65 G .844
-(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
-482.4 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2
-.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2
-(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
-(enabled. If)144 494.4 R(the)3.264 E F2<ad4c>3.264 E F0 .763
-(option is used, the pathname printed may contain symbolic links.)3.264
-F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 506.4 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 518.4 Q F2 -.18(re)108 535.2 S
-(ad).18 E F0([)2.5 E F2(\255ers)A F0 2.5(][)C F2<ad61>-2.5 E F1(aname)
-2.5 E F0 2.5(][)C F2<ad64>-2.5 E F1(delim)2.5 E F0 2.5(][)C F2<ad69>-2.5
-E F1(te)2.5 E(xt)-.2 E F0 2.5(][)C F2<ad6e>-2.5 E F1(nc)2.5 E(har)-.15 E
-(s)-.1 E F0 2.5(][)C F2<ad70>-2.5 E F1(pr)2.5 E(ompt)-.45 E F0 2.5(][)C
-F2<ad74>-2.5 E F1(timeout)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E
-F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .516(One line is read from the\
- standard input, or from the \214le descriptor)144 547.2 R F1(fd)3.016 E
-F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 559.2 Q
-F2<ad75>2.538 E F0 .038(option, and the \214rst w)2.538 F .038
-(ord is assigned to the \214rst)-.1 F F1(name)2.539 E F0 2.539(,t).18 G
-.039(he second w)-2.539 F .039(ord to the second)-.1 F F1(name)2.539 E
-F0(,).18 E .42(and so on, with lefto)144 571.2 R -.15(ve)-.15 G 2.92(rw)
-.15 G .42(ords and their interv)-3.02 F .42
-(ening separators assigned to the last)-.15 F F1(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 583.2 R .54(wer w)-.25
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .489(If the)144 470.4
+R F1(pushd)2.989 E F0 .489(command is successful, a)2.989 F F1(dirs)
+2.988 E F0 .488(is performed as well.)2.988 F .488
+(If the \214rst form is used,)5.488 F F1(pushd)2.988 E F0 1.039
+(returns 0 unless the cd to)144 482.4 R F2(dir)3.889 E F0 -.1(fa)4.269 G
+3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F1(pushd)3.54 E F0
+1.04(returns 0 unless the directory)3.54 F .847(stack is empty)144 494.4
+R 3.347(,an)-.65 G(on-e)-3.347 E .847(xistent directory stack element i\
+s speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
+506.4 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F1(pwd)108
+523.2 Q F0([)2.5 E F1(\255LP)A F0(])A .844
+(Print the absolute pathname of the current w)144 535.2 R .845
+(orking directory)-.1 F 5.845(.T)-.65 G .845
+(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
+547.2 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
+(set)2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263
+(enabled. If)144 559.2 R(the)3.263 E F1<ad4c>3.263 E F0 .763
+(option is used, the pathname printed may contain symbolic links.)3.263
+F .764(The return)5.764 F 1.36(status is 0 unless an error occurs while\
+ reading the name of the current directory or an in)144 571.2 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 583.2 Q F1 -.18(re)108 600 S(ad)
+.18 E F0([)3.816 E F1(\255ers)A F0 3.816(][)C F1<ad61>-3.816 E F2(aname)
+3.816 E F0 3.816(][)C F1<ad64>-3.816 E F2(delim)3.816 E F0 3.816(][)C F1
+<ad69>-3.816 E F2(te)3.816 E(xt)-.2 E F0 3.816(][)C F1<ad6e>-3.816 E F2
+(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1<ad4e>-3.817 E F2(nc)
+3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1<ad70>-3.817 E F2(pr)3.817 E
+(ompt)-.45 E F0 3.817(][)C F1<ad74>-3.817 E F2(timeout)3.817 E F0 3.817
+(][)C F1<ad75>-3.817 E F2(fd)3.817 E F0(])A([)108 612 Q F2(name)A F0
+(...])2.5 E .516(One line is read from the standard input, or from the \
+\214le descriptor)144 624 R F2(fd)3.016 E F0 .516(supplied as an ar)
+3.016 F .517(gument to)-.18 F(the)144 636 Q F1<ad75>2.539 E F0 .039
+(option, and the \214rst w)2.539 F .038(ord is assigned to the \214rst)
+-.1 F F2(name)2.538 E F0 2.538(,t).18 G .038(he second w)-2.538 F .038
+(ord to the second)-.1 F F2(name)2.538 E F0(,).18 E .42
+(and so on, with lefto)144 648 R -.15(ve)-.15 G 2.92(rw).15 G .42
+(ords and their interv)-3.02 F .42
+(ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 660 R .541(wer w)-.25
F .541(ords read from the input stream than names, the remaining names \
-are assigned empty)-.1 F -.25(va)144 595.2 S 2.511(lues. The).25 F .011
+are assigned empty)-.1 F -.25(va)144 672 S 2.51(lues. The).25 F .011
(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
(are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
-(backslash character \()2.511 F F2(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 607.2 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
-1.891(pecial meaning for the ne).15 F 1.891
+(backslash character \()2.511 F F1(\\)A F0 2.511(\)m)C(ay)-2.511 E 1.891
+(be used to remo)144 684 R 2.191 -.15(ve a)-.15 H 2.191 -.15(ny s).15 H
+1.891(pecial meaning for the ne).15 F 1.89
(xt character read and for line continuation.)-.15 F
-(Options, if supplied, ha)144 619.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 631.2 Q F1(aname)2.5 E F0 1.05(The w)
-180 643.2 R 1.049
-(ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F1(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F1(aname)180.33 655.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
--.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0
-(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 667.2 Q F1(delim)2.5 E
-F0(The \214rst character of)180 679.2 Q F1(delim)2.5 E F0
-(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
-F2<ad65>144 691.2 Q F0 .372
-(If the standard input is coming from a terminal,)25.86 F F2 -.18(re)
-2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
--.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
-(to obtain the line.)180 703.2 R .218
-(Readline uses the current \(or def)5.218 F .218
-(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
-(acti)180 715.2 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
-(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(59)185.115 E 0 Cg EP
+(Options, if supplied, ha)144 696 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E
+(59)192.895 E 0 Cg EP
%%Page: 60 60
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF<ad69>144 84 Q/F2 10/Times-Italic@0 SF(te)
-2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715 G(adline).18 E F0 .216
-(is being used to read the line,)2.715 F F2(te)2.716 E(xt)-.2 E F0 .216
-(is placed into the editing b)2.716 F(uf)-.2 E .216(fer before edit-)
--.25 F(ing be)180 96 Q(gins.)-.15 E F1<ad6e>144 108 Q F2(nc)2.5 E(har)
--.15 E(s)-.1 E F1 -.18(re)180 120 S(ad).18 E F0 1.395
-(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E F0 1.395
-(characters rather than w)3.895 F 1.394(aiting for a complete line of)
--.1 F(input.)180 132 Q F1<ad70>144 144 Q F2(pr)2.5 E(ompt)-.45 E F0
-(Display)180 156 Q F2(pr)3.66 E(ompt)-.45 E F0 1.161(on standard error)
-3.66 F 3.661(,w)-.4 G 1.161(ithout a trailing ne)-3.661 F 1.161
-(wline, before attempting to read)-.25 F(an)180 168 Q 2.5(yi)-.15 G 2.5
+-.35 E/F1 10/Times-Bold@0 SF<ad61>144 84 Q/F2 10/Times-Italic@0 SF
+(aname)2.5 E F0 1.049(The w)180 96 R 1.049
+(ords are assigned to sequential indices of the array v)-.1 F(ariable)
+-.25 E F2(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F2
+(aname)180.33 108 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25
+(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0(ar)2.5
+E(guments are ignored.)-.18 E F1<ad64>144 120 Q F2(delim)2.5 E F0
+(The \214rst character of)180 132 Q F2(delim)2.5 E F0
+(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
+F1<ad65>144 144 Q F0 .373
+(If the standard input is coming from a terminal,)25.86 F F1 -.18(re)
+2.873 G(adline).18 E F0(\(see)2.873 E/F3 9/Times-Bold@0 SF(READLINE)
+2.872 E F0(abo)2.622 E -.15(ve)-.15 G 2.872(\)i).15 G 2.872(su)-2.872 G
+(sed)-2.872 E .218(to obtain the line.)180 156 R .218
+(Readline uses the current \(or def)5.218 F .218
+(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
+(acti)180 168 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E F1
+<ad69>144 180 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.716 G
+(adline).18 E F0 .216(is being used to read the line,)2.716 F F2(te)
+2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
+.215(fer before edit-)-.25 F(ing be)180 192 Q(gins.)-.15 E F1<ad6e>144
+204 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 216 S(ad).18 E F0
+1.394(returns after reading)3.894 F F2(nc)3.894 E(har)-.15 E(s)-.1 E F0
+1.395(characters rather than w)3.894 F 1.395
+(aiting for a complete line of)-.1 F(input, b)180 228 Q
+(ut honor a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15 E
+(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1
+<ad4e>144 240 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 252 S(ad)
+.18 E F0 1.269(returns after reading e)3.77 F(xactly)-.15 E F2(nc)3.769
+E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.269
+(aiting for a complete)-.1 F
+(line of input, unless EOF is encountered or)180 264 Q F1 -.18(re)2.5 G
+(ad).18 E F0(times out.)2.5 E(An)5 E 2.5(yd)-.15 G(elimiter is ignored.)
+-2.5 E F1<ad70>144 276 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 288 Q F2
+(pr)3.66 E(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G
+1.161(ithout a trailing ne)-3.661 F 1.161
+(wline, before attempting to read)-.25 F(an)180 300 Q 2.5(yi)-.15 G 2.5
(nput. The)-2.5 F
(prompt is displayed only if input is coming from a terminal.)2.5 E F1
-<ad72>144 180 Q F0 .544(Backslash does not act as an escape character)
+<ad72>144 312 Q F0 .544(Backslash does not act as an escape character)
25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
--5.543 F(the line.)180 192 Q(In particular)5 E 2.5(,ab)-.4 G
+-5.543 F(the line.)180 324 Q(In particular)5 E 2.5(,ab)-.4 G
(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
--.25 E F1<ad73>144 204 Q F0(Silent mode.)26.41 E
+-.25 E F1<ad73>144 336 Q F0(Silent mode.)26.41 E
(If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 216 Q F2(timeout)2.5 E F0(Cause)180 228 Q F1 -.18(re)3.548 G
+<ad74>144 348 Q F2(timeout)2.5 E F0(Cause)180 360 Q F1 -.18(re)3.548 G
(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
(ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 240 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
+180 372 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
(may be a decimal number with a fractional portion follo)3.497 F(wing)
--.25 E .576(the decimal point.)180 252 R .576(This option is only ef)
+-.25 E .576(the decimal point.)180 384 R .576(This option is only ef)
5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
-(pipe, or other special \214le; it has no ef)180 264 R .142
+(pipe, or other special \214le; it has no ef)180 396 R .142
(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
-F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 276 S(ad).18 E
+F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 408 S(ad).18 E
F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
-(ailure otherwise.)-2.713 F(The e)180 288 Q
+(ailure otherwise.)-2.713 F(The e)180 420 Q
(xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
-E F1<ad75>144 300 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
-14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 316.8 R F2(names)3.052 E F0
+E F1<ad75>144 432 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
+14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 448.8 R F2(names)3.052 E F0
.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
--.25 E/F3 9/Times-Bold@0 SF(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF
-(.)A F0 .191(The return code is zero,)4.691 F 1.343
-(unless end-of-\214le is encountered,)144 328.8 R F1 -.18(re)3.843 G(ad)
+-.25 E F3(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191
+(The return code is zero,)4.691 F 1.343
+(unless end-of-\214le is encountered,)144 460.8 R F1 -.18(re)3.843 G(ad)
.18 E F0 1.343
(times out \(in which case the return code is greater than)3.843 F
-(128\), or an in)144 340.8 Q -.25(va)-.4 G
+(128\), or an in)144 472.8 Q -.25(va)-.4 G
(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
-<ad75>2.5 E F0(.)A F1 -.18(re)108 357.6 S(adonly).18 E F0([)2.5 E F1
+<ad75>2.5 E F0(.)A F1 -.18(re)108 489.6 S(adonly).18 E F0([)2.5 E F1
(\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
-F0 2.5(].)C(..])-2.5 E .77(The gi)144 369.6 R -.15(ve)-.25 G(n).15 E F2
+F0 2.5(].)C(..])-2.5 E .77(The gi)144 501.6 R -.15(ve)-.25 G(n).15 E F2
(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
(alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 381.6 R
+(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 513.6 R
1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
(option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 393.6 Q 3.334(ed. The)
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 525.6 Q 3.334(ed. The)
-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .537(ables to associati)144 405.6 R .837 -.15(ve a)-.25 H 3.037
+-.25 E .537(ables to associati)144 537.6 R .837 -.15(ve a)-.25 H 3.037
(rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
(guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
3.038 E F0 .538(option is supplied, a list)3.038 F .081
-(of all readonly names is printed.)144 417.6 R(The)5.081 E F1<ad70>2.581
+(of all readonly names is printed.)144 549.6 R(The)5.081 E F1<ad70>2.581
E F0 .08(option causes output to be displayed in a format that may)2.581
-F 1.176(be reused as input.)144 429.6 R 1.176(If a v)6.176 F 1.176
+F 1.176(be reused as input.)144 561.6 R 1.176(If a v)6.176 F 1.176
(ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177
-(ariable is set to)-.25 F F2(wor)144 441.6 Q(d)-.37 E F0 6.206(.T)C
+(ariable is set to)-.25 F F2(wor)144 573.6 Q(d)-.37 E F0 6.206(.T)C
1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205
(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205
-(is not a)3.975 F -.25(va)144 453.6 S(lid shell v).25 E
+(is not a)3.975 F -.25(va)144 585.6 S(lid shell v).25 E
(ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
-(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 470.4 S
+(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 602.4 S
(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586
-(Causes a function to e)144 482.4 R .587(xit with the return v)-.15 F
+(Causes a function to e)144 614.4 R .587(xit with the return v)-.15 F
.587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335
-(that of the last command e)144 494.4 R -.15(xe)-.15 G 1.335
+(that of the last command e)144 626.4 R -.15(xe)-.15 G 1.335
(cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe)
-144 506.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
+144 638.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
-(cuting that script).15 F .246(and return either)144 518.4 R F2(n)3.106
+(cuting that script).15 F .246(and return either)144 650.4 R F2(n)3.106
E F0 .246(or the e)2.986 F .246(xit status of the last command e)-.15 F
-.15(xe)-.15 G .246(cuted within the script as the e).15 F .245
-(xit sta-)-.15 F .081(tus of the script.)144 530.4 R .082
+(xit sta-)-.15 F .081(tus of the script.)144 662.4 R .082
(If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082
-(he return sta-)-2.582 F 2.306(tus is f)144 542.4 R 4.806(alse. An)-.1 F
+(he return sta-)-2.582 F 2.306(tus is f)144 674.4 R 4.806(alse. An)-.1 F
4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN)
4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e)
.15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
-144 554.4 Q F1(set)108 571.2 Q F0([)2.5 E F1
+144 686.4 Q F1(set)108 703.2 Q F0([)2.5 E F1
(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5
-E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 583.2 Q F0
-([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)
-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 595.2 S
-.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.836(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 607.2
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 619.2 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
-(ariables are listed.)-.25 F .447
+E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(60)192.895 E 0 Cg EP
+%%Page: 61 61
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(set)108 84 Q F0([)2.5 E F1
+(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E/F2 10/Times-Italic@0 SF
+(option)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144
+96 S .835(thout options, the name and v).4 F .835(alue of each shell v)
+-.25 F .836(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 108 R
+3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783(riables cannot be)
+.25 F 2.946(reset. In)144 120 R F2 .447(posix mode)2.946 F F0 2.947(,o)C
+.447(nly shell v)-2.947 F .447(ariables are listed.)-.25 F .447
(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 631.2 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
-(after option processing are treated as v)144 643.2 R 1.624
+(locale. When)144 132 R 1.031(options are speci\214ed, the)3.531 F 3.531
+(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)-.2 F
+3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
+(after option processing are treated as v)144 144 R 1.624
(alues for the positional parameters and are assigned, in)-.25 F(order)
-144 655.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
-F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
--.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 667.2 Q
-F0 .54(Automatically mark v)29.3 F .539
+144 156 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A F1
+2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3 -.15
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 168 Q F0
+.54(Automatically mark v)29.3 F .539
(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 679.2 Q
-(vironment of subsequent commands.)-.4 E F1<ad62>144 691.2 Q F0 .131
+.539(xport to)-.15 F(the en)184 180 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 192 Q F0 .131
(Report the status of terminated background jobs immediately)28.74 F
2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 703.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 715.2 Q F0
-.511(Exit immediately if a)29.86 F F2(pipeline)3.011 E F0 .511
+(primary prompt.)184 204 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)-.25
+H(nly when job control is enabled.).15 E F1<ad65>144 216 Q F0 .511
+(Exit immediately if a)29.86 F F2(pipeline)3.011 E F0 .511
(\(which may consist of a single)3.011 F F2 .51(simple command)3.01 F F0
-3.01(\), a)B F2(sub-)3.01 E(shell)184 727.2 Q F0 .872
+3.01(\), a)B F2(sub-)3.01 E(shell)184 228 Q F0 .872
(command enclosed in parentheses, or one of the commands e)3.372 F -.15
-(xe)-.15 G .872(cuted as part of a).15 F(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(60)185.115 E 0 Cg EP
-%%Page: 61 61
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .399(command list enclosed by braces \(see)184 84 R/F1 9
-/Times-Bold@0 SF .399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15
-G 2.899(\)e).15 G .399(xits with a non-zero)-3.049 F 3.968(status. The)
-184 96 R 1.468(shell does not e)3.968 F 1.468(xit if the command that f)
--.15 F 1.468(ails is part of the command list)-.1 F .57
-(immediately follo)184 108 R .57(wing a)-.25 F/F2 10/Times-Bold@0 SF
-(while)3.07 E F0(or)3.07 E F2(until)3.07 E F0 -.1(ke)3.069 G(yw)-.05 E
-.569(ord, part of the test follo)-.1 F .569(wing the)-.25 F F2(if)3.069
-E F0(or)3.069 E F2(elif)3.069 E F0(reserv)184 120 Q .544(ed w)-.15 F
-.544(ords, part of an)-.1 F 3.044(yc)-.15 G .544(ommand e)-3.044 F -.15
-(xe)-.15 G .544(cuted in a).15 F F2(&&)3.044 E F0(or)3.044 E/F3 10
-/Symbol SF<efef>3.044 E F0 .544(list e)3.044 F .544(xcept the command)
--.15 F(follo)184 132 Q 1.231(wing the \214nal)-.25 F F2(&&)3.731 E F0
-(or)3.731 E F3<efef>3.731 E F0 3.731(,a)C 1.531 -.15(ny c)-3.731 H 1.231
-(ommand in a pipeline b).15 F 1.23(ut the last, or if the com-)-.2 F
-(mand')184 144 Q 3.19(sr)-.55 G .69(eturn v)-3.19 F .69
-(alue is being in)-.25 F -.15(ve)-.4 G .69(rted with).15 F F2(!)3.191 E
-F0 5.691(.A)C .691(trap on)-2.5 F F2(ERR)3.191 E F0 3.191(,i)C 3.191(fs)
--3.191 G .691(et, is e)-3.191 F -.15(xe)-.15 G .691(cuted before).15 F
-.687(the shell e)184 156 R 3.186(xits. This)-.15 F .686
-(option applies to the shell en)3.186 F .686
+(xe)-.15 G .872(cuted as part of a).15 F .399
+(command list enclosed by braces \(see)184 240 R/F3 9/Times-Bold@0 SF
+.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
+.399(xits with a non-zero)-3.049 F 3.968(status. The)184 252 R 1.468
+(shell does not e)3.968 F 1.468(xit if the command that f)-.15 F 1.468
+(ails is part of the command list)-.1 F .57(immediately follo)184 264 R
+.57(wing a)-.25 F F1(while)3.07 E F0(or)3.07 E F1(until)3.07 E F0 -.1
+(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .569
+(wing the)-.25 F F1(if)3.069 E F0(or)3.069 E F1(elif)3.069 E F0(reserv)
+184 276 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
+.544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044
+E F0(or)3.044 E/F4 10/Symbol SF<efef>3.044 E F0 .544(list e)3.044 F .544
+(xcept the command)-.15 F(follo)184 288 Q 1.231(wing the \214nal)-.25 F
+F1(&&)3.731 E F0(or)3.731 E F4<efef>3.731 E F0 3.731(,a)C 1.531 -.15
+(ny c)-3.731 H 1.231(ommand in a pipeline b).15 F 1.23
+(ut the last, or if the com-)-.2 F(mand')184 300 Q 3.19(sr)-.55 G .69
+(eturn v)-3.19 F .69(alue is being in)-.25 F -.15(ve)-.4 G .69
+(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR)
+3.191 E F0 3.191(,i)C 3.191(fs)-3.191 G .691(et, is e)-3.191 F -.15(xe)
+-.15 G .691(cuted before).15 F .687(the shell e)184 312 R 3.186
+(xits. This)-.15 F .686(option applies to the shell en)3.186 F .686
(vironment and each subshell en)-.4 F(viron-)-.4 E .658
-(ment separately \(see)184 168 R F2 .659(COMMAND EXECUTION ENVIR)3.159 F
+(ment separately \(see)184 324 R F1 .659(COMMAND EXECUTION ENVIR)3.159 F
(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .659(\), and may).15 F
-(cause subshells to e)184 180 Q(xit before e)-.15 E -.15(xe)-.15 G
-(cuting all the commands in the subshell.).15 E F2<ad66>144 192 Q F0
-(Disable pathname e)30.97 E(xpansion.)-.15 E F2<ad68>144 204 Q F0 2.239
+(cause subshells to e)184 336 Q(xit before e)-.15 E -.15(xe)-.15 G
+(cuting all the commands in the subshell.).15 E F1<ad66>144 348 Q F0
+(Disable pathname e)30.97 E(xpansion.)-.15 E F1<ad68>144 360 Q F0 2.239
(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.238
(re look)-4.738 F 2.238(ed up for e)-.1 F -.15(xe)-.15 G 4.738
-(cution. This).15 F(is)4.738 E(enabled by def)184 216 Q(ault.)-.1 E F2
-<ad6b>144 228 Q F0 .513(All ar)28.74 F .514
+(cution. This).15 F(is)4.738 E(enabled by def)184 372 Q(ault.)-.1 E F1
+<ad6b>144 384 Q F0 .513(All ar)28.74 F .514
(guments in the form of assignment statements are placed in the en)-.18
F .514(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 240 Q F2
-<ad6d>144 252 Q F0 .149(Monitor mode.)25.97 F .149
+(command, not just those that precede the command name.)184 396 Q F1
+<ad6d>144 408 Q F0 .149(Monitor mode.)25.97 F .149
(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .636
-(on systems that support it \(see)184 264 R F1 .636(JOB CONTR)3.136 F
+(on systems that support it \(see)184 420 R F3 .636(JOB CONTR)3.136 F
(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .637
(processes run in a)3.136 F .642
-(separate process group and a line containing their e)184 276 R .641
-(xit status is printed upon their com-)-.15 F(pletion.)184 288 Q F2
-<ad6e>144 300 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F
+(separate process group and a line containing their e)184 432 R .641
+(xit status is printed upon their com-)-.15 F(pletion.)184 444 Q F1
+<ad6e>144 456 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F
-.15(xe)-.15 G .652(cute them.).15 F .653
(This may be used to check a shell script for)5.652 F(syntax errors.)184
-312 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F2<ad6f>144 324 Q/F4 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
-184 336 Q F4(option\255name)2.5 E F0(can be one of the follo)2.5 E
-(wing:)-.25 E F2(allexport)184 348 Q F0(Same as)224 360 Q F2<ad61>2.5 E
-F0(.)A F2(braceexpand)184 372 Q F0(Same as)224 384 Q F2<ad42>2.5 E F0(.)
-A F2(emacs)184 396 Q F0 .089
-(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
--.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 408 R -.15(ve)-.25 G 3.45(,u).15 G .95
-(nless the shell is started with the)-3.45 F F2(\255\255noediting)3.45 E
-F0 2.5(option. This)224 420 R(also af)2.5 E(fects the editing interf)
--.25 E(ace used for)-.1 E F2 -.18(re)2.5 G(ad \255e).18 E F0(.)A F2
-(errtrace)184 432 Q F0(Same as)5.03 E F2<ad45>2.5 E F0(.)A F2(functrace)
-184 444 Q F0(Same as)224 456 Q F2<ad54>2.5 E F0(.)A F2(err)184 468 Q
-(exit)-.18 E F0(Same as)11.31 E F2<ad65>2.5 E F0(.)A F2(hashall)184 480
-Q F0(Same as)9.43 E F2<ad68>2.5 E F0(.)A F2(histexpand)184 492 Q F0
-(Same as)224 504 Q F2<ad48>2.5 E F0(.)A F2(history)184 516 Q F0 .587
-(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
-(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F1(HIST)3.087 E
-(OR)-.162 E(Y)-.315 E/F5 9/Times-Roman@0 SF(.)A F0 .587(This option is)
-5.087 F(on by def)224 528 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
-(hells.).15 E F2(ignor)184 540 Q(eeof)-.18 E F0 1.656(The ef)224 552 R
-1.656(fect is as if the shell command)-.25 F/F6 10/Courier@0 SF
-(IGNOREEOF=10)4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted)
-.15 E(\(see)224 564 Q F2(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
-(ve)-.15 G(\).).15 E F2 -.1(ke)184 576 S(yw).1 E(ord)-.1 E F0(Same as)
-224 588 Q F2<ad6b>2.5 E F0(.)A F2(monitor)184 600 Q F0(Same as)5.56 E F2
-<ad6d>2.5 E F0(.)A F2(noclob)184 612 Q(ber)-.1 E F0(Same as)224 624 Q F2
-<ad43>2.5 E F0(.)A F2(noexec)184 636 Q F0(Same as)11.12 E F2<ad6e>2.5 E
-F0(.)A F2(noglob)184 648 Q F0(Same as)11.1 E F2<ad66>2.5 E F0(.)A F2
-(nolog)184 660 Q F0(Currently ignored.)16.66 E F2(notify)184 672 Q F0
-(Same as)15 E F2<ad62>2.5 E F0(.)A F2(nounset)184 684 Q F0(Same as)6.66
-E F2<ad75>2.5 E F0(.)A F2(onecmd)184 696 Q F0(Same as)6.67 E F2<ad74>2.5
-E F0(.)A F2(ph)184 708 Q(ysical)-.15 E F0(Same as)5.14 E F2<ad50>2.5 E
-F0(.)A(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(61)185.115 E 0
-Cg EP
+468 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
+F1<ad6f>144 480 Q F2(option\255name)2.5 E F0(The)184 492 Q F2
+(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
+(allexport)184 504 Q F0(Same as)224 516 Q F1<ad61>2.5 E F0(.)A F1
+(braceexpand)184 528 Q F0(Same as)224 540 Q F1<ad42>2.5 E F0(.)A F1
+(emacs)184 552 Q F0 .089(Use an emacs-style command line editing interf)
+13.9 F 2.589(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E
+.95(when the shell is interacti)224 564 R -.15(ve)-.25 G 3.45(,u).15 G
+.95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
+3.45 E F0 2.5(option. This)224 576 R(also af)2.5 E
+(fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G
+(ad \255e).18 E F0(.)A F1(errtrace)184 588 Q F0(Same as)5.03 E F1<ad45>
+2.5 E F0(.)A F1(functrace)184 600 Q F0(Same as)224 612 Q F1<ad54>2.5 E
+F0(.)A F1(err)184 624 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0
+(.)A F1(hashall)184 636 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 648 Q F0(Same as)224 660 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 672 Q F0 .587(Enable command history)10 F 3.087(,a)-.65 G
+3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder)
+.15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9/Times-Roman@0 SF(.)A F0
+.587(This option is)5.087 F(on by def)224 684 Q(ault in interacti)-.1 E
+.3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 696 Q(eeof)-.18 E F0 1.656
+(The ef)224 708 R 1.656(fect is as if the shell command)-.25 F/F6 10
+/Courier@0 SF(IGNOREEOF=10)4.157 E F0 1.657(had been e)4.157 F -.15(xe)
+-.15 G(cuted).15 E(\(see)224 720 Q F1(Shell V)2.5 E(ariables)-.92 E F0
+(abo)2.5 E -.15(ve)-.15 G(\).).15 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(61)192.895 E 0 Cg EP
%%Page: 62 62
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(pipefail)184 84 Q F0 1.03
-(If set, the return v)7.77 F 1.029(alue of a pipeline is the v)-.25 F
-1.029(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 96
-R 1.136
+-.35 E/F1 10/Times-Bold@0 SF -.1(ke)184 84 S(yw).1 E(ord)-.1 E F0
+(Same as)224 96 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 108 Q F0(Same as)
+5.56 E F1<ad6d>2.5 E F0(.)A F1(noclob)184 120 Q(ber)-.1 E F0(Same as)224
+132 Q F1<ad43>2.5 E F0(.)A F1(noexec)184 144 Q F0(Same as)11.12 E F1
+<ad6e>2.5 E F0(.)A F1(noglob)184 156 Q F0(Same as)11.1 E F1<ad66>2.5 E
+F0(.)A F1(nolog)184 168 Q F0(Currently ignored.)16.66 E F1(notify)184
+180 Q F0(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 192 Q F0
+(Same as)6.66 E F1<ad75>2.5 E F0(.)A F1(onecmd)184 204 Q F0(Same as)6.67
+E F1<ad74>2.5 E F0(.)A F1(ph)184 216 Q(ysical)-.15 E F0(Same as)5.14 E
+F1<ad50>2.5 E F0(.)A F1(pipefail)184 228 Q F0 1.03(If set, the return v)
+7.77 F 1.029(alue of a pipeline is the v)-.25 F 1.029
+(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 240 R
+1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 108 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 120 Q F0
+-.15 F -.15(ex)224 252 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 264 Q F0
2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 132 Q
-/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 144 Q(vileged)
--.1 E F0(Same as)224 156 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 168 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 180 Q F0
+(fers from the)-.25 F(POSIX standard to match the standard \()224 276 Q
+/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 288 Q(vileged)
+-.1 E F0(Same as)224 300 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 312 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 324 Q F0
1.465(Use a vi-style command line editing interf)32.22 F 3.966
(ace. This)-.1 F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F
-(interf)224 192 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 204 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-222 Q F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F2
+(interf)224 336 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
+(.)A F1(xtrace)184 348 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
+366 Q F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F2
(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
-234 Q F0 1.071(is supplied with no)3.571 F F2(option\255name)3.571 E F0
+378 Q F0 1.071(is supplied with no)3.571 F F2(option\255name)3.571 E F0
3.571(,as)C 1.071(eries of)-3.571 F F1(set)3.572 E F0 1.072
(commands to recreate the current)3.572 F
-(option settings is displayed on the standard output.)184 246 Q F1<ad70>
-144 258 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F2(privile)4.822 E -.1
+(option settings is displayed on the standard output.)184 390 Q F1<ad70>
+144 402 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F2(privile)4.822 E -.1
(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
-.27 E F0 1.071(\214les are not pro-)3.322 F 1.5
-(cessed, shell functions are not inherited from the en)184 270 R 1.501
+(cessed, shell functions are not inherited from the en)184 414 R 1.501
(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A
-F1 -.3(BA)184 282 S(SHOPTS).3 E F0(,)A F1(CDP)3.186 E -.95(AT)-.74 G(H)
+F1 -.3(BA)184 426 S(SHOPTS).3 E F0(,)A F1(CDP)3.186 E -.95(AT)-.74 G(H)
.95 E F0 3.186(,a)C(nd)-3.186 E F1(GLOBIGNORE)3.186 E F0 -.25(va)3.186 G
.686(riables, if the).25 F 3.186(ya)-.15 G .686(ppear in the en)-3.186 F
-(viron-)-.4 E .853(ment, are ignored.)184 294 R .854
+(viron-)-.4 E .853(ment, are ignored.)184 438 R .854
(If the shell is started with the ef)5.853 F(fecti)-.25 E 1.154 -.15
(ve u)-.25 H .854(ser \(group\) id not equal to).15 F .043
-(the real user \(group\) id, and the)184 306 R F1<ad70>2.543 E F0 .043
+(the real user \(group\) id, and the)184 450 R F1<ad70>2.543 E F0 .043
(option is not supplied, these actions are tak)2.543 F .043(en and the)
--.1 F(ef)184 318 Q(fecti)-.25 E 1.666 -.15(ve u)-.25 H 1.366
+-.1 F(ef)184 462 Q(fecti)-.25 E 1.666 -.15(ve u)-.25 H 1.366
(ser id is set to the real user id.).15 F 1.367(If the)6.367 F F1<ad70>
-3.867 E F0 1.367(option is supplied at startup, the)3.867 F(ef)184 330 Q
+3.867 E F0 1.367(option is supplied at startup, the)3.867 F(ef)184 474 Q
(fecti)-.25 E .709 -.15(ve u)-.25 H .409(ser id is not reset.).15 F -.45
(Tu)5.409 G .409(rning this option of).45 F 2.909(fc)-.25 G .408
(auses the ef)-2.909 F(fecti)-.25 E .708 -.15(ve u)-.25 H .408
(ser and group).15 F(ids to be set to the real user and group ids.)184
-342 Q F1<ad74>144 354 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
-G(cuting one command.).15 E F1<ad75>144 366 Q F0 -.35(Tr)28.74 G .043
+486 Q F1<ad74>144 498 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
+G(cuting one command.).15 E F1<ad75>144 510 Q F0 -.35(Tr)28.74 G .043
(eat unset v).35 F .044(ariables and parameters other than the special \
parameters "@" and "*" as an)-.25 F .183
-(error when performing parameter e)184 378 R 2.683(xpansion. If)-.15 F
+(error when performing parameter e)184 522 R 2.683(xpansion. If)-.15 F
-.15(ex)2.683 G .182(pansion is attempted on an unset v).15 F(ari-)-.25
-E .746(able or parameter)184 390 R 3.246(,t)-.4 G .746
+E .746(able or parameter)184 534 R 3.246(,t)-.4 G .746
(he shell prints an error message, and, if not interacti)-3.246 F -.15
(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-402 Q F1<ad76>144 414 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 426 Q F0 .315(After e)29.3 F .315
+546 Q F1<ad76>144 558 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 570 Q F0 .315(After e)29.3 F .315
(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 438 R F1
+F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 582 R F1
-.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
(xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)
-3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 450 Q
+3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 594 Q
(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 462 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+<ad42>144 606 Q F0 2.579(The shell performs brace e)27.63 F 2.578
(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 474 Q
-(ault.)-.1 E F1<ad43>144 486 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 618 Q
+(ault.)-.1 E F1<ad43>144 630 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
-3.054(tors. This)184 498 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+3.054(tors. This)184 642 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 510 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 522 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
+.15 F(tor)184 654 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 666 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
-2.603 F F1(ERR)2.603 E F0 .104
(is inherited by shell functions, command substitutions, and com-)2.603
-F .839(mands e)184 534 R -.15(xe)-.15 G .839(cuted in a subshell en).15
+F .839(mands e)184 678 R -.15(xe)-.15 G .839(cuted in a subshell en).15
F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
-(trap is normally not inherited in)3.338 F(such cases.)184 546 Q F1
-<ad48>144 558 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
+(trap is normally not inherited in)3.338 F(such cases.)184 690 Q F1
+<ad48>144 702 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
(style history substitution.)5.531 F .531(This option is on by def)5.531
-F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 570 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 582 Q F0 1.165
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 714 Q -.15
+(ve)-.25 G(.).15 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(62)
+192.895 E 0 Cg EP
+%%Page: 63 63
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad50>144 84 Q F0 1.165
(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
-(that change the current w)184 594 R 2.822(orking directory)-.1 F 7.822
+(that change the current w)184 96 R 2.822(orking directory)-.1 F 7.822
(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
-(ysical directory structure)-.05 F 2.686(instead. By)184 606 R(def)2.686
+(ysical directory structure)-.05 F 2.686(instead. By)184 108 R(def)2.686
E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 618 Q(.)-.65 E F1<ad54>144
-630 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 120 Q(.)-.65 E F1<ad54>144
+132 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 642 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 144 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 654 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 666 Q
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 156 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 168 Q
F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.401 E(the positional parameters are set to the)184 678 Q
-F2(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
-(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
-690 Q F0 1.945(Signal the end of options, cause all remaining)34.3 F F2
-(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G
-1.944(ssigned to the positional)-4.444 F 3.445(parameters. The)184 702 R
-F1<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
+(Otherwise,)5.401 E(the positional parameters are set to the)184 180 Q
+/F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5
+(ni).15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>
+2.5 E F0(.)A F1<ad>144 192 Q F0 1.945
+(Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g)
+-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G 1.944
+(ssigned to the positional)-4.444 F 3.445(parameters. The)184 204 R F1
+<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
-(parameters remain unchanged.)184 714 Q .425(The options are of)144
-730.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(parameters remain unchanged.)184 216 Q .425(The options are of)144
+232.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F(GNU Bash-4.1)72
-768 Q(2009 September 16)135.125 E(62)185.115 E 0 Cg EP
-%%Page: 63 63
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .177(to be turned of)144 84 R 2.677(f. The)-.25 F .178
+(Using + rather than \255 causes these options)5.425 F .177
+(to be turned of)144 244.8 R 2.677(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
-.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
-(current set of options may be found in)144 96 R/F1 10/Times-Bold@0 SF
-<24ad>2.566 E F0 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)
--.1 G .066(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
-(is encountered.)144 108 Q F1(shift)108 124.8 Q F0([)2.5 E/F2 10
-/Times-Italic@0 SF(n)A F0(])A .428(The positional parameters from)144
-136.8 R F2(n)2.928 E F0 .429(+1 ... are renamed to)B F1 .429($1 ....)
-2.929 F F0 -.15(Pa)5.429 G .429(rameters represented by the num-).15 F
-(bers)144 148.8 Q F1($#)2.583 E F0(do)2.583 E .083(wn to)-.25 F F1($#)
-2.583 E F0<ad>A F2(n)A F0 .083(+1 are unset.)B F2(n)5.443 E F0 .083
-(must be a non-ne)2.823 F -.05(ga)-.15 G(ti).05 E .382 -.15(ve n)-.25 H
-.082(umber less than or equal to).15 F F1($#)2.582 E F0 5.082(.I)C(f)
--5.082 E F2(n)2.942 E F0 .06(is 0, no parameters are changed.)144 160.8
-R(If)5.06 E F2(n)2.92 E F0 .06(is not gi)2.8 F -.15(ve)-.25 G .06
-(n, it is assumed to be 1.).15 F(If)5.06 E F2(n)2.92 E F0 .06
-(is greater than)2.8 F F1($#)2.56 E F0 2.56(,t)C(he)-2.56 E .144
-(positional parameters are not changed.)144 172.8 R .144
-(The return status is greater than zero if)5.144 F F2(n)3.003 E F0 .143
-(is greater than)2.883 F F1($#)2.643 E F0
-(or less than zero; otherwise 0.)144 184.8 Q F1(shopt)108 201.6 Q F0([)
+(current set of options may be found in)144 256.8 R F1<24ad>2.566 E F0
+5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
+(is encountered.)144 268.8 Q F1(shift)108 285.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 297.6 R F2(n)2.928 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
+.429(rameters represented by the num-).15 F(bers)144 309.6 Q F1($#)2.583
+E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
+(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
+-.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
+.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
+(is 0, no parameters are changed.)144 321.6 R(If)5.06 E F2(n)2.92 E F0
+.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
+(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 333.6 R
+.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
+.143(is greater than)2.883 F F1($#)2.643 E F0
+(or less than zero; otherwise 0.)144 345.6 Q F1(shopt)108 362.4 Q F0([)
2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 213.6 S .222(ggle the v).8 F .222
+-2.5 E F0(...])2.5 E -.8(To)144 374.4 S .222(ggle the v).8 F .222
(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
<ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 225.6 R(The)
-144 237.6 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
+ed, with an indication of whether or not each is set.)144 386.4 R(The)
+144 398.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
d in a form that may be reused as input.)2.827 F .328(Other options)
-5.328 F(ha)144 249.6 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 261.6 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 273.6 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 285.6 Q F0 .003(Suppresses normal out\
+5.328 F(ha)144 410.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 422.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 434.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 446.4 Q F0 .003(Suppresses normal out\
put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 297.6 R .255
+(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 458.4 R .255
(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
-(all)180 309.6 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 321.6 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+(all)180 470.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 482.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128
-(If either)144 338.4 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
+(If either)144 499.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
(guments, the display is limited to those options which)-.18 F 1.023
-(are set or unset, respecti)144 350.4 R -.15(ve)-.25 G(ly).15 E 6.023
+(are set or unset, respecti)144 511.2 R -.15(ve)-.25 G(ly).15 E 6.023
(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
-1.024(options are disabled \(unset\) by)3.524 F(def)144 362.4 Q(ault.)
+1.024(options are disabled \(unset\) by)3.524 F(def)144 523.2 Q(ault.)
-.1 E 1.544(The return status when listing options is zero if all)144
-379.2 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
+540 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
4.044 F .696
(When setting or unsetting options, the return status is zero unless an)
-144 391.2 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696
-(alid shell)-.25 F(option.)144 403.2 Q(The list of)144 420 Q F1(shopt)
-2.5 E F0(options is:)2.5 E F1(autocd)144 438 Q F0 .2
+144 552 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
+-.25 F(option.)144 564 Q(The list of)144 580.8 Q F1(shopt)2.5 E F0
+(options is:)2.5 E F1(autocd)144 598.8 Q F0 .2
(If set, a command name that is the name of a directory is e)11.11 F
-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 450 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(ment to the)184 610.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 462 Q(ars)-.1 E F0 .155(If set, an ar)184 474 R .155
+F1(cdable_v)144 622.8 Q(ars)-.1 E F0 .155(If set, an ar)184 634.8 R .155
(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 486 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 498 Q F0
+(name of a v)184 646.8 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 658.8 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)
10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
-(corrected. The)184 510 R 1.487(errors check)3.987 F 1.487
+(corrected. The)184 670.8 R 1.487(errors check)3.987 F 1.487
(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
--.4 G(nd)-3.988 E .552(one character too man)184 522 R 4.352 -.65(y. I)
--.15 H 3.052(fac).65 G .552
+-.4 G(nd)-3.988 E .552(one character too man)184 682.8 R 4.352 -.65
+(y. I)-.15 H 3.052(fac).65 G .552
(orrection is found, the corrected \214le name is printed, and)-3.052 F
-(the command proceeds.)184 534 Q(This option is only used by interacti)5
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 546 Q F0 2.079
-(If set,)184 558 R F1(bash)4.579 E F0 2.079
-(checks that a command found in the hash table e)4.579 F 2.08
-(xists before trying to)-.15 F -.15(exe)184 570 S(cute it.).15 E
+(the command proceeds.)184 694.8 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(checkhash)144 706.8 Q F0 2.079(If set,)184 718.8 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 730.8 S(cute it.).15 E
(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 582 Q
-F0 .449(If set,)184 594 R F1(bash)2.949 E F0 .449
-(lists the status of an)2.949 F 2.949(ys)-.15 G .448
-(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.438(shell. If)184 606 R(an)3.438 E 3.438(yj)-.15 G
-.938(obs are running, this causes the e)-3.438 F .938
+(xists, a normal path search is performed.)-.15 E(GNU Bash-4.1)72 768 Q
+(2009 October 9)142.905 E(63)192.895 E 0 Cg EP
+%%Page: 64 64
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(checkjobs)144 84 Q F0 .449(If set,)184 96 R
+F1(bash)2.949 E F0 .449(lists the status of an)2.949 F 2.949(ys)-.15 G
+.448(topped and running jobs before e)-2.949 F .448(xiting an interacti)
+-.15 F -.15(ve)-.25 G 3.438(shell. If)184 108 R(an)3.438 E 3.438(yj)-.15
+G .938(obs are running, this causes the e)-3.438 F .938
(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
-(attempted without an interv)184 618 R 1.456(ening command \(see)-.15 F
+(attempted without an interv)184 120 R 1.456(ening command \(see)-.15 F
F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G 3.956
-(\). The).15 F(shell)3.956 E(al)184 630 Q -.1(wa)-.1 G(ys postpones e).1
+(\). The).15 F(shell)3.956 E(al)184 132 Q -.1(wa)-.1 G(ys postpones e).1
E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F1
-(checkwinsize)144 642 Q F0 .796(If set,)184 654 R F1(bash)3.296 E F0
+(checkwinsize)144 144 Q F0 .796(If set,)184 156 R F1(bash)3.296 E F0
.796(checks the windo)3.296 F 3.296(ws)-.25 G .797
(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G .797
-(pdates the)-3.297 F -.25(va)184 666 S(lues of).25 E/F3 9/Times-Bold@0
-SF(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A
-F1(cmdhist)144 678 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+(pdates the)-3.297 F -.25(va)184 168 S(lues of).25 E/F2 9/Times-Bold@0
+SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
+F1(cmdhist)144 180 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
(ll lines of a multiple-line command in the same history).15 F(entry)184
-690 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 702 Q
-F0 .419(If set,)184 714 R F1(bash)2.919 E F0 .419(changes its beha)2.919
+192 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 204 Q
+F0 .419(If set,)184 216 R F1(bash)2.919 E F0 .419(changes its beha)2.919
F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the conditional command')184 726 Q 2.5(s=)-.55
-G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(63)185.115 E 0 Cg EP
-%%Page: 64 64
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(dirspell)144 84 Q F0 .859(If set,)7.77 F F1
-(bash)3.359 E F0 .858
+-.15 F(guments)-.18 E(to the conditional command')184 228 Q 2.5(s=)-.55
+G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dirspell)144 240 Q F0 .859
+(If set,)7.77 F F1(bash)3.359 E F0 .858
(attempts spelling correction on directory names during w)3.359 F .858
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 96 Q(xist.)-.15 E
-F1(dotglob)144 108 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 252 Q(xist.)-.15 E
+F1(dotglob)144 264 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 120 Q F0 1.387
+(xpansion.)-.15 E F1(execfail)144 276 Q F0 1.387
(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.386(cute the \214le speci\214ed as an).15 F(ar)184 132 Q
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 288 Q
(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 144 Q F0
-.716(If set, aliases are e)184 156 R .717(xpanded as described abo)-.15
-F 1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E
-/F3 9/Times-Roman@0 SF(.)A F0 .717(This option is enabled)5.217 F
-(by def)184 168 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(extdeb)144 180 Q(ug)-.2 E F0(If set, beha)184 192 Q
-(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
-204 Q F0(The)28.5 E F1<ad46>4.251 E F0 1.751(option to the)4.251 F F1
-(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
-(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 216 Q
-(gument.)-.18 E F1(2.)184 228 Q F0 1.667(If the command run by the)28.5
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 300 Q F0
+.716(If set, aliases are e)184 312 R .717(xpanded as described abo)-.15
+F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717
+(This option is enabled)5.217 F(by def)184 324 Q(ault for interacti)-.1
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 336 Q(ug)-.2 E F0
+(If set, beha)184 348 Q(vior intended for use by deb)-.2 E
+(uggers is enabled:)-.2 E F1(1.)184 360 Q F0(The)28.5 E F1<ad46>4.251 E
+F0 1.751(option to the)4.251 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)
+4.251 G 1.751(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 372 Q
+(gument.)-.18 E F1(2.)184 384 Q F0 1.667(If the command run by the)28.5
F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 240
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 252 Q F0 .841
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 396
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 408 Q F0 .841
(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
-(exe)220 264 S .488
+(exe)220 420 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 276 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+(sour)220 432 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184
-288 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
+444 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
1.275(are updated as described in their descrip-)3.776 F(tions abo)220
-300 Q -.15(ve)-.15 G(.).15 E F1(5.)184 312 Q F0 1.359
+456 Q -.15(ve)-.15 G(.).15 E F1(5.)184 468 Q F0 1.359
(Function tracing is enabled:)28.5 F 1.359
(command substitution, shell functions, and sub-)6.359 F(shells in)220
-324 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+480 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 336 Q F0 .805(Error tracing is enabled:)28.5 F .804
-(command substitution, shell functions, and subshells)5.805 F(in)220 348
+184 492 Q F0 .805(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 504
Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
-(trap.)2.5 E F1(extglob)144 360 Q F0 .4(If set, the e)8.89 F .4
+(trap.)2.5 E F1(extglob)144 516 Q F0 .4(If set, the e)8.89 F .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 372 Q
-F0(are enabled.)2.5 E F1(extquote)144 384 Q F0 2.473(If set,)184 396 R
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 528 Q
+F0(are enabled.)2.5 E F1(extquote)144 540 Q F0 2.473(If set,)184 552 R
F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 408 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 420 Q F0
+(pansions).15 E(enclosed in double quotes.)184 564 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 576 Q F0
1.424(If set, patterns which f)7.77 F 1.425
(ail to match \214lenames during pathname e)-.1 F 1.425
-(xpansion result in an)-.15 F -.15(ex)184 432 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 444 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.585(If set, the suf)184 456 R<8c78>-.25 E .585(es speci\214ed by the)
+(xpansion result in an)-.15 F -.15(ex)184 588 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 600 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 612 R<8c78>-.25 E .585(es speci\214ed by the)
-.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w)
--.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 468 R .32
+-.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 624 R .32
(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.33
-(pletions. See)184 480 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo)
+(pletions. See)184 636 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo)
3.08 E 1.13 -.15(ve f)-.15 H .829(or a description of).15 F F1(FIGNORE)
-3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 492
-Q(ault.)-.1 E F1(globstar)144 504 Q F0 .178(If set, the pattern)5 F F1
+3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 648
+Q(ault.)-.1 E F1(globstar)144 660 Q F0 .178(If set, the pattern)5 F F1
(**)2.678 E F0 .178(used in a pathname e)2.678 F .178(xpansion conte)
-.15 F .179(xt will match a \214les and zero or)-.15 F 1.298
-(more directories and subdirectories.)184 516 R 1.298
+(more directories and subdirectories.)184 672 R 1.298
(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
-528 Q F1(gnu_errfmt)144 540 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 552 Q F1(histappend)144
-564 Q F0 .383
+684 Q F1(gnu_errfmt)144 696 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 708 Q(GNU Bash-4.1)72
+768 Q(2009 October 9)142.905 E(64)192.895 E 0 Cg EP
+%%Page: 65 65
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(histappend)144 84 Q F0 .383
(If set, the history list is appended to the \214le named by the v)184
-576 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G
-(ri-).25 E(able when the shell e)184 588 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 600 Q(eedit)-.18
-E F0 .576(If set, and)184 612 R F1 -.18(re)3.076 G(adline).18 E F0 .575
+96 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G(ri-)
+.25 E(able when the shell e)184 108 Q(xits, rather than o)-.15 E -.15
+(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 120 Q(eedit)-.18 E F0
+.576(If set, and)184 132 R F1 -.18(re)3.076 G(adline).18 E F0 .575
(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
-(tory substitution.)184 624 Q F1(histv)144 636 Q(erify)-.1 E F0 .402
-(If set, and)184 648 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+(tory substitution.)184 144 Q F1(histv)144 156 Q(erify)-.1 E F0 .402
+(If set, and)184 168 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 660 R 5.662(.I)-.55 G .661
+2.903 F .662(passed to the shell parser)184 180 R 5.662(.I)-.55 G .661
(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 672 S -.25(ff).2 G(er).25 E
+G(adline).18 E F0(editing)3.161 E -.2(bu)184 192 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 684 Q F0 1.181(If set, and)184 696 R F1 -.18(re)3.681
+(hostcomplete)144 204 Q F0 1.181(If set, and)184 216 R F1 -.18(re)3.681
G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
-708 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+228 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-F2(READLINE)3.88 E F0(abo)184 720 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(64)185.115 E 0 Cg EP
-%%Page: 65 65
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(huponexit)144 84 Q F0(If set,)184 96 Q F1
-(bash)2.5 E F0(will send)2.5 E/F2 9/Times-Bold@0 SF(SIGHUP)2.5 E F0
-(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(interacti)144 108 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 120 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
-(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
-(ord and all remaining characters on)-.1 F .967
-(that line to be ignored in an interacti)184 132 R 1.267 -.15(ve s)-.25
-H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 144 Q
-(ault.)-.1 E F1(lithist)144 156 Q F0 .654(If set, and the)15.55 F F1
-(cmdhist)3.154 E F0 .654(option is enabled, multi-line commands are sa)
-3.154 F -.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)
--3.155 F(with embedded ne)184 168 Q
+/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 240 Q -.15(ve)-.15 G
+2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144
+252 Q F0(If set,)184 264 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)
+2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H
+(ogin shell e).15 E(xits.)-.15 E F1(interacti)144 276 Q -.1(ve)-.1 G
+(_comments).1 E F0 .33(If set, allo)184 288 R 2.83(waw)-.25 G .33
+(ord be)-2.93 F .33(ginning with)-.15 F F1(#)2.83 E F0 .33
+(to cause that w)2.83 F .33(ord and all remaining characters on)-.1 F
+.967(that line to be ignored in an interacti)184 300 R 1.267 -.15(ve s)
+-.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)
+-.15 G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184
+312 Q(ault.)-.1 E F1(lithist)144 324 Q F0 .654(If set, and the)15.55 F
+F1(cmdhist)3.154 E F0 .654
+(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
+3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
+(with embedded ne)184 336 Q
(wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 180 Q F0 .486
+(login_shell)144 348 Q F0 .486
(The shell sets this option if it is started as a login shell \(see)184
-192 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 204 S(lue may not be changed.).25
-E F1(mailwar)144 216 Q(n)-.15 E F0 .814(If set, and a \214le that)184
-228 R F1(bash)3.314 E F0 .815
+360 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
+-.15 G 2.986(\). The).15 F -.25(va)184 372 S(lue may not be changed.).25
+E F1(mailwar)144 384 Q(n)-.15 E F0 .814(If set, and a \214le that)184
+396 R F1(bash)3.314 E F0 .815
(is checking for mail has been accessed since the last time it)3.314 F
--.1(wa)184 240 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+-.1(wa)184 408 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 252 Q F0 .146(If set, and)184 264 R F1 -.18
+(no_empty_cmd_completion)144 420 Q F0 .146(If set, and)184 432 R F1 -.18
(re)2.646 G(adline).18 E F0 .146(is being used,)2.646 F F1(bash)2.646 E
F0 .145(will not attempt to search the)2.646 F F1 -.74(PA)2.645 G(TH)
-.21 E F0 .145(for possible)2.645 F
-(completions when completion is attempted on an empty line.)184 276 Q F1
-(nocaseglob)144 288 Q F0 .436(If set,)184 300 R F1(bash)2.936 E F0 .436
+(completions when completion is attempted on an empty line.)184 444 Q F1
+(nocaseglob)144 456 Q F0 .436(If set,)184 468 R F1(bash)2.936 E F0 .436
(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
-H .437(ashion when performing pathname).05 F -.15(ex)184 312 S
+H .437(ashion when performing pathname).05 F -.15(ex)184 480 S
(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 324 Q F0 1.194(If set,)184
-336 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 492 Q F0 1.194(If set,)184
+504 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
-F(while e)184 348 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
-E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 360 Q F0
-.854(If set,)184 372 R F1(bash)3.354 E F0(allo)3.354 E .855
+F(while e)184 516 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 528 Q F0
+.854(If set,)184 540 R F1(bash)3.354 E F0(allo)3.354 E .855
(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
--3.355 E -.15(ex)184 384 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 396 Q(ogcomp)-.18 E F0 .677
-(If set, the programmable completion f)184 408 R .677(acilities \(see)
+-3.355 E -.15(ex)184 552 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 564 Q(ogcomp)-.18 E F0 .677
+(If set, the programmable completion f)184 576 R .677(acilities \(see)
-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
--.15(ve)-.15 G(\)).15 E(are enabled.)184 420 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 432 Q(omptv)
--.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 444 R 1.448
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 588 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 600 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 612 R 1.448
(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 456 S .171(pansion, and quote remo).15 F -.25(va)-.15
+-.15 F -.15(ex)184 624 S .171(pansion, and quote remo).15 F -.25(va)-.15
G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
-(This option is enabled by def)184 468 Q(ault.)-.1 E F1 -.18(re)144 480
+(This option is enabled by def)184 636 Q(ault.)-.1 E F1 -.18(re)144 648
S(stricted_shell).18 E F0 1.069
(The shell sets this option if it is started in restricted mode \(see)
-184 492 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 504 Q 4.178
+184 660 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 672 Q 4.178
(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
-184 516 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+184 684 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 528 Q(erbose)-.1 E F0 .501(If set, the)184 540 R F1
+F1(shift_v)144 696 Q(erbose)-.1 E F0 .501(If set, the)184 708 R F1
(shift)3.001 E F0 -.2(bu)3.001 G .501
(iltin prints an error message when the shift count e).2 F .502
-(xceeds the number)-.15 F(of positional parameters.)184 552 Q F1(sour)
-144 564 Q(cepath)-.18 E F0 .771(If set, the)184 576 R F1(sour)3.271 E
-(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
--3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
+(xceeds the number)-.15 F(of positional parameters.)184 720 Q
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(65)192.895 E 0 Cg EP
+%%Page: 66 66
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(sour)144 84 Q(cepath)-.18 E F0 .771
+(If set, the)184 96 R F1(sour)3.271 E(ce)-.18 E F0(\()3.271 E F1(.)A F0
+3.271(\)b)C .771(uiltin uses the v)-3.471 F .771(alue of)-.25 F/F2 9
+/Times-Bold@0 SF -.666(PA)3.27 G(TH)-.189 E F0 .77
(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
-184 588 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
--.1 E F1(xpg_echo)144 600 Q F0(If set, the)184 612 Q F1(echo)2.5 E F0
+184 108 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 120 Q F0(If set, the)184 132 Q F1(echo)2.5 E F0
-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
-E(ault.)-.1 E F1(suspend)108 624 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
-(Suspend the e)144 636 R -.15(xe)-.15 G 1.001
+E(ault.)-.1 E F1(suspend)108 144 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 156 R -.15(xe)-.15 G 1.001
(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
-3.502 F .023(suspended; the)144 648 R F1<ad66>2.523 E F0 .023
+3.502 F .023(suspended; the)144 168 R F1<ad66>2.523 E F0 .023
(option can be used to o)2.523 F -.15(ve)-.15 G .022
(rride this and force the suspension.).15 F .022(The return status is)
-5.022 F 2.5(0u)144 660 S(nless the shell is a login shell and)-2.5 E F1
+5.022 F 2.5(0u)144 180 S(nless the shell is a login shell and)-2.5 E F1
<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
-F1(test)108 672 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 684 Q F3 -.2(ex)2.5 G
-(pr).2 E F1(])2.5 E F0 1.15
+F1(test)108 192 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
+204 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
-(operator and operand must be a separate ar)144 696 R 3.688
+(operator and operand must be a separate ar)144 216 R 3.688
(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
-1.889(described abo)144 708 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
+1.889(described abo)144 228 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
(CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89
-(ptions, nor)-4.39 F(does it accept and ignore an ar)144 720 Q
+(ptions, nor)-4.39 F(does it accept and ignore an ar)144 240 Q
(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(65)185.115 E 0 Cg EP
-%%Page: 66 66
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .786(Expressions may be combined using the follo)144 84 R .785
+E .786(Expressions may be combined using the follo)144 258 R .785
(wing operators, listed in decreasing order of prece-)-.25 F 2.5
-(dence. The)144 96 R -.25(eva)2.5 G(luation depends on the number of ar)
-.25 E(guments; see belo)-.18 E -.65(w.)-.25 G/F1 10/Times-Bold@0 SF(!)
-144 108 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
-(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
-144 120 Q F2 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
-F .26(alue of)-.25 F F2 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
+(dence. The)144 270 R -.25(eva)2.5 G
+(luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
+(w.)-.25 G F1(!)144 282 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
+144 294 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
(his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 132 Q F2 -.2(ex)
-144 144 S(pr1).2 E F0<ad>2.5 E F1(a)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35
-(Tr)180 156 S(ue if both).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F2
--.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F2 -.2(ex)144 168 S(pr1).2 E
-F0<ad>2.5 E F1(o)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 180 S
-(ue if either).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F2 -.2(ex)2.5 G
-(pr2).2 E F0(is true.)2.52 E F1(test)144 196.8 Q F0(and)2.5 E F1([)2.5 E
+(rride the normal precedence of opera-).15 F(tors.)180 306 Q F3 -.2(ex)
+144 318 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
+(Tr)180 330 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
+-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 342 S(pr1).2 E
+F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 354 S
+(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G
+(pr2).2 E F0(is true.)2.52 E F1(test)144 370.8 Q F0(and)2.5 E F1([)2.5 E
F0 -.25(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 214.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 226.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 238.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 250.8 Q
+(guments.)-.18 E 2.5(0a)144 388.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 400.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 412.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 424.8 Q
(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 262.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 274.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 436.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 448.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 286.8 R .38
+(gument is null.)-.18 F .379(If the \214rst ar)180 460.8 R .38
(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180
-298.8 Q .553(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
-(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
-.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 310.8 Q
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 472.8 Q .553
+(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
+(xpression is true if the unary test is true.)-.15 F .552
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 484.8 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 322.8 S -.18(rg)-2.5 G
-(uments).18 E .023(If the second ar)180 334.8 R .023
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 496.8 S -.18(rg)-2.5 G
+(uments).18 E .023(If the second ar)180 508.8 R .023
(gument is one of the binary conditional operators listed abo)-.18 F
-.324 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.524 E(DITION)180 346.8 Q
+.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 520.8 Q
1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
1.477(xpression is the result of the binary test)-.15 F .513
-(using the \214rst and third ar)180 358.8 R .513(guments as operands.)
+(using the \214rst and third ar)180 532.8 R .513(guments as operands.)
-.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
.513(operators are considered)3.013 F .972
-(binary operators when there are three ar)180 370.8 R 3.472(guments. If)
+(binary operators when there are three ar)180 544.8 R 3.472(guments. If)
-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
-3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 382.8
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 556.8
R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
-F .884(the \214rst)3.384 F(ar)180 394.8 Q .875(gument is e)-.18 F
+F .884(the \214rst)3.384 F(ar)180 568.8 Q .875(gument is e)-.18 F
(xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875
(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874
(he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar)
-180 406.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
--.15 E(alse.)-.1 E 2.5(4a)144 418.8 S -.18(rg)-2.5 G(uments).18 E .384
-(If the \214rst ar)180 430.8 R .384(gument is)-.18 F F1(!)2.884 E F0
+180 580.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
+-.15 E(alse.)-.1 E 2.5(4a)144 592.8 S -.18(rg)-2.5 G(uments).18 E .384
+(If the \214rst ar)180 604.8 R .384(gument is)-.18 F F1(!)2.884 E F0
2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385
(tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-)
--.15 F 1.648(posed of the remaining ar)180 442.8 R 4.147
+-.15 F 1.648(posed of the remaining ar)180 616.8 R 4.147
(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
-(according to precedence using the rules listed abo)180 454.8 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 466.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
--.18 E 1.635(The e)180 478.8 R 1.635(xpression is parsed and e)-.15 F
+(according to precedence using the rules listed abo)180 628.8 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 640.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
+-.18 E 1.635(The e)180 652.8 R 1.635(xpression is parsed and e)-.15 F
-.25(va)-.25 G 1.635
(luated according to precedence using the rules listed).25 F(abo)180
-490.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 507.6 Q F0 1.229(Print the \
+664.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 681.6 Q F0 1.229(Print the \
accumulated user and system times for the shell and for processes run f\
-rom the shell.)13.23 F(The return status is 0.)144 519.6 Q F1(trap)108
-536.4 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E F2(ar)A(g)-.37 E F0
-(])A F2(sigspec)2.5 E F0(...])2.5 E .702(The command)144 548.4 R F2(ar)
-3.532 E(g)-.37 E F0 .702(is to be read and e)3.422 F -.15(xe)-.15 G .702
+rom the shell.)13.23 F(The return status is 0.)144 693.6 Q(GNU Bash-4.1)
+72 768 Q(2009 October 9)142.905 E(66)192.895 E 0 Cg EP
+%%Page: 67 67
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(trap)108 84 Q F0([)2.5 E F1(\255lp)A F0 2.5
+(][)C([)-2.5 E/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)
+2.5 E F0(...])2.5 E .702(The command)144 96 R F2(ar)3.532 E(g)-.37 E F0
+.702(is to be read and e)3.422 F -.15(xe)-.15 G .702
(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2
(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
-144 560.4 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
-F0 3.108(,e)C .608
+144 108 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E F0
+3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.658(\(the v)144 572.4 R .658(alue it had upon entrance to the shell\).)
+.658(\(the v)144 120 R .658(alue it had upon entrance to the shell\).)
-.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659
(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 584.4 Q F0 .581
-(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
--.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E F0 .58
-(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
-(been supplied, then the trap commands associated with each)144 596.4 R
-F2(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
-F(gu-)-.18 E .86(ments are supplied or if only)144 608.4 R F1<ad70>3.36
-E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
+144.34 132 Q F0 .581(is ignored by the shell and by the commands it in)
+3.391 F -.2(vo)-.4 G -.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E
+F0 .58(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 144 R F2
+(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215 F
+(gu-)-.18 E .86(ments are supplied or if only)144 156 R F1<ad70>3.36 E
+F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 620.4 R F1<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F
-4.311(bers. Each)144 632.4 R F2(sigspec)4.651 E F0 1.811
+(signal. The)144 168 R F1<ad6c>2.83 E F0 .33(option causes the shell to\
+ print a list of signal names and their corresponding num-)2.83 F 4.311
+(bers. Each)144 180 R F2(sigspec)4.651 E F0 1.811
(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81
(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
-(names are case insensiti)144 644.4 Q .3 -.15(ve a)-.25 H
-(nd the SIG pre\214x is optional.).15 E 1.648(If a)144 662.4 R F2
-(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0 1.648
+(names are case insensiti)144 192 Q .3 -.15(ve a)-.25 H
+(nd the SIG pre\214x is optional.).15 E 1.648(If a)144 210 R F2(sigspec)
+4.488 E F0(is)4.458 E/F3 9/Times-Bold@0 SF(EXIT)4.148 E F0 1.648
(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
-.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)-.15 F
-1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 674.4 Q
-(UG)-.09 E F4(,)A F0 1.168(the command)3.418 F F2(ar)3.998 E(g)-.37 E F0
-1.168(is e)3.888 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
--.25 G(ry).15 E F2 1.167(simple command)3.667 F F0(,)A F2(for)3.667 E F0
-(command,)3.667 E F2(case)3.667 E F0(com-)3.667 E(mand,)144 686.4 Q F2
-(select)2.646 E F0 .146(command, e)2.646 F -.15(ve)-.25 G .146
-(ry arithmetic).15 F F2(for)2.646 E F0 .147
+1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 222 Q(UG)
+-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F F2(ar)
+3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167
+(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command)
+3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0
+(com-)3.667 E(mand,)144 234 Q F2(select)2.646 E F0 .146(command, e)2.646
+F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147
(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147
-(cutes in a).15 F .146(shell function \(see)144 698.4 R F3 .146
+(cutes in a).15 F .146(shell function \(see)144 246 R F3 .146
(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15
F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0
-.145(option to)2.645 F(the)144 710.4 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7
+.145(option to)2.645 F(the)144 258 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7
(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG)
-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3
-(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 722.4 Q F2(ar)
-3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
+(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 270 Q F2(ar)3.474
+E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce)
--.18 E F0 -.2(bu)3.143 G(iltins).2 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(66)185.115 E 0 Cg EP
-%%Page: 67 67
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(\214nishes e)144 84 Q -.15(xe)-.15 G(cuting.).15 E .928(If a)144
-102 R/F1 10/Times-Italic@0 SF(sigspec)3.768 E F0(is)3.738 E/F2 9
-/Times-Bold@0 SF(ERR)3.429 E/F3 9/Times-Roman@0 SF(,)A F0 .929
-(the command)3.179 F F1(ar)3.759 E(g)-.37 E F0 .929(is e)3.649 F -.15
-(xe)-.15 G .929(cuted whene).15 F -.15(ve)-.25 G 3.429(ras).15 G .929
-(imple command has a non\255zero)-3.429 F -.15(ex)144 114 S 1.009
-(it status, subject to the follo).15 F 1.009(wing conditions.)-.25 F
-(The)6.009 E F2(ERR)3.509 E F0 1.009(trap is not e)3.259 F -.15(xe)-.15
-G 1.008(cuted if the f).15 F 1.008(ailed com-)-.1 F .324
-(mand is part of the command list immediately follo)144 126 R .324
-(wing a)-.25 F/F4 10/Times-Bold@0 SF(while)2.824 E F0(or)2.824 E F4
-(until)2.824 E F0 -.1(ke)2.824 G(yw)-.05 E .324(ord, part of the test)
--.1 F 1.129(in an)144 138 R F1(if)3.639 E F0 1.129
-(statement, part of a command e)5.589 F -.15(xe)-.15 G 1.129(cuted in a)
-.15 F F4(&&)3.629 E F0(or)3.629 E/F5 10/Symbol SF<efef>3.629 E F0 1.129
-(list, or if the command')3.629 F 3.628(sr)-.55 G(eturn)-3.628 E -.25
-(va)144 150 S(lue is being in).25 E -.15(ve)-.4 G(rted via).15 E F4(!)
-2.5 E F0 5(.T)C(hese are the same conditions obe)-5 E(yed by the)-.15 E
-F4(err)2.5 E(exit)-.18 E F0(option.)2.5 E 1.095
+-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 282 Q -.15(xe)-.15
+G(cuting.).15 E .928(If a)144 300 R F2(sigspec)3.768 E F0(is)3.738 E F3
+(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E(g)-.37 E
+F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F -.15(ve)-.25
+G 3.429(ras).15 G .929(imple command has a non\255zero)-3.429 F -.15(ex)
+144 312 S 1.009(it status, subject to the follo).15 F 1.009
+(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009
+(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008
+(ailed com-)-.1 F .324
+(mand is part of the command list immediately follo)144 324 R .324
+(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1
+(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F 1.129(in an)144
+336 R F2(if)3.639 E F0 1.129(statement, part of a command e)5.589 F -.15
+(xe)-.15 G 1.129(cuted in a).15 F F1(&&)3.629 E F0(or)3.629 E/F5 10
+/Symbol SF<efef>3.629 E F0 1.129(list, or if the command')3.629 F 3.628
+(sr)-.55 G(eturn)-3.628 E -.25(va)144 348 S(lue is being in).25 E -.15
+(ve)-.4 G(rted via).15 E F1(!)2.5 E F0 5(.T)C
+(hese are the same conditions obe)-5 E(yed by the)-.15 E F1(err)2.5 E
+(exit)-.18 E F0(option.)2.5 E 1.095
(Signals ignored upon entry to the shell cannot be trapped or reset.)144
-168 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
-(being ignored are reset to their original v)144 180 R .662
+366 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
+(being ignored are reset to their original v)144 378 R .662
(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
--.4 F 2.5(created. The)144 192 R(return status is f)2.5 E(alse if an)-.1
-E(y)-.15 E F1(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
-(lid; otherwise).25 E F4(trap)2.5 E F0(returns true.)2.5 E F4(type)108
-208.8 Q F0([)2.5 E F4(\255aftpP)A F0(])A F1(name)2.5 E F0([)2.5 E F1
-(name)A F0(...])2.5 E -.4(Wi)144 220.8 S .173
-(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F1(name)
+-.4 F 2.5(created. The)144 390 R(return status is f)2.5 E(alse if an)-.1
+E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
+(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108
+406.8 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2
+(name)A F0(...])2.5 E -.4(Wi)144 418.8 S .173
+(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name)
3.033 E F0 -.1(wo)2.853 G .174
(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
-F4<ad74>144 232.8 Q F0 .843(option is used,)3.343 F F4(type)3.343 E F0
-.843(prints a string which is one of)3.343 F F1(alias)3.343 E F0(,).27 E
-F1 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F1(function)3.343 E F0
-(,).24 E F1 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F1
-(\214le)5.252 E F0(if)3.522 E F1(name)144.36 244.8 Q F0 .086
+F1<ad74>144 430.8 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
+.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
+F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
+(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
+(\214le)5.252 E F0(if)3.522 E F2(name)144.36 442.8 Q F0 .086
(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F1
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
(name)2.947 E F0 .087(is not)2.767 F .119
-(found, then nothing is printed, and an e)144 256.8 R .118
+(found, then nothing is printed, and an e)144 454.8 R .118
(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
-F4<ad70>2.618 E F0 .118(option is used,)2.618 F F4(type)2.618 E F0 .855
-(either returns the name of the disk \214le that w)144 268.8 R .855
-(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F1(name)3.715 E F0
+F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
+(either returns the name of the disk \214le that w)144 466.8 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
-144 280.8 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
-G .641(uld not return).1 F F1(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
-F4<ad50>3.14 E F0 .64(option forces a)3.14 F F2 -.666(PA)3.14 G(TH)-.189
-E F0 .112(search for each)144 292.8 R F1(name)2.612 E F0 2.612(,e)C -.15
+144 478.8 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
+F1<ad50>3.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189
+E F0 .112(search for each)144 490.8 R F2(name)2.612 E F0 2.612(,e)C -.15
(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613 F F0
--.1(wo)2.613 G .113(uld not return).1 F F1(\214le)2.613 E F0 5.113(.I)
-.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F4<ad70>2.613 E
-F0(and)144 304.8 Q F4<ad50>2.945 E F0 .445(print the hashed v)2.945 F
-.444(alue, not necessarily the \214le that appears \214rst in)-.25 F F2
--.666(PA)2.944 G(TH)-.189 E F3(.)A F0 .444(If the)4.944 F F4<ad61>2.944
-E F0(option)2.944 E .265(is used,)144 316.8 R F4(type)2.765 E F0 .265
+-.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I)
+.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F1<ad70>2.613 E
+F0(and)144 502.8 Q F1<ad50>2.945 E F0 .445(print the hashed v)2.945 F
+.444(alue, not necessarily the \214le that appears \214rst in)-.25 F F3
+-.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F1<ad61>2.944
+E F0(option)2.944 E .265(is used,)144 514.8 R F1(type)2.765 E F0 .265
(prints all of the places that contain an e)2.765 F -.15(xe)-.15 G .265
-(cutable named).15 F F1(name)2.765 E F0 5.265(.T).18 G .265
+(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265
(his includes aliases)-5.265 F .427(and functions, if and only if the)
-144 328.8 R F4<ad70>2.926 E F0 .426(option is not also used.)2.926 F
+144 526.8 R F1<ad70>2.926 E F0 .426(option is not also used.)2.926 F
.426(The table of hashed commands is not)5.426 F .548
-(consulted when using)144 340.8 R F4<ad61>3.048 E F0 5.548(.T)C(he)
--5.548 E F4<ad66>3.048 E F0 .549
-(option suppresses shell function lookup, as with the)3.048 F F4
-(command)3.049 E F0 -.2(bu)144 352.8 S(iltin.).2 E F4(type)5 E F0
+(consulted when using)144 538.8 R F1<ad61>3.048 E F0 5.548(.T)C(he)
+-5.548 E F1<ad66>3.048 E F0 .549
+(option suppresses shell function lookup, as with the)3.048 F F1
+(command)3.049 E F0 -.2(bu)144 550.8 S(iltin.).2 E F1(type)5 E F0
(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
-(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F4(ulimit)108 369.6
-Q F0([)2.5 E F4(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F1
-(limit)A F0(]])A(Pro)144 381.6 Q .244(vides control o)-.15 F -.15(ve)
+(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 567.6
+Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
+(limit)A F0(]])A(Pro)144 579.6 Q .244(vides control o)-.15 F -.15(ve)
-.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 393.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F4<ad48>3.443 E F0(and)3.443 E F4<ad53>3.444 E F0 .944
+.943(that allo)144 591.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
+(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 405.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 603.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 417.6 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F4<ad48>2.926 E
-F0(nor)2.926 E F4<ad53>2.926 E F0 .426
+ft limit may)2.709 F .425(be increased up to the v)144 615.6 R .425
+(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
+F0(nor)2.926 E F1<ad53>2.926 E F0 .426
(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-429.6 R .139(The v)5.139 F .139(alue of)-.25 F F1(limit)2.729 E F0 .139
+627.6 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 441.6 R(alues)-.25 E F4(hard)3.241 E F0(,)A F4
-(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F4(unlimited)3.241 E F0 3.241(,w)
+.741(of the special v)144 639.6 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
C .741(hich stand for the current hard limit, the current)-3.241 F .78
-(soft limit, and no limit, respecti)144 453.6 R -.15(ve)-.25 G(ly).15 E
-5.78(.I)-.65 G(f)-5.78 E F1(limit)3.37 E F0 .78
+(soft limit, and no limit, respecti)144 651.6 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 465.6 R F4<ad48>2.999 E F0
+F .498(resource is printed, unless the)144 663.6 R F1<ad48>2.999 E F0
.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
(more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 477.6 Q 2.5
-(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F4
-<ad61>144 489.6 Q F0(All current limits are reported)25.3 E F4<ad62>144
-501.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
-F4<ad63>144 513.6 Q F0(The maximum size of core \214les created)25.86 E
-F4<ad64>144 525.6 Q F0(The maximum size of a process')24.74 E 2.5(sd)
--.55 G(ata se)-2.5 E(gment)-.15 E F4<ad65>144 537.6 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F4<ad66>144 549.6 Q
-F0(The maximum size of \214les written by the shell and its children)
-26.97 E F4<ad69>144 561.6 Q F0(The maximum number of pending signals)
-27.52 E F4<ad6c>144 573.6 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F4<ad6d>144 585.6 Q F0
-(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F4<ad6e>144 597.6 Q F0 .791(Th\
-e maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
-609.6 Q F4<ad70>144 621.6 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F4
-<ad71>144 633.6 Q F0
-(The maximum number of bytes in POSIX message queues)24.74 E F4<ad72>144
-645.6 Q F0(The maximum real-time scheduling priority)25.86 E F4<ad73>144
-657.6 Q F0(The maximum stack size)26.41 E F4<ad74>144 669.6 Q F0
-(The maximum amount of cpu time in seconds)26.97 E F4<ad75>144 681.6 Q
-F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F4<ad76>144 693.6 Q F0
-(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E F4<ad78>144 705.6 Q F0
-(The maximum number of \214le locks)25.3 E F4<ad54>144 717.6 Q F0
-(The maximum number of threads)23.63 E(GNU Bash-4.1)72 768 Q
-(2009 September 16)135.125 E(67)185.115 E 0 Cg EP
+(limit name and unit are printed before the v)144 675.6 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
+<ad61>144 687.6 Q F0(All current limits are reported)25.3 E F1<ad62>144
+699.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F1<ad63>144 711.6 Q F0(The maximum size of core \214les created)25.86 E
+(GNU Bash-4.1)72 768 Q(2009 October 9)142.905 E(67)192.895 E 0 Cg EP
%%Page: 68 68
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(If)144 84 Q/F1 10/Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)
-3.523 F -.15(ve)-.25 G .343(n, it is the ne).15 F 2.843(wv)-.25 G .343
-(alue of the speci\214ed resource \(the)-3.093 F/F2 10/Times-Bold@0 SF
-<ad61>2.843 E F0 .343(option is display only\).)2.843 F .343(If no)5.343
-F .176(option is gi)144 96 R -.15(ve)-.25 G .176(n, then).15 F F2<ad66>
-2.676 E F0 .175(is assumed.)2.676 F -1.11(Va)5.175 G .175
-(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F2
-<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 108 Q
-F2<ad70>2.515 E F0 2.515(,w)C .015
-(hich is in units of 512-byte blocks, and)-2.515 F F2<ad54>2.516 E F0(,)
-A F2<ad62>2.516 E F0(,)A F2<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F2
+-.35 E/F1 10/Times-Bold@0 SF<ad64>144 84 Q F0
+(The maximum size of a process')24.74 E 2.5(sd)-.55 G(ata se)-2.5 E
+(gment)-.15 E F1<ad65>144 96 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 108 Q F0
+(The maximum size of \214les written by the shell and its children)26.97
+E F1<ad69>144 120 Q F0(The maximum number of pending signals)27.52 E F1
+<ad6c>144 132 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 144 Q F0
+(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F1<ad6e>144 156 Q F0 .791(The \
+maximum number of open \214le descriptors \(most systems do not allo)
+24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
+168 Q F1<ad70>144 180 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
+<ad71>144 192 Q F0(The maximum number of bytes in POSIX message queues)
+24.74 E F1<ad72>144 204 Q F0(The maximum real-time scheduling priority)
+25.86 E F1<ad73>144 216 Q F0(The maximum stack size)26.41 E F1<ad74>144
+228 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
+240 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 252 Q F0
+(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
+(ilable to the shell).25 E F1<ad78>144 264 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 276 Q F0
+(The maximum number of threads)23.63 E(If)144 292.8 Q/F2 10
+/Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G
+.343(n, it is the ne).15 F 2.843(wv)-.25 G .343
+(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>2.843 E F0 .343
+(option is display only\).)2.843 F .343(If no)5.343 F .176(option is gi)
+144 304.8 R -.15(ve)-.25 G .176(n, then).15 F F1<ad66>2.676 E F0 .175
+(is assumed.)2.676 F -1.11(Va)5.175 G .175
+(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1
+<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 316.8
+Q F1<ad70>2.515 E F0 2.515(,w)C .015
+(hich is in units of 512-byte blocks, and)-2.515 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.516 E F0(,)A F1<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F1
<ad75>2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E
-3.788(ues. The)144 120 R 1.287(return status is 0 unless an in)3.787 F
+3.788(ues. The)144 328.8 R 1.287(return status is 0 unless an in)3.787 F
-.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
-132 Q 2.5(wl)-.25 G(imit.)-2.5 E F2(umask)108 148.8 Q F0([)2.5 E F2
-<ad70>A F0 2.5(][)C F2<ad53>-2.5 E F0 2.5(][)C F1(mode)-2.5 E F0(])A .2
-(The user \214le-creation mask is set to)144 160.8 R F1(mode)2.7 E F0
-5.2(.I).18 G(f)-5.2 E F1(mode)3.08 E F0(be)2.88 E .2
+340.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 357.6 Q F0([)2.5 E F1
+<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
+(The user \214le-creation mask is set to)144 369.6 R F2(mode)2.7 E F0
+5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 172.8 R F1 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-184.8 Q F1(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
-(alue of the mask is printed.)-.25 F(The)5.382 E F2<ad53>2.882 E F0 .382
+pted by)144 381.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+393.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 196.8 R .547
+(printed in symbolic form; the def)144 405.6 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
-(he)-3.047 E F2<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F1
-(mode)144.38 208.8 Q F0 .551
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
+(mode)144.38 417.6 Q F0 .551
(is omitted, the output is in a form that may be reused as input.)3.231
-F .552(The return status is 0 if the)5.552 F(mode w)144 220.8 Q
-(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
-(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F2
-(unalias)108 237.6 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1(name)-2.5 E F0
-(...])2.5 E(Remo)144 249.6 Q 1.955 -.15(ve e)-.15 H(ach).15 E F1(name)
+F .552(The return status is 0 if the)5.552 F(mode w)144 429.6 Q
+(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
+(unalias)108 446.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 458.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
-F2<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 261.6 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
-(alue is true unless a supplied)-.25 E F1(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F2(unset)108 278.4 Q F0<5bad>2.5 E F2
-(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 290.4 S 3.106
-(re).15 G(ach)-3.106 E F1(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
+F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
+F(remo)144 470.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
+(is not a de\214ned alias.)2.68 E F1(unset)108 487.2 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 499.2 S 3.106
+(re).15 G(ach)-3.106 E F2(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
(ariable or function.)-.25 F .607(If no options are supplied, or the)
-5.607 F F2<ad76>144 302.4 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
-.305(n, each).15 F F1(name)3.165 E F0 .305(refers to a shell v)2.985 F
+5.607 F F1<ad76>144 511.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
+.305(n, each).15 F F2(name)3.165 E F0 .305(refers to a shell v)2.985 F
2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
-(riables may not be unset.).25 F(If)5.304 E F2<ad66>144 314.4 Q F0 .459
-(is speci\214ed, each)2.959 F F1(name)3.319 E F0 .459
+(riables may not be unset.).25 F(If)5.304 E F1<ad66>144 523.2 Q F0 .459
+(is speci\214ed, each)2.959 F F2(name)3.319 E F0 .459
(refers to a shell function, and the function de\214nition is remo)3.139
-F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 326.4 R .903
+F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 535.2 R .903
(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
(rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F
-(If)5.902 E(an)144 338.4 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
+(If)5.902 E(an)144 547.2 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
SF(RANDOM)4.284 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
(LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME)
-.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST)
4.285 E -.495(AC)-.81 G(K).495 E F0(are)4.035 E .329(unset, the)144
-350.4 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
+559.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
-.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)
-.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .328
-(xit status is true)-.15 F(unless a)144 362.4 Q F1(name)2.86 E F0
-(is readonly)2.68 E(.)-.65 E F2(wait)108 379.2 Q F0([)2.5 E F1 2.5(n.)C
-(..)-2.5 E F0(])A -.8(Wa)144 391.2 S .288
+(xit status is true)-.15 F(unless a)144 571.2 Q F2(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F1(wait)108 588 Q F0([)2.5 E F2 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 600 S .288
(it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F1(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 403.2 R -.15(ve)-.25 G
-.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
-(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
-F1(n)3.582 E F0(is)3.462 E 1.265(not gi)144 415.2 R -.15(ve)-.25 G 1.265
+(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
+(job speci\214cation; if a job spec is gi)144 612 R -.15(ve)-.25 G .722
+(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
+-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0
+(is)3.462 E 1.265(not gi)144 624 R -.15(ve)-.25 G 1.265
(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
-(nd the return status is zero.)-3.765 F(If)6.266 E F1(n)4.126 E F0 .457
-(speci\214es a non-e)144 427.2 R .457
+(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457
+(speci\214es a non-e)144 636 R .457
(xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F -.15(ex)144 439.2 S
+(Otherwise, the return status is the)5.457 F -.15(ex)144 648 S
(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
-/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 456 Q F0(If)108 468 Q F2
-(bash)4.396 E F0 1.896(is started with the name)4.396 F F2(rbash)4.397 E
-F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>4.397 E F0 1.897
+/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 664.8 Q F0(If)108 676.8 Q
+F1(bash)4.396 E F0 1.896(is started with the name)4.396 F F1(rbash)4.397
+E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F1<ad72>4.397 E F0 1.897
(option is supplied at in)4.397 F -.2(vo)-.4 G 1.897
-(cation, the shell becomes).2 F 3.446(restricted. A)108 480 R .945
+(cation, the shell becomes).2 F 3.446(restricted. A)108 688.8 R .945
(restricted shell is used to set up an en)3.446 F .945
(vironment more controlled than the standard shell.)-.4 F(It)5.945 E
-(beha)108 492 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2(bash)
-2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
+(beha)108 700.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1
+(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108
-508.8 S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108
-525.6 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F2(SHELL)2.5 E
-F0(,)A F2 -.74(PA)2.5 G(TH)-.21 E F0(,)A F2(ENV)2.5 E F0 2.5(,o)C(r)-2.5
-E F2 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 542.4 S
-(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
-559.2 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0
-(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
-(iltin command).2 E 32.5<8353>108 576 S .351
-(pecifying a \214lename containing a slash as an ar)-32.5 F .351
-(gument to the)-.18 F F2<ad70>2.851 E F0 .351(option to the)2.851 F F2
-(hash)2.852 E F0 -.2(bu)2.852 G .352(iltin com-).2 F(mand)144 588 Q 32.5
-<8369>108 604.8 S(mporting function de\214nitions from the shell en)
--32.5 E(vironment at startup)-.4 E 32.5<8370>108 621.6 S(arsing the v)
--32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
-(vironment at startup)-.4 E 32.5<8372>108 638.4 S(edirecting output usi\
-ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
-<8375>108 655.2 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G
-(iltin command to replace the shell with another command).2 E 32.5<8361>
-108 672 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E F2
-<ad66>2.5 E F0(and)2.5 E F2<ad64>2.5 E F0(options to the)2.5 E F2
-(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 688.8 S
-(sing the)-32.5 E F2(enable)2.5 E F0 -.2(bu)2.5 G
-(iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373>
-108 705.6 S(pecifying the)-32.5 E F2<ad70>2.5 E F0(option to the)2.5 E
-F2(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E(GNU Bash-4.1)72 768
-Q(2009 September 16)135.125 E(68)185.115 E 0 Cg EP
+717.6 S(hanging directories with)-32.5 E F1(cd)2.5 E F0(GNU Bash-4.1)72
+768 Q(2009 October 9)142.905 E(68)192.895 E 0 Cg EP
%%Page: 69 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 32.5<8374>108 84 S(urning of)-32.5 E 2.5(fr)-.25 G
-(estricted mode with)-2.5 E/F1 10/Times-Bold@0 SF(set +r)2.5 E F0(or)2.5
-E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A
-(These restrictions are enforced after an)108 100.8 Q 2.5(ys)-.15 G
+-.35 E 32.5<8373>108 84 S(etting or unsetting the v)-32.5 E(alues of)
+-.25 E/F1 10/Times-Bold@0 SF(SHELL)2.5 E F0(,)A F1 -.74(PA)2.5 G(TH)-.21
+E F0(,)A F1(ENV)2.5 E F0 2.5(,o)C(r)-2.5 E F1 -.3(BA)2.5 G(SH_ENV).3 E
+F0 32.5<8373>108 100.8 S(pecifying command names containing)-32.5 E F1
+(/)2.5 E F0 32.5<8373>108 117.6 S(pecifying a \214le name containing a)
+-32.5 E F1(/)2.5 E F0(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E F0
+-.2(bu)5 G(iltin command).2 E 32.5<8353>108 134.4 S .351
+(pecifying a \214lename containing a slash as an ar)-32.5 F .351
+(gument to the)-.18 F F1<ad70>2.851 E F0 .351(option to the)2.851 F F1
+(hash)2.852 E F0 -.2(bu)2.852 G .352(iltin com-).2 F(mand)144 146.4 Q
+32.5<8369>108 163.2 S(mporting function de\214nitions from the shell en)
+-32.5 E(vironment at startup)-.4 E 32.5<8370>108 180 S(arsing the v)
+-32.5 E(alue of)-.25 E F1(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
+(vironment at startup)-.4 E 32.5<8372>108 196.8 S(edirecting output usi\
+ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
+<8375>108 213.6 S(sing the)-32.5 E F1(exec)2.5 E F0 -.2(bu)2.5 G
+(iltin command to replace the shell with another command).2 E 32.5<8361>
+108 230.4 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E
+F1<ad66>2.5 E F0(and)2.5 E F1<ad64>2.5 E F0(options to the)2.5 E F1
+(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 247.2 S
+(sing the)-32.5 E F1(enable)2.5 E F0 -.2(bu)2.5 G
+(iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373>
+108 264 S(pecifying the)-32.5 E F1<ad70>2.5 E F0(option to the)2.5 E F1
+(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 280.8 S
+(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F1(set +r)
+2.5 E F0(or)2.5 E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A
+(These restrictions are enforced after an)108 297.6 Q 2.5(ys)-.15 G
(tartup \214les are read.)-2.5 E 1.566
-(When a command that is found to be a shell script is e)108 117.6 R -.15
+(When a command that is found to be a shell script is e)108 314.4 R -.15
(xe)-.15 G 1.566(cuted \(see).15 F/F2 9/Times-Bold@0 SF 1.566
(COMMAND EXECUTION)4.066 F F0(abo)3.816 E -.15(ve)-.15 G(\),).15 E F1
-(rbash)108 129.6 Q F0(turns of)2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H
+(rbash)108 326.4 Q F0(turns of)2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H
(estrictions in the shell spa).15 E(wned to e)-.15 E -.15(xe)-.15 G
-(cute the script.).15 E/F3 10.95/Times-Bold@0 SF(SEE ALSO)72 146.4 Q/F4
-10/Times-Italic@0 SF(Bash Refer)108 158.4 Q(ence Manual)-.37 E F0 2.5
+(cute the script.).15 E/F3 10.95/Times-Bold@0 SF(SEE ALSO)72 343.2 Q/F4
+10/Times-Italic@0 SF(Bash Refer)108 355.2 Q(ence Manual)-.37 E F0 2.5
(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F4
-(The Gnu Readline Libr)108 170.4 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F4(The Gnu History Libr)108 182.4 Q
+(The Gnu Readline Libr)108 367.2 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F4(The Gnu History Libr)108 379.2 Q
(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
-F4 -.8(Po)108 194.4 S(rtable Oper).8 E
+F4 -.8(Po)108 391.2 S(rtable Oper).8 E
(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities)
--.8 E F0 2.5(,I)C(EEE)-2.5 E F4(sh)108 206.4 Q F0(\(1\),)A F4(ksh)2.5 E
-F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A F4(emacs)108 218.4 Q F0(\(1\),)A F4
-(vi)2.5 E F0(\(1\))A F4 -.37(re)108 230.4 S(adline).37 E F0(\(3\))A F3
-(FILES)72 247.2 Q F4(/bin/bash)109.666 259.2 Q F0(The)144 271.2 Q F1
-(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E F4(/etc/pr)109.666 283.2 Q
-(o\214le)-.45 E F0(The systemwide initialization \214le, e)144 295.2 Q
--.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bash_pr)109.666 307.2
-Q(o\214le)-.45 E F0(The personal initialization \214le, e)144 319.2 Q
--.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bashr)109.666 331.2 Q
-(c)-.37 E F0(The indi)144 343.2 Q(vidual per)-.25 E(-interacti)-.2 E
--.15(ve)-.25 G(-shell startup \214le).15 E F4(~/.bash_lo)109.666 355.2 Q
-(gout)-.1 E F0(The indi)144 367.2 Q
-(vidual login shell cleanup \214le, e)-.25 E -.15(xe)-.15 G
-(cuted when a login shell e).15 E(xits)-.15 E F4(~/.inputr)109.666 379.2
-Q(c)-.37 E F0(Indi)144 391.2 Q(vidual)-.25 E F4 -.37(re)2.5 G(adline).37
-E F0(initialization \214le)2.5 E F3 -.548(AU)72 408 S(THORS).548 E F0
-(Brian F)108 420 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(bfox@gnu.or)108 432 Q(g)-.18 E(Chet Rame)108 448.8 Q 1.3 -.65(y, C)-.15
-H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G
-(rsity).15 E(chet.rame)108 460.8 Q(y@case.edu)-.15 E F3 -.11(BU)72 477.6
-S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567(If you \214nd a b)108
-489.6 R .568(ug in)-.2 F F1(bash,)3.068 E F0 .568(you should report it.)
-3.068 F .568(But \214rst, you should mak)5.568 F 3.068(es)-.1 G .568
-(ure that it really is a b)-3.068 F .568(ug, and)-.2 F 5.626
-(that it appears in the latest v)108 501.6 R 5.625(ersion of)-.15 F F1
-(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
+-.8 E F0 2.5(,I)C(EEE)-2.5 E F4(sh)108 403.2 Q F0(\(1\),)A F4(ksh)2.5 E
+F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A F4(emacs)108 415.2 Q F0(\(1\),)A F4
+(vi)2.5 E F0(\(1\))A F4 -.37(re)108 427.2 S(adline).37 E F0(\(3\))A F3
+(FILES)72 444 Q F4(/bin/bash)109.666 456 Q F0(The)144 468 Q F1(bash)2.5
+E F0 -.15(exe)2.5 G(cutable).15 E F4(/etc/pr)109.666 480 Q(o\214le)-.45
+E F0(The systemwide initialization \214le, e)144 492 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F4(~/.bash_pr)109.666 504 Q(o\214le)-.45 E
+F0(The personal initialization \214le, e)144 516 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F4(~/.bashr)109.666 528 Q(c)-.37 E F0
+(The indi)144 540 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
+(-shell startup \214le).15 E F4(~/.bash_lo)109.666 552 Q(gout)-.1 E F0
+(The indi)144 564 Q(vidual login shell cleanup \214le, e)-.25 E -.15(xe)
+-.15 G(cuted when a login shell e).15 E(xits)-.15 E F4(~/.inputr)109.666
+576 Q(c)-.37 E F0(Indi)144 588 Q(vidual)-.25 E F4 -.37(re)2.5 G(adline)
+.37 E F0(initialization \214le)2.5 E F3 -.548(AU)72 604.8 S(THORS).548 E
+F0(Brian F)108 616.8 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15
+E(bfox@gnu.or)108 628.8 Q(g)-.18 E(Chet Rame)108 645.6 Q 1.3 -.65(y, C)
+-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)
+-.25 G(rsity).15 E(chet.rame)108 657.6 Q(y@case.edu)-.15 E F3 -.11(BU)72
+674.4 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567
+(If you \214nd a b)108 686.4 R .568(ug in)-.2 F F1(bash,)3.068 E F0 .568
+(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F
+3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .568(ug, and)-.2
+F 5.626(that it appears in the latest v)108 698.4 R 5.625(ersion of)-.15
+F F1(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
(ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625
-(ilable from).25 F F4(ftp://ftp.gnu.or)108 513.6 Q(g/pub/bash/)-.37 E F0
-(.)A .41(Once you ha)108 530.4 R .71 -.15(ve d)-.2 H .41
+(ilable from).25 F F4(ftp://ftp.gnu.or)108 710.4 Q(g/pub/bash/)-.37 E F0
+(.)A .41(Once you ha)108 727.2 R .71 -.15(ve d)-.2 H .41
(etermined that a b).15 F .41(ug actually e)-.2 F .411(xists, use the)
-.15 F F4(bashb)3.181 E(ug)-.2 E F0 .411(command to submit a b)3.131 F
-.411(ug report.)-.2 F(If)5.411 E .595(you ha)108 542.4 R .895 -.15
-(ve a \214)-.2 H .595(x, you are encouraged to mail that as well!).15 F
-.594(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F
-(be mailed to)108 554.4 Q F4 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
-(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F1(gnu.bash.b)2.5 E(ug)
--.2 E F0(.)A(ALL b)108 571.2 Q(ug reports should include:)-.2 E(The v)
-108 588 Q(ersion number of)-.15 E F1(bash)2.5 E F0(The hardw)108 600 Q
-(are and operating system)-.1 E(The compiler used to compile)108 612 Q
-2.5(Ad)108 624 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E
-2.5(As)108 636 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G
-(rcises the b).15 E(ug)-.2 E F4(bashb)108.27 652.8 Q(ug)-.2 E F0
-(inserts the \214rst three items automatically into the template it pro)
-2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
-669.6 Q(ug reports concerning this manual page should be directed to)-.2
-E F4 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E F3 -.11(BU)72 686.4 S
-(GS).11 E F0(It')108 698.4 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E
--.65(w.)-.25 G 1.868(There are some subtle dif)108 715.2 R 1.868
-(ferences between)-.25 F F1(bash)4.369 E F0 1.869(and traditional v)
-4.369 F 1.869(ersions of)-.15 F F1(sh)4.369 E F0 4.369(,m)C 1.869
-(ostly because of the)-4.369 F F2(POSIX)108 727.2 Q F0(speci\214cation.)
-2.25 E(GNU Bash-4.1)72 768 Q(2009 September 16)135.125 E(69)185.115 E 0
-Cg EP
+.411(ug report.)-.2 F(If)5.411 E(GNU Bash-4.1)72 768 Q(2009 October 9)
+142.905 E(69)192.895 E 0 Cg EP
%%Page: 70 70
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(Aliases are confusing in some uses.)108 84 Q(Shell b)108 100.8 Q
+-.35 E .595(you ha)108 84 R .895 -.15(ve a \214)-.2 H .595
+(x, you are encouraged to mail that as well!).15 F .594
+(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F
+(be mailed to)108 96 Q/F1 10/Times-Italic@0 SF -.2(bu)2.5 G
+(g-bash@gnu.or).2 E(g)-.37 E F0(or posted to the Usenet ne)2.5 E
+(wsgroup)-.25 E/F2 10/Times-Bold@0 SF(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A
+(ALL b)108 112.8 Q(ug reports should include:)-.2 E(The v)108 129.6 Q
+(ersion number of)-.15 E F2(bash)2.5 E F0(The hardw)108 141.6 Q
+(are and operating system)-.1 E(The compiler used to compile)108 153.6 Q
+2.5(Ad)108 165.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E
+2.5(As)108 177.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G
+(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 194.4 Q(ug)-.2 E F0
+(inserts the \214rst three items automatically into the template it pro)
+2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
+211.2 Q(ug reports concerning this manual page should be directed to)-.2
+E F1 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E/F3 10.95/Times-Bold@0
+SF -.11(BU)72 228 S(GS).11 E F0(It')108 240 Q 2.5(st)-.55 G
+(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.868
+(There are some subtle dif)108 256.8 R 1.868(ferences between)-.25 F F2
+(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
+F2(sh)4.369 E F0 4.369(,m)C 1.869(ostly because of the)-4.369 F/F4 9
+/Times-Bold@0 SF(POSIX)108 268.8 Q F0(speci\214cation.)2.25 E
+(Aliases are confusing in some uses.)108 285.6 Q(Shell b)108 302.4 Q
(uiltin commands and functions are not stoppable/restartable.)-.2 E
1.315(Compound commands and command sequences of the form `a ; b ; c' a\
-re not handled gracefully when)108 117.6 R .389
-(process suspension is attempted.)108 129.6 R .389
+re not handled gracefully when)108 319.2 R .389
+(process suspension is attempted.)108 331.2 R .389
(When a process is stopped, the shell immediately e)5.389 F -.15(xe)-.15
G .39(cutes the ne).15 F .39(xt com-)-.15 F .193(mand in the sequence.)
-108 141.6 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\
+108 343.2 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\
ommands between parentheses to force it into a)-.25 F
-(subshell, which may be stopped as a unit.)108 153.6 Q(Array v)108 170.4
-Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
-(There may be only one acti)108 187.2 Q .3 -.15(ve c)-.25 H
-(oprocess at a time.).15 E(GNU Bash-4.1)72 768 Q(2009 September 16)
-135.125 E(70)185.115 E 0 Cg EP
+(subshell, which may be stopped as a unit.)108 355.2 Q(Array v)108 372 Q
+(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
+(There may be only one acti)108 388.8 Q .3 -.15(ve c)-.25 H
+(oprocess at a time.).15 E(GNU Bash-4.1)72 768 Q(2009 October 9)142.905
+E(70)192.895 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/bashref.aux b/doc/bashref.aux
index 4f351a9f..db5bc3c6 100644
--- a/doc/bashref.aux
+++ b/doc/bashref.aux
@@ -66,9 +66,9 @@
@xrdef{Coprocesses-title}{Coprocesses}
@xrdef{Coprocesses-snt}{Section@tie 3.2.5}
@xrdef{Command Grouping-pg}{13}
-@xrdef{Coprocesses-pg}{13}
@xrdef{Shell Functions-title}{Shell Functions}
@xrdef{Shell Functions-snt}{Section@tie 3.3}
+@xrdef{Coprocesses-pg}{14}
@xrdef{Shell Functions-pg}{14}
@xrdef{Shell Parameters-title}{Shell Parameters}
@xrdef{Shell Parameters-snt}{Section@tie 3.4}
@@ -87,9 +87,9 @@
@xrdef{Tilde Expansion-title}{Tilde Expansion}
@xrdef{Tilde Expansion-snt}{Section@tie 3.5.2}
@xrdef{Brace Expansion-pg}{18}
-@xrdef{Tilde Expansion-pg}{18}
@xrdef{Shell Parameter Expansion-title}{Shell Parameter Expansion}
@xrdef{Shell Parameter Expansion-snt}{Section@tie 3.5.3}
+@xrdef{Tilde Expansion-pg}{19}
@xrdef{Shell Parameter Expansion-pg}{19}
@xrdef{Command Substitution-title}{Command Substitution}
@xrdef{Command Substitution-snt}{Section@tie 3.5.4}
@@ -221,14 +221,14 @@
@xrdef{Job Control-snt}{Chapter@tie 7}
@xrdef{Job Control Basics-title}{Job Control Basics}
@xrdef{Job Control Basics-snt}{Section@tie 7.1}
-@xrdef{Job Control-pg}{87}
-@xrdef{Job Control Basics-pg}{87}
+@xrdef{Job Control-pg}{89}
+@xrdef{Job Control Basics-pg}{89}
@xrdef{Job Control Builtins-title}{Job Control Builtins}
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
-@xrdef{Job Control Builtins-pg}{88}
+@xrdef{Job Control Builtins-pg}{90}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
-@xrdef{Job Control Variables-pg}{90}
+@xrdef{Job Control Variables-pg}{92}
@xrdef{Command Line Editing-title}{Command Line Editing}
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
@@ -237,142 +237,142 @@
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
-@xrdef{Command Line Editing-pg}{91}
-@xrdef{Introduction and Notation-pg}{91}
-@xrdef{Readline Interaction-pg}{91}
+@xrdef{Command Line Editing-pg}{93}
+@xrdef{Introduction and Notation-pg}{93}
+@xrdef{Readline Interaction-pg}{93}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
-@xrdef{Readline Bare Essentials-pg}{92}
-@xrdef{Readline Movement Commands-pg}{92}
+@xrdef{Readline Bare Essentials-pg}{94}
+@xrdef{Readline Movement Commands-pg}{94}
@xrdef{Readline Arguments-title}{Readline Arguments}
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
@xrdef{Searching-title}{Searching for Commands in the History}
@xrdef{Searching-snt}{Section@tie 8.2.5}
-@xrdef{Readline Killing Commands-pg}{93}
-@xrdef{Readline Arguments-pg}{93}
-@xrdef{Searching-pg}{93}
+@xrdef{Readline Killing Commands-pg}{95}
+@xrdef{Readline Arguments-pg}{95}
+@xrdef{Searching-pg}{95}
@xrdef{Readline Init File-title}{Readline Init File}
@xrdef{Readline Init File-snt}{Section@tie 8.3}
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
-@xrdef{Readline Init File-pg}{94}
-@xrdef{Readline Init File Syntax-pg}{94}
+@xrdef{Readline Init File-pg}{96}
+@xrdef{Readline Init File Syntax-pg}{96}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
-@xrdef{Conditional Init Constructs-pg}{100}
+@xrdef{Conditional Init Constructs-pg}{102}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
-@xrdef{Sample Init File-pg}{101}
+@xrdef{Sample Init File-pg}{103}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
@xrdef{Commands For Moving-title}{Commands For Moving}
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
@xrdef{Commands For History-title}{Commands For Manipulating The History}
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
-@xrdef{Bindable Readline Commands-pg}{104}
-@xrdef{Commands For Moving-pg}{104}
-@xrdef{Commands For History-pg}{105}
+@xrdef{Bindable Readline Commands-pg}{106}
+@xrdef{Commands For Moving-pg}{106}
+@xrdef{Commands For History-pg}{107}
@xrdef{Commands For Text-title}{Commands For Changing Text}
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
-@xrdef{Commands For Text-pg}{106}
+@xrdef{Commands For Text-pg}{108}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
-@xrdef{Commands For Killing-pg}{107}
+@xrdef{Commands For Killing-pg}{109}
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
-@xrdef{Numeric Arguments-pg}{108}
-@xrdef{Commands For Completion-pg}{108}
+@xrdef{Numeric Arguments-pg}{110}
+@xrdef{Commands For Completion-pg}{110}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
-@xrdef{Keyboard Macros-pg}{110}
-@xrdef{Miscellaneous Commands-pg}{110}
+@xrdef{Keyboard Macros-pg}{112}
+@xrdef{Miscellaneous Commands-pg}{112}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
-@xrdef{Readline vi Mode-pg}{112}
+@xrdef{Readline vi Mode-pg}{114}
@xrdef{Programmable Completion-title}{Programmable Completion}
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
-@xrdef{Programmable Completion-pg}{113}
+@xrdef{Programmable Completion-pg}{115}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
-@xrdef{Programmable Completion Builtins-pg}{115}
+@xrdef{Programmable Completion Builtins-pg}{117}
@xrdef{Using History Interactively-title}{Using History Interactively}
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
@xrdef{Bash History Facilities-title}{Bash History Facilities}
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
@xrdef{Bash History Builtins-title}{Bash History Builtins}
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
-@xrdef{Using History Interactively-pg}{119}
-@xrdef{Bash History Facilities-pg}{119}
-@xrdef{Bash History Builtins-pg}{119}
+@xrdef{Using History Interactively-pg}{121}
+@xrdef{Bash History Facilities-pg}{121}
+@xrdef{Bash History Builtins-pg}{121}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{Event Designators-title}{Event Designators}
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
-@xrdef{History Interaction-pg}{121}
-@xrdef{Event Designators-pg}{121}
+@xrdef{History Interaction-pg}{123}
+@xrdef{Event Designators-pg}{123}
@xrdef{Word Designators-title}{Word Designators}
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
-@xrdef{Word Designators-pg}{122}
+@xrdef{Word Designators-pg}{124}
@xrdef{Modifiers-title}{Modifiers}
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
-@xrdef{Modifiers-pg}{123}
+@xrdef{Modifiers-pg}{125}
@xrdef{Installing Bash-title}{Installing Bash}
@xrdef{Installing Bash-snt}{Chapter@tie 10}
@xrdef{Basic Installation-title}{Basic Installation}
@xrdef{Basic Installation-snt}{Section@tie 10.1}
@xrdef{Compilers and Options-title}{Compilers and Options}
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
-@xrdef{Installing Bash-pg}{125}
-@xrdef{Basic Installation-pg}{125}
+@xrdef{Installing Bash-pg}{127}
+@xrdef{Basic Installation-pg}{127}
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
@xrdef{Installation Names-title}{Installation Names}
@xrdef{Installation Names-snt}{Section@tie 10.4}
@xrdef{Specifying the System Type-title}{Specifying the System Type}
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
-@xrdef{Compilers and Options-pg}{126}
-@xrdef{Compiling For Multiple Architectures-pg}{126}
-@xrdef{Installation Names-pg}{126}
-@xrdef{Specifying the System Type-pg}{126}
+@xrdef{Compilers and Options-pg}{128}
+@xrdef{Compiling For Multiple Architectures-pg}{128}
+@xrdef{Installation Names-pg}{128}
+@xrdef{Specifying the System Type-pg}{128}
@xrdef{Sharing Defaults-title}{Sharing Defaults}
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
@xrdef{Operation Controls-title}{Operation Controls}
@xrdef{Operation Controls-snt}{Section@tie 10.7}
@xrdef{Optional Features-title}{Optional Features}
@xrdef{Optional Features-snt}{Section@tie 10.8}
-@xrdef{Sharing Defaults-pg}{127}
-@xrdef{Operation Controls-pg}{127}
-@xrdef{Optional Features-pg}{127}
+@xrdef{Sharing Defaults-pg}{129}
+@xrdef{Operation Controls-pg}{129}
+@xrdef{Optional Features-pg}{129}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
-@xrdef{Reporting Bugs-pg}{133}
+@xrdef{Reporting Bugs-pg}{135}
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
-@xrdef{Major Differences From The Bourne Shell-pg}{135}
+@xrdef{Major Differences From The Bourne Shell-pg}{137}
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}}
-@xrdef{GNU Free Documentation License-pg}{141}
+@xrdef{GNU Free Documentation License-pg}{143}
@xrdef{Indexes-title}{Indexes}
@xrdef{Indexes-snt}{Appendix@tie @char68{}}
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
@xrdef{Builtin Index-snt}{Section@tie @char68.1}
-@xrdef{Indexes-pg}{149}
-@xrdef{Builtin Index-pg}{149}
+@xrdef{Indexes-pg}{151}
+@xrdef{Builtin Index-pg}{151}
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
@xrdef{Reserved Word Index-snt}{Section@tie @char68.2}
@xrdef{Variable Index-title}{Parameter and Variable Index}
@xrdef{Variable Index-snt}{Section@tie @char68.3}
-@xrdef{Reserved Word Index-pg}{150}
-@xrdef{Variable Index-pg}{150}
+@xrdef{Reserved Word Index-pg}{152}
+@xrdef{Variable Index-pg}{152}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-snt}{Section@tie @char68.4}
-@xrdef{Function Index-pg}{152}
+@xrdef{Function Index-pg}{154}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-snt}{Section@tie @char68.5}
-@xrdef{Concept Index-pg}{154}
+@xrdef{Concept Index-pg}{156}
diff --git a/doc/bashref.bt b/doc/bashref.bt
index b73581d6..7d013d2d 100644
--- a/doc/bashref.bt
+++ b/doc/bashref.bt
@@ -34,7 +34,7 @@
\entry{mapfile}{46}{\code {mapfile}}
\entry{printf}{47}{\code {printf}}
\entry{read}{47}{\code {read}}
-\entry{readarray}{48}{\code {readarray}}
+\entry{readarray}{49}{\code {readarray}}
\entry{source}{49}{\code {source}}
\entry{type}{49}{\code {type}}
\entry{typeset}{49}{\code {typeset}}
@@ -45,15 +45,15 @@
\entry{dirs}{81}{\code {dirs}}
\entry{popd}{82}{\code {popd}}
\entry{pushd}{82}{\code {pushd}}
-\entry{bg}{88}{\code {bg}}
-\entry{fg}{88}{\code {fg}}
-\entry{jobs}{88}{\code {jobs}}
-\entry{kill}{89}{\code {kill}}
-\entry{wait}{89}{\code {wait}}
-\entry{disown}{89}{\code {disown}}
-\entry{suspend}{89}{\code {suspend}}
-\entry{compgen}{115}{\code {compgen}}
-\entry{complete}{115}{\code {complete}}
-\entry{compopt}{118}{\code {compopt}}
-\entry{fc}{119}{\code {fc}}
-\entry{history}{120}{\code {history}}
+\entry{bg}{90}{\code {bg}}
+\entry{fg}{90}{\code {fg}}
+\entry{jobs}{90}{\code {jobs}}
+\entry{kill}{91}{\code {kill}}
+\entry{wait}{91}{\code {wait}}
+\entry{disown}{91}{\code {disown}}
+\entry{suspend}{91}{\code {suspend}}
+\entry{compgen}{117}{\code {compgen}}
+\entry{complete}{117}{\code {complete}}
+\entry{compopt}{120}{\code {compopt}}
+\entry{fc}{121}{\code {fc}}
+\entry{history}{122}{\code {history}}
diff --git a/doc/bashref.bts b/doc/bashref.bts
index 4d1930d6..50c053e8 100644
--- a/doc/bashref.bts
+++ b/doc/bashref.bts
@@ -7,7 +7,7 @@
\initial {A}
\entry {\code {alias}}{41}
\initial {B}
-\entry {\code {bg}}{88}
+\entry {\code {bg}}{90}
\entry {\code {bind}}{41}
\entry {\code {break}}{35}
\entry {\code {builtin}}{43}
@@ -15,14 +15,14 @@
\entry {\code {caller}}{43}
\entry {\code {cd}}{36}
\entry {\code {command}}{43}
-\entry {\code {compgen}}{115}
-\entry {\code {complete}}{115}
-\entry {\code {compopt}}{118}
+\entry {\code {compgen}}{117}
+\entry {\code {complete}}{117}
+\entry {\code {compopt}}{120}
\entry {\code {continue}}{36}
\initial {D}
\entry {\code {declare}}{43}
\entry {\code {dirs}}{81}
-\entry {\code {disown}}{89}
+\entry {\code {disown}}{91}
\initial {E}
\entry {\code {echo}}{45}
\entry {\code {enable}}{45}
@@ -31,18 +31,18 @@
\entry {\code {exit}}{36}
\entry {\code {export}}{36}
\initial {F}
-\entry {\code {fc}}{119}
-\entry {\code {fg}}{88}
+\entry {\code {fc}}{121}
+\entry {\code {fg}}{90}
\initial {G}
\entry {\code {getopts}}{37}
\initial {H}
\entry {\code {hash}}{37}
\entry {\code {help}}{46}
-\entry {\code {history}}{120}
+\entry {\code {history}}{122}
\initial {J}
-\entry {\code {jobs}}{88}
+\entry {\code {jobs}}{90}
\initial {K}
-\entry {\code {kill}}{89}
+\entry {\code {kill}}{91}
\initial {L}
\entry {\code {let}}{46}
\entry {\code {local}}{46}
@@ -56,7 +56,7 @@
\entry {\code {pwd}}{38}
\initial {R}
\entry {\code {read}}{47}
-\entry {\code {readarray}}{48}
+\entry {\code {readarray}}{49}
\entry {\code {readonly}}{38}
\entry {\code {return}}{38}
\initial {S}
@@ -64,7 +64,7 @@
\entry {\code {shift}}{38}
\entry {\code {shopt}}{55}
\entry {\code {source}}{49}
-\entry {\code {suspend}}{89}
+\entry {\code {suspend}}{91}
\initial {T}
\entry {\code {test}}{39}
\entry {\code {times}}{40}
@@ -77,4 +77,4 @@
\entry {\code {unalias}}{50}
\entry {\code {unset}}{41}
\initial {W}
-\entry {\code {wait}}{89}
+\entry {\code {wait}}{91}
diff --git a/doc/bashref.cp b/doc/bashref.cp
index 67c74327..cb8717d7 100644
--- a/doc/bashref.cp
+++ b/doc/bashref.cp
@@ -36,7 +36,7 @@
\entry{commands, looping}{9}{commands, looping}
\entry{commands, conditional}{10}{commands, conditional}
\entry{commands, grouping}{13}{commands, grouping}
-\entry{coprocess}{13}{coprocess}
+\entry{coprocess}{14}{coprocess}
\entry{shell function}{14}{shell function}
\entry{functions, shell}{14}{functions, shell}
\entry{parameters}{15}{parameters}
@@ -47,8 +47,8 @@
\entry{expansion}{17}{expansion}
\entry{brace expansion}{18}{brace expansion}
\entry{expansion, brace}{18}{expansion, brace}
-\entry{tilde expansion}{18}{tilde expansion}
-\entry{expansion, tilde}{18}{expansion, tilde}
+\entry{tilde expansion}{19}{tilde expansion}
+\entry{expansion, tilde}{19}{expansion, tilde}
\entry{parameter expansion}{19}{parameter expansion}
\entry{expansion, parameter}{19}{expansion, parameter}
\entry{command substitution}{22}{command substitution}
@@ -89,30 +89,30 @@
\entry{prompting}{82}{prompting}
\entry{restricted shell}{84}{restricted shell}
\entry{POSIX Mode}{84}{POSIX Mode}
-\entry{job control}{87}{job control}
-\entry{foreground}{87}{foreground}
-\entry{background}{87}{background}
-\entry{suspending jobs}{87}{suspending jobs}
-\entry{Readline, how to use}{90}{Readline, how to use}
-\entry{interaction, readline}{91}{interaction, readline}
-\entry{notation, readline}{92}{notation, readline}
-\entry{command editing}{92}{command editing}
-\entry{editing command lines}{92}{editing command lines}
-\entry{killing text}{93}{killing text}
-\entry{yanking text}{93}{yanking text}
-\entry{kill ring}{93}{kill ring}
-\entry{initialization file, readline}{94}{initialization file, readline}
-\entry{variables, readline}{95}{variables, readline}
-\entry{programmable completion}{113}{programmable completion}
-\entry{completion builtins}{115}{completion builtins}
-\entry{History, how to use}{118}{History, how to use}
-\entry{command history}{119}{command history}
-\entry{history list}{119}{history list}
-\entry{history builtins}{119}{history builtins}
-\entry{history expansion}{121}{history expansion}
-\entry{event designators}{121}{event designators}
-\entry{history events}{121}{history events}
-\entry{installation}{125}{installation}
-\entry{configuration}{125}{configuration}
-\entry{Bash installation}{125}{Bash installation}
-\entry{Bash configuration}{125}{Bash configuration}
+\entry{job control}{89}{job control}
+\entry{foreground}{89}{foreground}
+\entry{background}{89}{background}
+\entry{suspending jobs}{89}{suspending jobs}
+\entry{Readline, how to use}{92}{Readline, how to use}
+\entry{interaction, readline}{93}{interaction, readline}
+\entry{notation, readline}{94}{notation, readline}
+\entry{command editing}{94}{command editing}
+\entry{editing command lines}{94}{editing command lines}
+\entry{killing text}{95}{killing text}
+\entry{yanking text}{95}{yanking text}
+\entry{kill ring}{95}{kill ring}
+\entry{initialization file, readline}{96}{initialization file, readline}
+\entry{variables, readline}{97}{variables, readline}
+\entry{programmable completion}{115}{programmable completion}
+\entry{completion builtins}{117}{completion builtins}
+\entry{History, how to use}{120}{History, how to use}
+\entry{command history}{121}{command history}
+\entry{history list}{121}{history list}
+\entry{history builtins}{121}{history builtins}
+\entry{history expansion}{123}{history expansion}
+\entry{event designators}{123}{event designators}
+\entry{history events}{123}{history events}
+\entry{installation}{127}{installation}
+\entry{configuration}{127}{configuration}
+\entry{Bash installation}{127}{Bash installation}
+\entry{Bash configuration}{127}{Bash configuration}
diff --git a/doc/bashref.cps b/doc/bashref.cps
index 160747a4..ca826af3 100644
--- a/doc/bashref.cps
+++ b/doc/bashref.cps
@@ -5,17 +5,17 @@
\entry {arithmetic, shell}{78}
\entry {arrays}{80}
\initial {B}
-\entry {background}{87}
-\entry {Bash configuration}{125}
-\entry {Bash installation}{125}
+\entry {background}{89}
+\entry {Bash configuration}{127}
+\entry {Bash installation}{127}
\entry {Bourne shell}{5}
\entry {brace expansion}{18}
\entry {builtin}{3}
\initial {C}
-\entry {command editing}{92}
+\entry {command editing}{94}
\entry {command execution}{30}
\entry {command expansion}{29}
-\entry {command history}{119}
+\entry {command history}{121}
\entry {command search}{30}
\entry {command substitution}{22}
\entry {command timing}{8}
@@ -28,17 +28,17 @@
\entry {commands, shell}{7}
\entry {commands, simple}{8}
\entry {comments, shell}{7}
-\entry {completion builtins}{115}
-\entry {configuration}{125}
+\entry {completion builtins}{117}
+\entry {configuration}{127}
\entry {control operator}{3}
-\entry {coprocess}{13}
+\entry {coprocess}{14}
\initial {D}
\entry {directory stack}{81}
\initial {E}
-\entry {editing command lines}{92}
+\entry {editing command lines}{94}
\entry {environment}{31}
\entry {evaluation, arithmetic}{78}
-\entry {event designators}{121}
+\entry {event designators}{123}
\entry {execution environment}{30}
\entry {exit status}{3, 32}
\entry {expansion}{17}
@@ -47,34 +47,34 @@
\entry {expansion, filename}{24}
\entry {expansion, parameter}{19}
\entry {expansion, pathname}{24}
-\entry {expansion, tilde}{18}
+\entry {expansion, tilde}{19}
\entry {expressions, arithmetic}{78}
\entry {expressions, conditional}{76}
\initial {F}
\entry {field}{3}
\entry {filename}{3}
\entry {filename expansion}{24}
-\entry {foreground}{87}
+\entry {foreground}{89}
\entry {functions, shell}{14}
\initial {H}
-\entry {history builtins}{119}
-\entry {history events}{121}
-\entry {history expansion}{121}
-\entry {history list}{119}
-\entry {History, how to use}{118}
+\entry {history builtins}{121}
+\entry {history events}{123}
+\entry {history expansion}{123}
+\entry {history list}{121}
+\entry {History, how to use}{120}
\initial {I}
\entry {identifier}{3}
-\entry {initialization file, readline}{94}
-\entry {installation}{125}
-\entry {interaction, readline}{91}
+\entry {initialization file, readline}{96}
+\entry {installation}{127}
+\entry {interaction, readline}{93}
\entry {interactive shell}{73, 75}
\entry {internationalization}{7}
\initial {J}
\entry {job}{3}
-\entry {job control}{3, 87}
+\entry {job control}{3, 89}
\initial {K}
-\entry {kill ring}{93}
-\entry {killing text}{93}
+\entry {kill ring}{95}
+\entry {killing text}{95}
\initial {L}
\entry {localization}{7}
\entry {login shell}{73}
@@ -84,7 +84,7 @@
\initial {N}
\entry {name}{3}
\entry {native languages}{7}
-\entry {notation, readline}{92}
+\entry {notation, readline}{94}
\initial {O}
\entry {operator, shell}{3}
\initial {P}
@@ -100,13 +100,13 @@
\entry {process group}{3}
\entry {process group ID}{3}
\entry {process substitution}{23}
-\entry {programmable completion}{113}
+\entry {programmable completion}{115}
\entry {prompting}{82}
\initial {Q}
\entry {quoting}{6}
\entry {quoting, ANSI}{6}
\initial {R}
-\entry {Readline, how to use}{90}
+\entry {Readline, how to use}{92}
\entry {redirection}{26}
\entry {reserved word}{3}
\entry {restricted shell}{84}
@@ -121,16 +121,16 @@
\entry {signal handling}{32}
\entry {special builtin}{4, 59}
\entry {startup files}{73}
-\entry {suspending jobs}{87}
+\entry {suspending jobs}{89}
\initial {T}
-\entry {tilde expansion}{18}
+\entry {tilde expansion}{19}
\entry {token}{4}
\entry {translation, native languages}{7}
\initial {V}
\entry {variable, shell}{15}
-\entry {variables, readline}{95}
+\entry {variables, readline}{97}
\initial {W}
\entry {word}{4}
\entry {word splitting}{23}
\initial {Y}
-\entry {yanking text}{93}
+\entry {yanking text}{95}
diff --git a/doc/bashref.dvi b/doc/bashref.dvi
index 3a9170f5..1b21e8ee 100644
--- a/doc/bashref.dvi
+++ b/doc/bashref.dvi
Binary files differ
diff --git a/doc/bashref.fn b/doc/bashref.fn
index e1c35e69..83adb919 100644
--- a/doc/bashref.fn
+++ b/doc/bashref.fn
@@ -1,103 +1,103 @@
-\entry{beginning-of-line (C-a)}{104}{\code {beginning-of-line (C-a)}}
-\entry{end-of-line (C-e)}{104}{\code {end-of-line (C-e)}}
-\entry{forward-char (C-f)}{104}{\code {forward-char (C-f)}}
-\entry{backward-char (C-b)}{104}{\code {backward-char (C-b)}}
-\entry{forward-word (M-f)}{104}{\code {forward-word (M-f)}}
-\entry{backward-word (M-b)}{104}{\code {backward-word (M-b)}}
-\entry{shell-forward-word ()}{104}{\code {shell-forward-word ()}}
-\entry{shell-backward-word ()}{104}{\code {shell-backward-word ()}}
-\entry{clear-screen (C-l)}{104}{\code {clear-screen (C-l)}}
-\entry{redraw-current-line ()}{104}{\code {redraw-current-line ()}}
-\entry{accept-line (Newline or Return)}{105}{\code {accept-line (Newline or Return)}}
-\entry{previous-history (C-p)}{105}{\code {previous-history (C-p)}}
-\entry{next-history (C-n)}{105}{\code {next-history (C-n)}}
-\entry{beginning-of-history (M-<)}{105}{\code {beginning-of-history (M-<)}}
-\entry{end-of-history (M->)}{105}{\code {end-of-history (M->)}}
-\entry{reverse-search-history (C-r)}{105}{\code {reverse-search-history (C-r)}}
-\entry{forward-search-history (C-s)}{105}{\code {forward-search-history (C-s)}}
-\entry{non-incremental-reverse-search-history (M-p)}{105}{\code {non-incremental-reverse-search-history (M-p)}}
-\entry{non-incremental-forward-search-history (M-n)}{105}{\code {non-incremental-forward-search-history (M-n)}}
-\entry{history-search-forward ()}{105}{\code {history-search-forward ()}}
-\entry{history-search-backward ()}{105}{\code {history-search-backward ()}}
-\entry{yank-nth-arg (M-C-y)}{105}{\code {yank-nth-arg (M-C-y)}}
-\entry{yank-last-arg (M-. or M-_)}{106}{\code {yank-last-arg (M-. or M-_)}}
-\entry{delete-char (C-d)}{106}{\code {delete-char (C-d)}}
-\entry{backward-delete-char (Rubout)}{106}{\code {backward-delete-char (Rubout)}}
-\entry{forward-backward-delete-char ()}{106}{\code {forward-backward-delete-char ()}}
-\entry{quoted-insert (C-q or C-v)}{106}{\code {quoted-insert (C-q or C-v)}}
-\entry{self-insert (a, b, A, 1, !, ...{})}{106}{\code {self-insert (a, b, A, 1, !, \dots {})}}
-\entry{transpose-chars (C-t)}{106}{\code {transpose-chars (C-t)}}
-\entry{transpose-words (M-t)}{106}{\code {transpose-words (M-t)}}
-\entry{upcase-word (M-u)}{106}{\code {upcase-word (M-u)}}
-\entry{downcase-word (M-l)}{106}{\code {downcase-word (M-l)}}
-\entry{capitalize-word (M-c)}{107}{\code {capitalize-word (M-c)}}
-\entry{overwrite-mode ()}{107}{\code {overwrite-mode ()}}
-\entry{kill-line (C-k)}{107}{\code {kill-line (C-k)}}
-\entry{backward-kill-line (C-x Rubout)}{107}{\code {backward-kill-line (C-x Rubout)}}
-\entry{unix-line-discard (C-u)}{107}{\code {unix-line-discard (C-u)}}
-\entry{kill-whole-line ()}{107}{\code {kill-whole-line ()}}
-\entry{kill-word (M-d)}{107}{\code {kill-word (M-d)}}
-\entry{backward-kill-word (M-DEL)}{107}{\code {backward-kill-word (M-\key {DEL})}}
-\entry{shell-kill-word ()}{107}{\code {shell-kill-word ()}}
-\entry{backward-kill-word ()}{107}{\code {backward-kill-word ()}}
-\entry{unix-word-rubout (C-w)}{107}{\code {unix-word-rubout (C-w)}}
-\entry{unix-filename-rubout ()}{107}{\code {unix-filename-rubout ()}}
-\entry{delete-horizontal-space ()}{107}{\code {delete-horizontal-space ()}}
-\entry{kill-region ()}{108}{\code {kill-region ()}}
-\entry{copy-region-as-kill ()}{108}{\code {copy-region-as-kill ()}}
-\entry{copy-backward-word ()}{108}{\code {copy-backward-word ()}}
-\entry{copy-forward-word ()}{108}{\code {copy-forward-word ()}}
-\entry{yank (C-y)}{108}{\code {yank (C-y)}}
-\entry{yank-pop (M-y)}{108}{\code {yank-pop (M-y)}}
-\entry{digit-argument (M-0, M-1, ...{} M--)}{108}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
-\entry{universal-argument ()}{108}{\code {universal-argument ()}}
-\entry{complete (TAB)}{108}{\code {complete (\key {TAB})}}
-\entry{possible-completions (M-?)}{108}{\code {possible-completions (M-?)}}
-\entry{insert-completions (M-*)}{109}{\code {insert-completions (M-*)}}
-\entry{menu-complete ()}{109}{\code {menu-complete ()}}
-\entry{menu-complete-backward ()}{109}{\code {menu-complete-backward ()}}
-\entry{delete-char-or-list ()}{109}{\code {delete-char-or-list ()}}
-\entry{complete-filename (M-/)}{109}{\code {complete-filename (M-/)}}
-\entry{possible-filename-completions (C-x /)}{109}{\code {possible-filename-completions (C-x /)}}
-\entry{complete-username (M-~)}{109}{\code {complete-username (M-~)}}
-\entry{possible-username-completions (C-x ~)}{109}{\code {possible-username-completions (C-x ~)}}
-\entry{complete-variable (M-$)}{109}{\code {complete-variable (M-$)}}
-\entry{possible-variable-completions (C-x $)}{109}{\code {possible-variable-completions (C-x $)}}
-\entry{complete-hostname (M-@)}{109}{\code {complete-hostname (M-@)}}
-\entry{possible-hostname-completions (C-x @)}{109}{\code {possible-hostname-completions (C-x @)}}
-\entry{complete-command (M-!)}{109}{\code {complete-command (M-!)}}
-\entry{possible-command-completions (C-x !)}{110}{\code {possible-command-completions (C-x !)}}
-\entry{dynamic-complete-history (M-TAB)}{110}{\code {dynamic-complete-history (M-\key {TAB})}}
-\entry{dabbrev-expand ()}{110}{\code {dabbrev-expand ()}}
-\entry{complete-into-braces (M-{\tt \char 123})}{110}{\code {complete-into-braces (M-{\tt \char 123})}}
-\entry{start-kbd-macro (C-x ()}{110}{\code {start-kbd-macro (C-x ()}}
-\entry{end-kbd-macro (C-x ))}{110}{\code {end-kbd-macro (C-x ))}}
-\entry{call-last-kbd-macro (C-x e)}{110}{\code {call-last-kbd-macro (C-x e)}}
-\entry{re-read-init-file (C-x C-r)}{110}{\code {re-read-init-file (C-x C-r)}}
-\entry{abort (C-g)}{110}{\code {abort (C-g)}}
-\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{110}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
-\entry{prefix-meta (ESC)}{110}{\code {prefix-meta (\key {ESC})}}
-\entry{undo (C-_ or C-x C-u)}{110}{\code {undo (C-_ or C-x C-u)}}
-\entry{revert-line (M-r)}{110}{\code {revert-line (M-r)}}
-\entry{tilde-expand (M-&)}{111}{\code {tilde-expand (M-&)}}
-\entry{set-mark (C-@)}{111}{\code {set-mark (C-@)}}
-\entry{exchange-point-and-mark (C-x C-x)}{111}{\code {exchange-point-and-mark (C-x C-x)}}
-\entry{character-search (C-])}{111}{\code {character-search (C-])}}
-\entry{character-search-backward (M-C-])}{111}{\code {character-search-backward (M-C-])}}
-\entry{skip-csi-sequence ()}{111}{\code {skip-csi-sequence ()}}
-\entry{insert-comment (M-#)}{111}{\code {insert-comment (M-#)}}
-\entry{dump-functions ()}{111}{\code {dump-functions ()}}
-\entry{dump-variables ()}{111}{\code {dump-variables ()}}
-\entry{dump-macros ()}{111}{\code {dump-macros ()}}
-\entry{glob-complete-word (M-g)}{112}{\code {glob-complete-word (M-g)}}
-\entry{glob-expand-word (C-x *)}{112}{\code {glob-expand-word (C-x *)}}
-\entry{glob-list-expansions (C-x g)}{112}{\code {glob-list-expansions (C-x g)}}
-\entry{display-shell-version (C-x C-v)}{112}{\code {display-shell-version (C-x C-v)}}
-\entry{shell-expand-line (M-C-e)}{112}{\code {shell-expand-line (M-C-e)}}
-\entry{history-expand-line (M-^)}{112}{\code {history-expand-line (M-^)}}
-\entry{magic-space ()}{112}{\code {magic-space ()}}
-\entry{alias-expand-line ()}{112}{\code {alias-expand-line ()}}
-\entry{history-and-alias-expand-line ()}{112}{\code {history-and-alias-expand-line ()}}
-\entry{insert-last-argument (M-. or M-_)}{112}{\code {insert-last-argument (M-. or M-_)}}
-\entry{operate-and-get-next (C-o)}{112}{\code {operate-and-get-next (C-o)}}
-\entry{edit-and-execute-command (C-xC-e)}{112}{\code {edit-and-execute-command (C-xC-e)}}
+\entry{beginning-of-line (C-a)}{106}{\code {beginning-of-line (C-a)}}
+\entry{end-of-line (C-e)}{106}{\code {end-of-line (C-e)}}
+\entry{forward-char (C-f)}{106}{\code {forward-char (C-f)}}
+\entry{backward-char (C-b)}{106}{\code {backward-char (C-b)}}
+\entry{forward-word (M-f)}{106}{\code {forward-word (M-f)}}
+\entry{backward-word (M-b)}{106}{\code {backward-word (M-b)}}
+\entry{shell-forward-word ()}{106}{\code {shell-forward-word ()}}
+\entry{shell-backward-word ()}{106}{\code {shell-backward-word ()}}
+\entry{clear-screen (C-l)}{106}{\code {clear-screen (C-l)}}
+\entry{redraw-current-line ()}{106}{\code {redraw-current-line ()}}
+\entry{accept-line (Newline or Return)}{107}{\code {accept-line (Newline or Return)}}
+\entry{previous-history (C-p)}{107}{\code {previous-history (C-p)}}
+\entry{next-history (C-n)}{107}{\code {next-history (C-n)}}
+\entry{beginning-of-history (M-<)}{107}{\code {beginning-of-history (M-<)}}
+\entry{end-of-history (M->)}{107}{\code {end-of-history (M->)}}
+\entry{reverse-search-history (C-r)}{107}{\code {reverse-search-history (C-r)}}
+\entry{forward-search-history (C-s)}{107}{\code {forward-search-history (C-s)}}
+\entry{non-incremental-reverse-search-history (M-p)}{107}{\code {non-incremental-reverse-search-history (M-p)}}
+\entry{non-incremental-forward-search-history (M-n)}{107}{\code {non-incremental-forward-search-history (M-n)}}
+\entry{history-search-forward ()}{107}{\code {history-search-forward ()}}
+\entry{history-search-backward ()}{107}{\code {history-search-backward ()}}
+\entry{yank-nth-arg (M-C-y)}{107}{\code {yank-nth-arg (M-C-y)}}
+\entry{yank-last-arg (M-. or M-_)}{108}{\code {yank-last-arg (M-. or M-_)}}
+\entry{delete-char (C-d)}{108}{\code {delete-char (C-d)}}
+\entry{backward-delete-char (Rubout)}{108}{\code {backward-delete-char (Rubout)}}
+\entry{forward-backward-delete-char ()}{108}{\code {forward-backward-delete-char ()}}
+\entry{quoted-insert (C-q or C-v)}{108}{\code {quoted-insert (C-q or C-v)}}
+\entry{self-insert (a, b, A, 1, !, ...{})}{108}{\code {self-insert (a, b, A, 1, !, \dots {})}}
+\entry{transpose-chars (C-t)}{108}{\code {transpose-chars (C-t)}}
+\entry{transpose-words (M-t)}{108}{\code {transpose-words (M-t)}}
+\entry{upcase-word (M-u)}{108}{\code {upcase-word (M-u)}}
+\entry{downcase-word (M-l)}{108}{\code {downcase-word (M-l)}}
+\entry{capitalize-word (M-c)}{109}{\code {capitalize-word (M-c)}}
+\entry{overwrite-mode ()}{109}{\code {overwrite-mode ()}}
+\entry{kill-line (C-k)}{109}{\code {kill-line (C-k)}}
+\entry{backward-kill-line (C-x Rubout)}{109}{\code {backward-kill-line (C-x Rubout)}}
+\entry{unix-line-discard (C-u)}{109}{\code {unix-line-discard (C-u)}}
+\entry{kill-whole-line ()}{109}{\code {kill-whole-line ()}}
+\entry{kill-word (M-d)}{109}{\code {kill-word (M-d)}}
+\entry{backward-kill-word (M-DEL)}{109}{\code {backward-kill-word (M-\key {DEL})}}
+\entry{shell-kill-word ()}{109}{\code {shell-kill-word ()}}
+\entry{backward-kill-word ()}{109}{\code {backward-kill-word ()}}
+\entry{unix-word-rubout (C-w)}{109}{\code {unix-word-rubout (C-w)}}
+\entry{unix-filename-rubout ()}{109}{\code {unix-filename-rubout ()}}
+\entry{delete-horizontal-space ()}{109}{\code {delete-horizontal-space ()}}
+\entry{kill-region ()}{110}{\code {kill-region ()}}
+\entry{copy-region-as-kill ()}{110}{\code {copy-region-as-kill ()}}
+\entry{copy-backward-word ()}{110}{\code {copy-backward-word ()}}
+\entry{copy-forward-word ()}{110}{\code {copy-forward-word ()}}
+\entry{yank (C-y)}{110}{\code {yank (C-y)}}
+\entry{yank-pop (M-y)}{110}{\code {yank-pop (M-y)}}
+\entry{digit-argument (M-0, M-1, ...{} M--)}{110}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
+\entry{universal-argument ()}{110}{\code {universal-argument ()}}
+\entry{complete (TAB)}{110}{\code {complete (\key {TAB})}}
+\entry{possible-completions (M-?)}{110}{\code {possible-completions (M-?)}}
+\entry{insert-completions (M-*)}{111}{\code {insert-completions (M-*)}}
+\entry{menu-complete ()}{111}{\code {menu-complete ()}}
+\entry{menu-complete-backward ()}{111}{\code {menu-complete-backward ()}}
+\entry{delete-char-or-list ()}{111}{\code {delete-char-or-list ()}}
+\entry{complete-filename (M-/)}{111}{\code {complete-filename (M-/)}}
+\entry{possible-filename-completions (C-x /)}{111}{\code {possible-filename-completions (C-x /)}}
+\entry{complete-username (M-~)}{111}{\code {complete-username (M-~)}}
+\entry{possible-username-completions (C-x ~)}{111}{\code {possible-username-completions (C-x ~)}}
+\entry{complete-variable (M-$)}{111}{\code {complete-variable (M-$)}}
+\entry{possible-variable-completions (C-x $)}{111}{\code {possible-variable-completions (C-x $)}}
+\entry{complete-hostname (M-@)}{111}{\code {complete-hostname (M-@)}}
+\entry{possible-hostname-completions (C-x @)}{111}{\code {possible-hostname-completions (C-x @)}}
+\entry{complete-command (M-!)}{111}{\code {complete-command (M-!)}}
+\entry{possible-command-completions (C-x !)}{112}{\code {possible-command-completions (C-x !)}}
+\entry{dynamic-complete-history (M-TAB)}{112}{\code {dynamic-complete-history (M-\key {TAB})}}
+\entry{dabbrev-expand ()}{112}{\code {dabbrev-expand ()}}
+\entry{complete-into-braces (M-{\tt \char 123})}{112}{\code {complete-into-braces (M-{\tt \char 123})}}
+\entry{start-kbd-macro (C-x ()}{112}{\code {start-kbd-macro (C-x ()}}
+\entry{end-kbd-macro (C-x ))}{112}{\code {end-kbd-macro (C-x ))}}
+\entry{call-last-kbd-macro (C-x e)}{112}{\code {call-last-kbd-macro (C-x e)}}
+\entry{re-read-init-file (C-x C-r)}{112}{\code {re-read-init-file (C-x C-r)}}
+\entry{abort (C-g)}{112}{\code {abort (C-g)}}
+\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{112}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
+\entry{prefix-meta (ESC)}{112}{\code {prefix-meta (\key {ESC})}}
+\entry{undo (C-_ or C-x C-u)}{112}{\code {undo (C-_ or C-x C-u)}}
+\entry{revert-line (M-r)}{112}{\code {revert-line (M-r)}}
+\entry{tilde-expand (M-&)}{113}{\code {tilde-expand (M-&)}}
+\entry{set-mark (C-@)}{113}{\code {set-mark (C-@)}}
+\entry{exchange-point-and-mark (C-x C-x)}{113}{\code {exchange-point-and-mark (C-x C-x)}}
+\entry{character-search (C-])}{113}{\code {character-search (C-])}}
+\entry{character-search-backward (M-C-])}{113}{\code {character-search-backward (M-C-])}}
+\entry{skip-csi-sequence ()}{113}{\code {skip-csi-sequence ()}}
+\entry{insert-comment (M-#)}{113}{\code {insert-comment (M-#)}}
+\entry{dump-functions ()}{113}{\code {dump-functions ()}}
+\entry{dump-variables ()}{113}{\code {dump-variables ()}}
+\entry{dump-macros ()}{113}{\code {dump-macros ()}}
+\entry{glob-complete-word (M-g)}{114}{\code {glob-complete-word (M-g)}}
+\entry{glob-expand-word (C-x *)}{114}{\code {glob-expand-word (C-x *)}}
+\entry{glob-list-expansions (C-x g)}{114}{\code {glob-list-expansions (C-x g)}}
+\entry{display-shell-version (C-x C-v)}{114}{\code {display-shell-version (C-x C-v)}}
+\entry{shell-expand-line (M-C-e)}{114}{\code {shell-expand-line (M-C-e)}}
+\entry{history-expand-line (M-^)}{114}{\code {history-expand-line (M-^)}}
+\entry{magic-space ()}{114}{\code {magic-space ()}}
+\entry{alias-expand-line ()}{114}{\code {alias-expand-line ()}}
+\entry{history-and-alias-expand-line ()}{114}{\code {history-and-alias-expand-line ()}}
+\entry{insert-last-argument (M-. or M-_)}{114}{\code {insert-last-argument (M-. or M-_)}}
+\entry{operate-and-get-next (C-o)}{114}{\code {operate-and-get-next (C-o)}}
+\entry{edit-and-execute-command (C-xC-e)}{114}{\code {edit-and-execute-command (C-xC-e)}}
diff --git a/doc/bashref.fns b/doc/bashref.fns
index da696f9f..3f9006bf 100644
--- a/doc/bashref.fns
+++ b/doc/bashref.fns
@@ -1,123 +1,123 @@
\initial {A}
-\entry {\code {abort (C-g)}}{110}
-\entry {\code {accept-line (Newline or Return)}}{105}
-\entry {\code {alias-expand-line ()}}{112}
+\entry {\code {abort (C-g)}}{112}
+\entry {\code {accept-line (Newline or Return)}}{107}
+\entry {\code {alias-expand-line ()}}{114}
\initial {B}
-\entry {\code {backward-char (C-b)}}{104}
-\entry {\code {backward-delete-char (Rubout)}}{106}
-\entry {\code {backward-kill-line (C-x Rubout)}}{107}
-\entry {\code {backward-kill-word ()}}{107}
-\entry {\code {backward-kill-word (M-\key {DEL})}}{107}
-\entry {\code {backward-word (M-b)}}{104}
-\entry {\code {beginning-of-history (M-<)}}{105}
-\entry {\code {beginning-of-line (C-a)}}{104}
+\entry {\code {backward-char (C-b)}}{106}
+\entry {\code {backward-delete-char (Rubout)}}{108}
+\entry {\code {backward-kill-line (C-x Rubout)}}{109}
+\entry {\code {backward-kill-word ()}}{109}
+\entry {\code {backward-kill-word (M-\key {DEL})}}{109}
+\entry {\code {backward-word (M-b)}}{106}
+\entry {\code {beginning-of-history (M-<)}}{107}
+\entry {\code {beginning-of-line (C-a)}}{106}
\initial {C}
-\entry {\code {call-last-kbd-macro (C-x e)}}{110}
-\entry {\code {capitalize-word (M-c)}}{107}
-\entry {\code {character-search (C-])}}{111}
-\entry {\code {character-search-backward (M-C-])}}{111}
-\entry {\code {clear-screen (C-l)}}{104}
-\entry {\code {complete (\key {TAB})}}{108}
-\entry {\code {complete-command (M-!)}}{109}
-\entry {\code {complete-filename (M-/)}}{109}
-\entry {\code {complete-hostname (M-@)}}{109}
-\entry {\code {complete-into-braces (M-{\tt \char 123})}}{110}
-\entry {\code {complete-username (M-~)}}{109}
-\entry {\code {complete-variable (M-$)}}{109}
-\entry {\code {copy-backward-word ()}}{108}
-\entry {\code {copy-forward-word ()}}{108}
-\entry {\code {copy-region-as-kill ()}}{108}
+\entry {\code {call-last-kbd-macro (C-x e)}}{112}
+\entry {\code {capitalize-word (M-c)}}{109}
+\entry {\code {character-search (C-])}}{113}
+\entry {\code {character-search-backward (M-C-])}}{113}
+\entry {\code {clear-screen (C-l)}}{106}
+\entry {\code {complete (\key {TAB})}}{110}
+\entry {\code {complete-command (M-!)}}{111}
+\entry {\code {complete-filename (M-/)}}{111}
+\entry {\code {complete-hostname (M-@)}}{111}
+\entry {\code {complete-into-braces (M-{\tt \char 123})}}{112}
+\entry {\code {complete-username (M-~)}}{111}
+\entry {\code {complete-variable (M-$)}}{111}
+\entry {\code {copy-backward-word ()}}{110}
+\entry {\code {copy-forward-word ()}}{110}
+\entry {\code {copy-region-as-kill ()}}{110}
\initial {D}
-\entry {\code {dabbrev-expand ()}}{110}
-\entry {\code {delete-char (C-d)}}{106}
-\entry {\code {delete-char-or-list ()}}{109}
-\entry {\code {delete-horizontal-space ()}}{107}
-\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{108}
-\entry {\code {display-shell-version (C-x C-v)}}{112}
-\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{110}
-\entry {\code {downcase-word (M-l)}}{106}
-\entry {\code {dump-functions ()}}{111}
-\entry {\code {dump-macros ()}}{111}
-\entry {\code {dump-variables ()}}{111}
-\entry {\code {dynamic-complete-history (M-\key {TAB})}}{110}
+\entry {\code {dabbrev-expand ()}}{112}
+\entry {\code {delete-char (C-d)}}{108}
+\entry {\code {delete-char-or-list ()}}{111}
+\entry {\code {delete-horizontal-space ()}}{109}
+\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{110}
+\entry {\code {display-shell-version (C-x C-v)}}{114}
+\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{112}
+\entry {\code {downcase-word (M-l)}}{108}
+\entry {\code {dump-functions ()}}{113}
+\entry {\code {dump-macros ()}}{113}
+\entry {\code {dump-variables ()}}{113}
+\entry {\code {dynamic-complete-history (M-\key {TAB})}}{112}
\initial {E}
-\entry {\code {edit-and-execute-command (C-xC-e)}}{112}
-\entry {\code {end-kbd-macro (C-x ))}}{110}
-\entry {\code {end-of-history (M->)}}{105}
-\entry {\code {end-of-line (C-e)}}{104}
-\entry {\code {exchange-point-and-mark (C-x C-x)}}{111}
+\entry {\code {edit-and-execute-command (C-xC-e)}}{114}
+\entry {\code {end-kbd-macro (C-x ))}}{112}
+\entry {\code {end-of-history (M->)}}{107}
+\entry {\code {end-of-line (C-e)}}{106}
+\entry {\code {exchange-point-and-mark (C-x C-x)}}{113}
\initial {F}
-\entry {\code {forward-backward-delete-char ()}}{106}
-\entry {\code {forward-char (C-f)}}{104}
-\entry {\code {forward-search-history (C-s)}}{105}
-\entry {\code {forward-word (M-f)}}{104}
+\entry {\code {forward-backward-delete-char ()}}{108}
+\entry {\code {forward-char (C-f)}}{106}
+\entry {\code {forward-search-history (C-s)}}{107}
+\entry {\code {forward-word (M-f)}}{106}
\initial {G}
-\entry {\code {glob-complete-word (M-g)}}{112}
-\entry {\code {glob-expand-word (C-x *)}}{112}
-\entry {\code {glob-list-expansions (C-x g)}}{112}
+\entry {\code {glob-complete-word (M-g)}}{114}
+\entry {\code {glob-expand-word (C-x *)}}{114}
+\entry {\code {glob-list-expansions (C-x g)}}{114}
\initial {H}
-\entry {\code {history-and-alias-expand-line ()}}{112}
-\entry {\code {history-expand-line (M-^)}}{112}
-\entry {\code {history-search-backward ()}}{105}
-\entry {\code {history-search-forward ()}}{105}
+\entry {\code {history-and-alias-expand-line ()}}{114}
+\entry {\code {history-expand-line (M-^)}}{114}
+\entry {\code {history-search-backward ()}}{107}
+\entry {\code {history-search-forward ()}}{107}
\initial {I}
-\entry {\code {insert-comment (M-#)}}{111}
-\entry {\code {insert-completions (M-*)}}{109}
-\entry {\code {insert-last-argument (M-. or M-_)}}{112}
+\entry {\code {insert-comment (M-#)}}{113}
+\entry {\code {insert-completions (M-*)}}{111}
+\entry {\code {insert-last-argument (M-. or M-_)}}{114}
\initial {K}
-\entry {\code {kill-line (C-k)}}{107}
-\entry {\code {kill-region ()}}{108}
-\entry {\code {kill-whole-line ()}}{107}
-\entry {\code {kill-word (M-d)}}{107}
+\entry {\code {kill-line (C-k)}}{109}
+\entry {\code {kill-region ()}}{110}
+\entry {\code {kill-whole-line ()}}{109}
+\entry {\code {kill-word (M-d)}}{109}
\initial {M}
-\entry {\code {magic-space ()}}{112}
-\entry {\code {menu-complete ()}}{109}
-\entry {\code {menu-complete-backward ()}}{109}
+\entry {\code {magic-space ()}}{114}
+\entry {\code {menu-complete ()}}{111}
+\entry {\code {menu-complete-backward ()}}{111}
\initial {N}
-\entry {\code {next-history (C-n)}}{105}
-\entry {\code {non-incremental-forward-search-history (M-n)}}{105}
-\entry {\code {non-incremental-reverse-search-history (M-p)}}{105}
+\entry {\code {next-history (C-n)}}{107}
+\entry {\code {non-incremental-forward-search-history (M-n)}}{107}
+\entry {\code {non-incremental-reverse-search-history (M-p)}}{107}
\initial {O}
-\entry {\code {operate-and-get-next (C-o)}}{112}
-\entry {\code {overwrite-mode ()}}{107}
+\entry {\code {operate-and-get-next (C-o)}}{114}
+\entry {\code {overwrite-mode ()}}{109}
\initial {P}
-\entry {\code {possible-command-completions (C-x !)}}{110}
-\entry {\code {possible-completions (M-?)}}{108}
-\entry {\code {possible-filename-completions (C-x /)}}{109}
-\entry {\code {possible-hostname-completions (C-x @)}}{109}
-\entry {\code {possible-username-completions (C-x ~)}}{109}
-\entry {\code {possible-variable-completions (C-x $)}}{109}
-\entry {\code {prefix-meta (\key {ESC})}}{110}
-\entry {\code {previous-history (C-p)}}{105}
+\entry {\code {possible-command-completions (C-x !)}}{112}
+\entry {\code {possible-completions (M-?)}}{110}
+\entry {\code {possible-filename-completions (C-x /)}}{111}
+\entry {\code {possible-hostname-completions (C-x @)}}{111}
+\entry {\code {possible-username-completions (C-x ~)}}{111}
+\entry {\code {possible-variable-completions (C-x $)}}{111}
+\entry {\code {prefix-meta (\key {ESC})}}{112}
+\entry {\code {previous-history (C-p)}}{107}
\initial {Q}
-\entry {\code {quoted-insert (C-q or C-v)}}{106}
+\entry {\code {quoted-insert (C-q or C-v)}}{108}
\initial {R}
-\entry {\code {re-read-init-file (C-x C-r)}}{110}
-\entry {\code {redraw-current-line ()}}{104}
-\entry {\code {reverse-search-history (C-r)}}{105}
-\entry {\code {revert-line (M-r)}}{110}
+\entry {\code {re-read-init-file (C-x C-r)}}{112}
+\entry {\code {redraw-current-line ()}}{106}
+\entry {\code {reverse-search-history (C-r)}}{107}
+\entry {\code {revert-line (M-r)}}{112}
\initial {S}
-\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{106}
-\entry {\code {set-mark (C-@)}}{111}
-\entry {\code {shell-backward-word ()}}{104}
-\entry {\code {shell-expand-line (M-C-e)}}{112}
-\entry {\code {shell-forward-word ()}}{104}
-\entry {\code {shell-kill-word ()}}{107}
-\entry {\code {skip-csi-sequence ()}}{111}
-\entry {\code {start-kbd-macro (C-x ()}}{110}
+\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{108}
+\entry {\code {set-mark (C-@)}}{113}
+\entry {\code {shell-backward-word ()}}{106}
+\entry {\code {shell-expand-line (M-C-e)}}{114}
+\entry {\code {shell-forward-word ()}}{106}
+\entry {\code {shell-kill-word ()}}{109}
+\entry {\code {skip-csi-sequence ()}}{113}
+\entry {\code {start-kbd-macro (C-x ()}}{112}
\initial {T}
-\entry {\code {tilde-expand (M-&)}}{111}
-\entry {\code {transpose-chars (C-t)}}{106}
-\entry {\code {transpose-words (M-t)}}{106}
+\entry {\code {tilde-expand (M-&)}}{113}
+\entry {\code {transpose-chars (C-t)}}{108}
+\entry {\code {transpose-words (M-t)}}{108}
\initial {U}
-\entry {\code {undo (C-_ or C-x C-u)}}{110}
-\entry {\code {universal-argument ()}}{108}
-\entry {\code {unix-filename-rubout ()}}{107}
-\entry {\code {unix-line-discard (C-u)}}{107}
-\entry {\code {unix-word-rubout (C-w)}}{107}
-\entry {\code {upcase-word (M-u)}}{106}
+\entry {\code {undo (C-_ or C-x C-u)}}{112}
+\entry {\code {universal-argument ()}}{110}
+\entry {\code {unix-filename-rubout ()}}{109}
+\entry {\code {unix-line-discard (C-u)}}{109}
+\entry {\code {unix-word-rubout (C-w)}}{109}
+\entry {\code {upcase-word (M-u)}}{108}
\initial {Y}
-\entry {\code {yank (C-y)}}{108}
-\entry {\code {yank-last-arg (M-. or M-_)}}{106}
-\entry {\code {yank-nth-arg (M-C-y)}}{105}
-\entry {\code {yank-pop (M-y)}}{108}
+\entry {\code {yank (C-y)}}{110}
+\entry {\code {yank-last-arg (M-. or M-_)}}{108}
+\entry {\code {yank-nth-arg (M-C-y)}}{107}
+\entry {\code {yank-pop (M-y)}}{110}
diff --git a/doc/bashref.html b/doc/bashref.html
index 6e3e0577..9b94effb 100644
--- a/doc/bashref.html
+++ b/doc/bashref.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on September, 16 2009 by texi2html 1.64 -->
+<!-- Created on October, 12 2009 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -33,10 +33,10 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<H1>Bash Reference Manual</H1></P><P>
This text is a brief description of the features that are present in
-the Bash shell (version 4.1, 16 September 2009).
+the Bash shell (version 4.1, 9 October 2009).
</P><P>
-This is Edition 4.1, last updated 16 September 2009,
+This is Edition 4.1, last updated 9 October 2009,
of <CITE>The GNU Bash Reference Manual</CITE>,
for <CODE>Bash</CODE>, Version 4.1.
</P><P>
@@ -1318,6 +1318,10 @@ Conditional operators such as <SAMP>`-f'</SAMP> must be unquoted to be recognize
as primaries.
</P><P>
+When used with <SAMP>`[['</SAMP>, The <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators sort
+lexicographically using the current locale.
+</P><P>
+
When the <SAMP>`=='</SAMP> and <SAMP>`!='</SAMP> operators are used, the string to the
right of the operator is considered a pattern and matched according
to the rules described below in <A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A>.
@@ -2159,7 +2163,7 @@ is followed by a character that is not to be
interpreted as part of its name.
</P><P>
-If the first character of <VAR>parameter</VAR> is an exclamation point,
+If the first character of <VAR>parameter</VAR> is an exclamation point (!),
a level of variable indirection is introduced.
Bash uses the value of the variable formed from the rest of
<VAR>parameter</VAR> as the name of the variable; this variable is then
@@ -2794,7 +2798,7 @@ may instead be preceded by a word of the form {<VAR>varname</VAR>}.
In this case, for each redirection operator except
&#62;&#38;- and &#60;&#38;-, the shell will allocate a file descriptor greater
than 10 and assign it to {<VAR>varname</VAR>}. If &#62;&#38;- or &#60;&#38;- is preceded
-by {<VAR>varname</VAR>}, the value of {<VAR>varname</VAR>} defines the file
+by {<VAR>varname</VAR>}, the value of <VAR>varname</VAR> defines the file
descriptor to close.
</P><P>
@@ -4812,7 +4816,7 @@ non-zero on failure.
<DT><CODE>read</CODE>
<DD><A NAME="IDX103"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-i <VAR>text</VAR>] [-n <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-i <VAR>text</VAR>] [-n <VAR>nchars</VAR>] [-N <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
</pre></td></tr></table>One line is read from the standard input, or from the file descriptor
<VAR>fd</VAR> supplied as an argument to the <SAMP>`-u'</SAMP> option, and the first word
is assigned to the first <VAR>name</VAR>, the second word to the second <VAR>name</VAR>,
@@ -4860,7 +4864,14 @@ the editing buffer before editing begins.
<DT><CODE>-n <VAR>nchars</VAR></CODE>
<DD><CODE>read</CODE> returns after reading <VAR>nchars</VAR> characters rather than
-waiting for a complete line of input.
+waiting for a complete line of input, but honor a delimiter if fewer
+than <VAR>nchars</VAR> characters are read before the delimiter.
+<P>
+
+<DT><CODE>-N <VAR>nchars</VAR></CODE>
+<DD><CODE>read</CODE> returns after reading exactly <VAR>nchars</VAR> characters rather
+than waiting for a complete line of input, unless EOF is encountered or
+<CODE>read</CODE> times out. Any delimiter is ignored.
<P>
<DT><CODE>-p <VAR>prompt</VAR></CODE>
@@ -8621,6 +8632,12 @@ The <CODE>ulimit</CODE> builtin uses a block size of 512 bytes for the <SAMP>`-c
and <SAMP>`-f'</SAMP> options.
<P>
+<LI>
+The arrival of <CODE>SIGCHLD</CODE> when a trap is set on <CODE>SIGCHLD</CODE> does
+not interrupt the <CODE>wait</CODE> builtin and cause it to return immediately.
+The trap command is run once for each child that exits.
+<P>
+
</OL>
<P>
@@ -9643,6 +9660,13 @@ keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>enable-meta-key</CODE>
+<DD>When set to <SAMP>`on'</SAMP>, Readline will try to enable any meta modifier
+key the terminal claims to support when it is called. On many terminals,
+the meta key is used to send eight-bit characters.
+The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>expand-tilde</CODE>
<DD><A NAME="IDX316"></A>
If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
@@ -16019,7 +16043,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>September, 16 2009</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -16181,7 +16205,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>September, 16 2009</I>
+by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/bashref.log b/doc/bashref.log
index 0b88baee..bb9c4763 100644
--- a/doc/bashref.log
+++ b/doc/bashref.log
@@ -1,4 +1,4 @@
-This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 16 SEP 2009 21:37
+This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 12 OCT 2009 10:07
**/Users/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2009-01-18.17]:
@@ -193,7 +193,7 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]
[25] [26] [27] [28] [29] [30] [31] [32] Chapter 4 [33] [34] [35] [36] [37]
[38] [39] [40] [41]
-Underfull \hbox (badness 5231) in paragraph at lines 3294--3307
+Underfull \hbox (badness 5231) in paragraph at lines 3297--3310
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -206,10 +206,10 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[42] [43] [44] [45] [46]
-Overfull \hbox (102.08961pt too wide) in paragraph at lines 3719--3719
+Overfull \hbox (172.34125pt too wide) in paragraph at lines 3722--3722
[]@texttt read [-ers] [-a @textttsl aname@texttt ] [-d @textttsl de-lim@texttt
- ] [-i @textttsl text@texttt ] [-n @textttsl nchars@texttt ] [-p @textttsl prom
-pt@texttt ] [-t @textttsl time-
+ ] [-i @textttsl text@texttt ] [-n @textttsl nchars@texttt ] [-N @textttsl ncha
+rs@texttt ] [-p @textttsl prompt@texttt ] [-t @textttsl time-
@hbox(7.60416+2.43333)x433.62
.@glue(@leftskip) 86.72375
@@ -220,7 +220,7 @@ pt@texttt ] [-t @textttsl time-
.etc.
[47] [48] [49] [50] [51] [52] [53] [54] [55]
-Underfull \hbox (badness 2573) in paragraph at lines 4398--4402
+Underfull \hbox (badness 2573) in paragraph at lines 4407--4411
[]@textrm Error trac-ing is en-abled: com-mand sub-sti-tu-tion, shell
@hbox(7.60416+2.12917)x433.62, glue set 2.95305
@@ -237,7 +237,7 @@ Underfull \hbox (badness 2573) in paragraph at lines 4398--4402
[56] [57] [58] Chapter 5 [59] [60] [61] [62] [63] [64] [65] [66] [67] [68]
[69] Chapter 6 [70]
-Overfull \hbox (51.96864pt too wide) in paragraph at lines 5266--5266
+Overfull \hbox (51.96864pt too wide) in paragraph at lines 5275--5275
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -250,7 +250,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
-Overfull \hbox (76.23077pt too wide) in paragraph at lines 5267--5267
+Overfull \hbox (76.23077pt too wide) in paragraph at lines 5276--5276
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
-
@@ -264,7 +264,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 5267--5267
.etc.
-Overfull \hbox (34.72258pt too wide) in paragraph at lines 5268--5268
+Overfull \hbox (34.72258pt too wide) in paragraph at lines 5277--5277
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -277,7 +277,7 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
[71] [72]
-Underfull \hbox (badness 2245) in paragraph at lines 5442--5444
+Underfull \hbox (badness 2245) in paragraph at lines 5451--5453
[]@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from
the file
@@ -290,7 +290,7 @@ the file
.etc.
[73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85]
-Underfull \hbox (badness 2521) in paragraph at lines 6581--6584
+Underfull \hbox (badness 2521) in paragraph at lines 6595--6598
@textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
e[] @textrm when build-ing (see Sec-tion 10.8
@@ -302,10 +302,10 @@ e[] @textrm when build-ing (see Sec-tion 10.8
.@texttt n
.etc.
-Chapter 7 [86] [87] [88] [89]
-(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [90] [91]
-[92] [93] [94] [95] [96]
-Underfull \hbox (badness 5231) in paragraph at lines 529--545
+Chapter 7 [86] [87] [88] [89] [90] [91]
+(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [92] [93]
+[94] [95] [96] [97] [98]
+Underfull \hbox (badness 5231) in paragraph at lines 535--551
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -317,8 +317,8 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.@texttt c
.etc.
-[97] [98] [99] [100] [101]
-Overfull \hbox (26.43913pt too wide) in paragraph at lines 865--865
+[99] [100] [101] [102] [103]
+Overfull \hbox (26.43913pt too wide) in paragraph at lines 871--871
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -330,9 +330,9 @@ gnored[]
.@texttt t
.etc.
-[102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113]
-[114]
-Overfull \hbox (12.05716pt too wide) in paragraph at lines 1783--1783
+[104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115]
+[116]
+Overfull \hbox (12.05716pt too wide) in paragraph at lines 1789--1789
[]@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-DE] [-
A @textttsl ac-tion@texttt ] [-
@@ -344,8 +344,8 @@ A @textttsl ac-tion@texttt ] [-
.@texttt m
.etc.
-[115] [116]
-Underfull \hbox (badness 2753) in paragraph at lines 1893--1896
+[117] [118]
+Underfull \hbox (badness 2753) in paragraph at lines 1899--1902
@texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
@hbox(7.60416+2.12917)x433.62, glue set 3.02202
@@ -356,9 +356,9 @@ Underfull \hbox (badness 2753) in paragraph at lines 1893--1896
.@texttt o
.etc.
-[117]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
-[118] [119] [120] [121] [122]) Chapter 10 [123] [124] [125] [126] [127]
-Underfull \hbox (badness 2772) in paragraph at lines 7182--7186
+[119]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
+[120] [121] [122] [123] [124]) Chapter 10 [125] [126] [127] [128] [129]
+Underfull \hbox (badness 2772) in paragraph at lines 7196--7200
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
s/large_
@@ -370,18 +370,18 @@ s/large_
.@textrm a
.etc.
-[128] [129] [130] Appendix A [131] [132] Appendix B [133] [134] [135] [136]
-[137] [138] [139] Appendix C [140] (./fdl.texi [141] [142] [143] [144] [145]
-[146] [147]) Appendix D [148] (./bashref.bts) [149] (./bashref.rws)
-(./bashref.vrs [150] [151]) (./bashref.fns [152] [153]) (./bashref.cps [154])
-[155] [156] )
+[130] [131] [132] Appendix A [133] [134] Appendix B [135] [136] [137] [138]
+[139] [140] [141] Appendix C [142] (./fdl.texi [143] [144] [145] [146] [147]
+[148] [149]) Appendix D [150] (./bashref.bts) [151] (./bashref.rws)
+(./bashref.vrs [152] [153]) (./bashref.fns [154] [155]) (./bashref.cps [156])
+[157] [158] )
Here is how much of TeX's memory you used:
2078 strings out of 97980
28503 string characters out of 1221004
- 65674 words of memory out of 1500000
+ 65668 words of memory out of 1500000
2894 multiletter control sequences out of 10000+50000
32127 words of font info for 112 fonts, out of 1200000 for 2000
51 hyphenation exceptions out of 8191
16i,6n,14p,315b,699s stack positions out of 5000i,500n,6000p,200000b,5000s
-Output written on bashref.dvi (162 pages, 661824 bytes).
+Output written on bashref.dvi (164 pages, 663028 bytes).
diff --git a/doc/bashref.pdf b/doc/bashref.pdf
index 90804bfd..94520165 100644
--- a/doc/bashref.pdf
+++ b/doc/bashref.pdf
Binary files differ
diff --git a/doc/bashref.ps b/doc/bashref.ps
index 7bf335cc..4b0d845e 100644
--- a/doc/bashref.ps
+++ b/doc/bashref.ps
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
%%Title: bashref.dvi
-%%Pages: 162
+%%Pages: 164
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMMI12 CMMI10 CMCSC10
@@ -11,7 +11,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2009.09.16:2137
+%DVIPSSource: TeX output 2009.10.12:1007
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -4327,26 +4327,25 @@ letter
TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.1,)g(for)f
-Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.1.)3118 1697 y(Septem)m(b)s(er)f
-(2009)150 4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
-b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
-y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
+Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.1.)3217 1697 y(Octob)s(er)f(2009)150
+4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
+b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
+b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.1,)c(16)f(Septem)m(b)s
-(er)f(2009\).)150 3133 y(This)e(is)h(Edition)f(4.1,)j(last)e(up)s
-(dated)f(16)h(Septem)m(b)s(er)f(2009,)j(of)e Fq(The)f(GNU)i(Bash)e
-(Reference)i(Man)m(ual)p Ft(,)150 3243 y(for)g Fs(Bash)p
-Ft(,)g(V)-8 b(ersion)31 b(4.1.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fp(\015)f Ft(1988{2009)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150
-3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
-(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m
-(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s
-(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)390
-3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.1,)c(9)e(Octob)s(er)h
+(2009\).)150 3133 y(This)d(is)h(Edition)h(4.1,)g(last)g(up)s(dated)e(9)
+i(Octob)s(er)f(2009,)i(of)e Fq(The)g(GNU)h(Bash)f(Reference)h(Man)m
+(ual)p Ft(,)g(for)150 3243 y Fs(Bash)p Ft(,)f(V)-8 b(ersion)31
+b(4.1.)150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377
+y Fp(\015)f Ft(1988{2009)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)
+f(mak)m(e)i(and)d(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m
+(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f
+(this)g(p)s(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g
+(copies.)390 3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
@@ -4447,7 +4446,7 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)45
b Ft(13)399 3400 y(3.2.5)93 b(Copro)s(cesses)18 b Fm(:)d(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)47 b Ft(13)275 3509 y(3.3)92
+h(:)f(:)g(:)h(:)f(:)h(:)47 b Ft(14)275 3509 y(3.3)92
b(Shell)30 b(F)-8 b(unctions)29 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
@@ -4472,7 +4471,7 @@ h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(18)399
4167 y(3.5.2)93 b(Tilde)30 b(Expansion)10 b Fm(:)15 b(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)40 b Ft(18)399 4276 y(3.5.3)93 b(Shell)30 b(P)m(arameter)i
+(:)f(:)40 b Ft(19)399 4276 y(3.5.3)93 b(Shell)30 b(P)m(arameter)i
(Expansion)18 b Fm(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
48 b Ft(19)399 4386 y(3.5.4)93 b(Command)29 b(Substitution)12
@@ -4657,182 +4656,182 @@ end
TeXDict begin -3 4 bop 3674 -116 a Ft(iii)150 83 y Fr(7)135
b(Job)45 b(Con)l(trol)24 b Fn(:)c(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)69 b Fr(87)275 220 y
+f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)69 b Fr(89)275 220 y
Ft(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)17 b Fm(:)f(:)g(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)47 b Ft(87)275 330 y(7.2)92 b(Job)30 b(Con)m(trol)h
+g(:)h(:)f(:)47 b Ft(89)275 330 y(7.2)92 b(Job)30 b(Con)m(trol)h
(Builtins)25 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)55 b Ft(88)275
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)55 b Ft(90)275
439 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8 b(ariables)19
b Fm(:)e(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)49 b Ft(90)150 682 y Fr(8)135
+(:)f(:)h(:)f(:)g(:)h(:)f(:)49 b Ft(92)150 682 y Fr(8)135
b(Command)45 b(Line)g(Editing)27 b Fn(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)72
-b Fr(91)275 819 y Ft(8.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
+b Fr(93)275 819 y Ft(8.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
(Editing)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)56 b Ft(91)275 928 y(8.2)92 b(Readline)31
+(:)h(:)f(:)56 b Ft(93)275 928 y(8.2)92 b(Readline)31
b(In)m(teraction)8 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)38
-b Ft(91)399 1038 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)d
+b Ft(93)399 1038 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)d
Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)57
-b Ft(92)399 1147 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
+b Ft(94)399 1147 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
(Commands)27 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57
-b Ft(92)399 1257 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)19
+b Ft(94)399 1257 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)19
b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)49
-b Ft(93)399 1367 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)11
+b Ft(95)399 1367 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)11
b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)41 b Ft(93)399 1476 y(8.2.5)93 b(Searc)m(hing)31
+f(:)g(:)h(:)f(:)41 b Ft(95)399 1476 y(8.2.5)93 b(Searc)m(hing)31
b(for)f(Commands)f(in)h(the)h(History)9 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)38
-b Ft(93)275 1586 y(8.3)92 b(Readline)31 b(Init)f(File)23
+b Ft(95)275 1586 y(8.3)92 b(Readline)31 b(Init)f(File)23
b Fm(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Ft(94)399
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Ft(96)399
1695 y(8.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)15
b Fm(:)g(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)44
-b Ft(94)399 1805 y(8.3.2)93 b(Conditional)31 b(Init)f(Constructs)25
+b Ft(96)399 1805 y(8.3.2)93 b(Conditional)31 b(Init)f(Constructs)25
b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)56
-b Ft(100)399 1914 y(8.3.3)93 b(Sample)30 b(Init)g(File)12
+b Ft(102)399 1914 y(8.3.3)93 b(Sample)30 b(Init)g(File)12
b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)42 b Ft(101)275 2024 y(8.4)92
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)42 b Ft(103)275 2024 y(8.4)92
b(Bindable)30 b(Readline)h(Commands)11 b Fm(:)k(:)g(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Ft(104)399 2134 y(8.4.1)93
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Ft(106)399 2134 y(8.4.1)93
b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)e Fm(:)16 b(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(104)399
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(106)399
2243 y(8.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f
(History)17 b Fm(:)g(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)47 b Ft(105)399 2353 y(8.4.3)93 b(Commands)29 b(F)-8
+h(:)47 b Ft(107)399 2353 y(8.4.3)93 b(Commands)29 b(F)-8
b(or)31 b(Changing)f(T)-8 b(ext)21 b Fm(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-51 b Ft(106)399 2462 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
+51 b Ft(108)399 2462 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
b(anking)22 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)52 b Ft(107)399 2572 y(8.4.5)93 b(Sp)s(ecifying)30
+f(:)g(:)h(:)f(:)h(:)52 b Ft(109)399 2572 y(8.4.5)93 b(Sp)s(ecifying)30
b(Numeric)g(Argumen)m(ts)17 b Fm(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)47
-b Ft(108)399 2682 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)
+b Ft(110)399 2682 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)
-8 b(or)31 b(Y)-8 b(ou)12 b Fm(:)k(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)42
-b Ft(108)399 2791 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)21
+b Ft(110)399 2791 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)21
b Fm(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)51 b Ft(110)399 2901 y(8.4.8)93 b(Some)30
+h(:)f(:)h(:)f(:)g(:)51 b Ft(112)399 2901 y(8.4.8)93 b(Some)30
b(Miscellaneous)j(Commands)24 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55
-b Ft(110)275 3010 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)20
+b Ft(112)275 3010 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)20
b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)50 b Ft(112)275
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)50 b Ft(114)275
3120 y(8.6)92 b(Programmable)30 b(Completion)16 b Fm(:)g(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
-b Ft(113)275 3230 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)c
+b Ft(115)275 3230 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)c
Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(115)150
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(117)150
3472 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l(ely)39
b Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h
-(:)80 b Fr(119)275 3609 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8
+(:)80 b Fr(121)275 3609 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8
b(acilities)21 b Fm(:)d(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)51 b Ft(119)275 3719
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)51 b Ft(121)275 3719
y(9.2)92 b(Bash)30 b(History)h(Builtins)19 b Fm(:)d(:)g(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49
-b Ft(119)275 3828 y(9.3)92 b(History)31 b(Expansion)21
+b Ft(121)275 3828 y(9.3)92 b(History)31 b(Expansion)21
b Fm(:)15 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)52 b Ft(121)399 3938
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)52 b Ft(123)399 3938
y(9.3.1)93 b(Ev)m(en)m(t)31 b(Designators)10 b Fm(:)18
b(:)d(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)40 b Ft(121)399 4047 y(9.3.2)93 b(W)-8 b(ord)31
+h(:)f(:)h(:)40 b Ft(123)399 4047 y(9.3.2)93 b(W)-8 b(ord)31
b(Designators)17 b Fm(:)g(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47 b Ft(122)399 4157
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47 b Ft(124)399 4157
y(9.3.3)93 b(Mo)s(di\014ers)26 b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)57 b Ft(123)150 4399 y Fr(10)135 b(Installing)46
+(:)f(:)g(:)h(:)57 b Ft(125)150 4399 y Fr(10)135 b(Installing)46
b(Bash)24 b Fn(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)68
-b Fr(125)275 4536 y Ft(10.1)92 b(Basic)32 b(Installation)20
+b Fr(127)275 4536 y Ft(10.1)92 b(Basic)32 b(Installation)20
b Fm(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(125)275 4646
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(127)275 4646
y(10.2)92 b(Compilers)30 b(and)g(Options)8 b Fm(:)15
b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)38 b Ft(126)275 4755 y(10.3)92 b(Compiling)30
+f(:)h(:)38 b Ft(128)275 4755 y(10.3)92 b(Compiling)30
b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)21 b Fm(:)c(:)e(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)52 b Ft(126)275 4865 y(10.4)92 b(Installation)32 b(Names)13
+(:)52 b Ft(128)275 4865 y(10.4)92 b(Installation)32 b(Names)13
b Fm(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Ft(126)275 4975 y(10.5)92
+(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Ft(128)275 4975 y(10.5)92
b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s(e)12 b Fm(:)j(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Ft(126)275
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Ft(128)275
5084 y(10.6)92 b(Sharing)30 b(Defaults)15 b Fm(:)i(:)e(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)46 b Ft(127)275 5194 y(10.7)92 b(Op)s(eration)30
+(:)f(:)g(:)46 b Ft(129)275 5194 y(10.7)92 b(Op)s(eration)30
b(Con)m(trols)24 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Ft(127)275
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Ft(129)275
5303 y(10.8)92 b(Optional)31 b(F)-8 b(eatures)10 b Fm(:)17
b(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Ft(127)p eop end
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Ft(129)p eop end
%%Page: -4 6
TeXDict begin -4 5 bop 150 -116 a Ft(iv)2589 b(Bash)31
b(Reference)g(Man)m(ual)150 83 y Fr(App)t(endix)44 b(A)160
b(Rep)t(orting)46 b(Bugs)35 b Fn(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fr(133)150 353 y(App)t(endix)44
+(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fr(135)150 353 y(App)t(endix)44
b(B)166 b(Ma)7 b(jor)45 b(Di\013erences)i(F)-11 b(rom)44
b(The)419 486 y(Bourne)g(Shell)35 b Fn(:)19 b(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)78 b Fr(135)275 623 y Ft(B.1)92
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)78 b Fr(137)275 623 y Ft(B.1)92
b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 b(rom)31
b(The)e(SVR4.2)j(Shell)13 b Fm(:)i(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)43
-b Ft(139)150 865 y Fr(App)t(endix)h(C)165 b(GNU)45 b(F)-11
+b Ft(141)150 865 y Fr(App)t(endix)h(C)165 b(GNU)45 b(F)-11
b(ree)45 b(Do)t(cumen)l(tation)h(License)439 998 y Fn(:)19
b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64 b Fr(141)150
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64 b Fr(143)150
1268 y(App)t(endix)44 b(D)159 b(Indexes)15 b Fn(:)20
b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Fr(149)275 1405
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Fr(151)275 1405
y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)16
b Fm(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(149)275
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(151)275
1514 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8
b(ords)12 b Fm(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)42
-b Ft(150)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
+b Ft(152)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
b(ariable)32 b(Index)20 b Fm(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)50 b Ft(150)275 1733 y(D.4)92 b(F)-8 b(unction)31
+f(:)h(:)f(:)50 b Ft(152)275 1733 y(D.4)92 b(F)-8 b(unction)31
b(Index)16 b Fm(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)47
-b Ft(152)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fm(:)15
+b Ft(154)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fm(:)15
b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Ft(154)p
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Ft(156)p
eop end
%%Page: 1 7
TeXDict begin 1 6 bop 150 -116 a Ft(Chapter)30 b(1:)41
@@ -5100,11 +5099,11 @@ e(sp)s(ecial)i(meaning)150 909 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g
(b)s(e)g(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68
b(When)39 b(the)h(command)f(history)150 1019 y(expansion)i(facilities)j
(are)e(b)s(eing)f(used)g(\(see)h(Section)h(9.3)f([History)h(In)m
-(teraction],)j(page)c(121\),)47 b(the)150 1128 y Fq(history)30
+(teraction],)j(page)c(123\),)47 b(the)150 1128 y Fq(history)30
b(expansion)h Ft(c)m(haracter,)h(usually)f(`)p Fs(!)p
Ft(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g
(expansion.)41 b(See)150 1238 y(Section)22 b(9.1)g([Bash)f(History)h(F)
--8 b(acilities],)26 b(page)c(119,)j(for)20 b(more)h(details)h
+-8 b(acilities],)26 b(page)c(121,)j(for)20 b(more)h(details)h
(concerning)g(history)f(expansion.)275 1372 y(There)36
b(are)i(three)f(quoting)g(mec)m(hanisms:)55 b(the)37
b Fq(escap)s(e)h(c)m(haracter)7 b Ft(,)40 b(single)d(quotes,)j(and)c
@@ -5331,7 +5330,7 @@ Fq(bac)m(kground)t Ft(.)150 770 y(The)g(shell)h(do)s(es)f(not)h(w)m
(ait)g(for)f(the)h(command)f(to)i(\014nish,)d(and)h(the)h(return)e
(status)i(is)g(0)g(\(true\).)40 b(When)150 880 y(job)g(con)m(trol)h(is)
g(not)f(activ)m(e)i(\(see)f(Chapter)f(7)h([Job)f(Con)m(trol],)j(page)e
-(87\),)j(the)d(standard)e(input)g(for)150 990 y(async)m(hronous)k
+(89\),)j(the)d(standard)e(input)g(for)150 990 y(async)m(hronous)k
(commands,)k(in)d(the)f(absence)i(of)f(an)m(y)g(explicit)h
(redirections,)j(is)43 b(redirected)h(from)150 1099 y
Fs(/dev/null)p Ft(.)275 1242 y(Commands)19 b(separated)j(b)m(y)f(a)g(`)
@@ -5552,1174 +5551,1179 @@ b(Reference)g(Man)m(ual)630 299 y(Here)39 b(is)g(an)g(example)h(that)f
(allo)m(ws)i(the)e(user)f(to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h
(curren)m(t)630 408 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f
(name)h(and)f(index)f(of)i(the)g(\014le)f(selected.)870
-543 y Fs(select)46 b(fname)g(in)i(*;)870 653 y(do)870
-763 y(echo)f(you)g(picked)f($fname)g(\\\($REPLY\\\))870
-872 y(break;)870 982 y(done)150 1142 y(\(\(...)o(\)\))870
-1277 y(\(\()h Fi(expression)56 b Fs(\)\))630 1412 y Ft(The)33
+542 y Fs(select)46 b(fname)g(in)i(*;)870 651 y(do)870
+761 y(echo)f(you)g(picked)f($fname)g(\\\($REPLY\\\))870
+870 y(break;)870 980 y(done)150 1136 y(\(\(...)o(\)\))870
+1270 y(\(\()h Fi(expression)56 b Fs(\)\))630 1403 y Ft(The)33
b(arithmetic)i Fq(expression)f Ft(is)f(ev)-5 b(aluated)35
b(according)g(to)f(the)g(rules)f(describ)s(ed)g(b)s(elo)m(w)630
-1521 y(\(see)j(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)f(78\).)55
+1512 y(\(see)j(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)f(78\).)55
b(If)34 b(the)h(v)-5 b(alue)35 b(of)g(the)g(expression)g(is)630
-1631 y(non-zero,)27 b(the)f(return)e(status)i(is)g(0;)h(otherwise)f
+1622 y(non-zero,)27 b(the)f(return)e(status)i(is)g(0;)h(otherwise)f
(the)g(return)e(status)i(is)g(1.)39 b(This)25 b(is)g(exactly)630
-1740 y(equiv)-5 b(alen)m(t)32 b(to)870 1875 y Fs(let)47
-b(")p Fi(expression)11 b Fs(")630 2010 y Ft(See)25 b(Section)h(4.2)h
+1731 y(equiv)-5 b(alen)m(t)32 b(to)870 1864 y Fs(let)47
+b(")p Fi(expression)11 b Fs(")630 1998 y Ft(See)25 b(Section)h(4.2)h
([Bash)e(Builtins],)i(page)f(41,)i(for)c(a)i(full)f(description)g(of)g
-(the)h Fs(let)e Ft(builtin.)150 2170 y Fs([[...)o(]])870
-2305 y([[)47 b Fi(expression)56 b Fs(]])630 2440 y Ft(Return)25
+(the)h Fs(let)e Ft(builtin.)150 2154 y Fs([[...)o(]])870
+2287 y([[)47 b Fi(expression)56 b Fs(]])630 2420 y Ft(Return)25
b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5
b(aluation)27 b(of)e(the)h(conditional)h(expres-)630
-2550 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29
+2530 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29
b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
-(w)h(in)630 2659 y(Section)36 b(6.4)h([Bash)f(Conditional)g
+(w)h(in)630 2639 y(Section)36 b(6.4)h([Bash)f(Conditional)g
(Expressions],)h(page)f(76.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
-(\014le-)630 2769 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f
+(\014le-)630 2749 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f
(on)h(the)h(w)m(ords)f(b)s(et)m(w)m(een)h(the)g(`)p Fs([[)p
-Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 2878 y(expansion,)31
+Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 2859 y(expansion,)31
b(parameter)g(and)f(v)-5 b(ariable)31 b(expansion,)g(arithmetic)g
-(expansion,)g(command)630 2988 y(substitution,)40 b(pro)s(cess)f
+(expansion,)g(command)630 2968 y(substitution,)40 b(pro)s(cess)f
(substitution,)h(and)e(quote)h(remo)m(v)-5 b(al)40 b(are)f(p)s
-(erformed.)63 b(Condi-)630 3098 y(tional)32 b(op)s(erators)e(suc)m(h)g
+(erformed.)63 b(Condi-)630 3078 y(tional)32 b(op)s(erators)e(suc)m(h)g
(as)h(`)p Fs(-f)p Ft(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e
-(recognized)j(as)f(primaries.)630 3232 y(When)22 b(the)h(`)p
+(recognized)j(as)f(primaries.)630 3211 y(When)d(used)g(with)g(`)p
+Fs([[)p Ft(',)h(The)f(`)p Fs(<)p Ft(')g(and)g(`)p Fs(>)p
+Ft(')h(op)s(erators)f(sort)h(lexicographically)i(using)d(the)630
+3320 y(curren)m(t)i(lo)s(cale.)630 3453 y(When)22 b(the)h(`)p
Fs(==)p Ft(')f(and)g(`)p Fs(!=)p Ft(')g(op)s(erators)h(are)g(used,)g
(the)g(string)f(to)i(the)e(righ)m(t)h(of)g(the)g(op)s(erator)630
-3342 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h(according)
+3563 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h(according)
g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
-3452 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(24.)
+3673 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(24.)
59 b(If)36 b(the)g(shell)g(option)h Fs(nocasematch)630
-3561 y Ft(\(see)42 b(the)f(description)g(of)h Fs(shopt)d
+3782 y Ft(\(see)42 b(the)f(description)g(of)h Fs(shopt)d
Ft(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45
-b(page)d(55\))630 3671 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s
+b(page)d(55\))630 3892 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s
(erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630
-3780 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28
+4001 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28
b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h(\(`)p Fs(==)p
-Ft('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 3890 y(\(`)p
+Ft('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 4111 y(\(`)p
Fs(!=)p Ft('\)the)33 b(pattern,)g(and)f(1)g(otherwise.)47
b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s(e)f(quoted)g(to)
-630 4000 y(force)f(it)g(to)g(b)s(e)f(matc)m(hed)h(as)f(a)h(string.)630
-4134 y(An)i(additional)i(binary)e(op)s(erator,)i(`)p
+630 4221 y(force)f(it)g(to)g(b)s(e)f(matc)m(hed)h(as)f(a)h(string.)630
+4354 y(An)i(additional)i(binary)e(op)s(erator,)i(`)p
Fs(=~)p Ft(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
-(precedence)h(as)630 4244 y(`)p Fs(==)p Ft(')29 b(and)f(`)p
+(precedence)h(as)630 4463 y(`)p Fs(==)p Ft(')29 b(and)f(`)p
Fs(!=)p Ft('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the)
e(righ)m(t)i(of)f(the)g(op)s(erator)g(is)g(consid-)630
-4354 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m
+4573 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m
(hed)i(accordingly)g(\(as)f(in)g Fk(r)-5 b(e)g(gex)11
-b Ft(3\)\).)630 4463 y(The)29 b(return)f(v)-5 b(alue)30
+b Ft(3\)\).)630 4682 y(The)29 b(return)f(v)-5 b(alue)30
b(is)g(0)g(if)f(the)h(string)g(matc)m(hes)g(the)g(pattern,)g(and)f(1)h
-(otherwise.)41 b(If)29 b(the)630 4573 y(regular)e(expression)g(is)h
+(otherwise.)41 b(If)29 b(the)630 4792 y(regular)e(expression)g(is)h
(syn)m(tactically)i(incorrect,)f(the)e(conditional)i(expression's)e
-(return)630 4682 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
+(return)630 4902 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
b(the)h(shell)f(option)h Fs(nocasematch)d Ft(\(see)j(the)g(description)
-g(of)f Fs(shopt)f Ft(in)630 4792 y(Section)32 b(4.3.2)g([The)f(Shopt)f
+g(of)f Fs(shopt)f Ft(in)630 5011 y(Section)32 b(4.3.2)g([The)f(Shopt)f
(Builtin],)i(page)g(55\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
-(erformed)630 4902 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
+(erformed)630 5121 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
(alphab)s(etic)h(c)m(haracters.)59 b(An)m(y)36 b(part)g(of)h(the)f
-(pattern)630 5011 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b)
+(pattern)630 5230 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b)
s(e)f(matc)m(hed)i(as)f(a)g(string.)57 b(Substrings)34
-b(matc)m(hed)j(b)m(y)630 5121 y(paren)m(thesized)44 b(sub)s
+b(matc)m(hed)j(b)m(y)630 5340 y(paren)m(thesized)44 b(sub)s
(expressions)e(within)i(the)g(regular)g(expression)g(are)g(sa)m(v)m(ed)
-h(in)f(the)630 5230 y(arra)m(y)38 b(v)-5 b(ariable)38
-b Fs(BASH_REMATCH)p Ft(.)59 b(The)36 b(elemen)m(t)j(of)f
-Fs(BASH_REMATCH)c Ft(with)j(index)g(0)h(is)630 5340 y(the)c(p)s(ortion)
-f(of)h(the)f(string)h(matc)m(hing)g(the)g(en)m(tire)h(regular)e
-(expression.)50 b(The)33 b(elemen)m(t)p eop end
+h(in)f(the)p eop end
%%Page: 13 19
TeXDict begin 13 18 bop 150 -116 a Ft(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299
-y(of)39 b Fs(BASH_REMATCH)c Ft(with)j(index)g Fq(n)f
-Ft(is)i(the)f(p)s(ortion)g(of)h(the)f(string)h(matc)m(hing)g(the)g
-Fq(n)p Ft(th)630 408 y(paren)m(thesized)31 b(sub)s(expression.)630
-542 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
-(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-651 y(order)30 b(of)g(precedence:)630 808 y Fs(\()g Fi(expression)38
-b Fs(\))1110 918 y Ft(Returns)30 b(the)h(v)-5 b(alue)31
-b(of)g Fq(expression)p Ft(.)42 b(This)30 b(ma)m(y)i(b)s(e)e(used)g(to)i
-(o)m(v)m(erride)g(the)1110 1027 y(normal)e(precedence)h(of)g(op)s
-(erators.)630 1184 y Fs(!)f Fi(expression)1110 1293 y
-Ft(T)-8 b(rue)30 b(if)g Fq(expression)g Ft(is)h(false.)630
-1450 y Fi(expression1)38 b Fs(&&)30 b Fi(expression2)1110
-1560 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expression1)38
-b Ft(and)29 b Fq(expression2)38 b Ft(are)31 b(true.)630
-1716 y Fi(expression1)38 b Fs(||)30 b Fi(expression2)1110
-1826 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expression1)38
-b Ft(or)30 b Fq(expression2)38 b Ft(is)30 b(true.)630
-1983 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f Ft(op)s(erators)i(do)f(not)h
-(ev)-5 b(aluate)27 b Fq(expression2)33 b Ft(if)26 b(the)f(v)-5
-b(alue)26 b(of)g Fq(expression1)630 2092 y Ft(is)k(su\016cien)m(t)h(to)
-g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)g
-(conditional)h(expression.)150 2289 y Fj(3.2.4.3)63 b(Grouping)43
-b(Commands)150 2436 y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m
-(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h
-(as)g(a)h(unit.)40 b(When)29 b(com-)150 2545 y(mands)h(are)i(group)s
-(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h
-(command)g(list.)44 b(F)-8 b(or)32 b(example,)150 2655
-y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g(the)h(list)g(ma)m(y)g
-(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)150 2812
-y Fs(\(\))870 2945 y(\()47 b Fi(list)58 b Fs(\))630 3078
-y Ft(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i(paren)m
-(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
-3188 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
-(Execution)i(En)m(vironmen)m(t],)g(page)f(30\),)630 3297
-y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j
+y(arra)m(y)38 b(v)-5 b(ariable)38 b Fs(BASH_REMATCH)p
+Ft(.)59 b(The)36 b(elemen)m(t)j(of)f Fs(BASH_REMATCH)c
+Ft(with)j(index)g(0)h(is)630 408 y(the)c(p)s(ortion)f(of)h(the)f
+(string)h(matc)m(hing)g(the)g(en)m(tire)h(regular)e(expression.)50
+b(The)33 b(elemen)m(t)630 518 y(of)39 b Fs(BASH_REMATCH)c
+Ft(with)j(index)g Fq(n)f Ft(is)i(the)f(p)s(ortion)g(of)h(the)f(string)h
+(matc)m(hing)g(the)g Fq(n)p Ft(th)630 628 y(paren)m(thesized)31
+b(sub)s(expression.)630 770 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m
+(bined)i(using)f(the)h(follo)m(wing)h(op)s(erators,)g(listed)f(in)f
+(decreasing)630 879 y(order)30 b(of)g(precedence:)630
+1054 y Fs(\()g Fi(expression)38 b Fs(\))1110 1163 y Ft(Returns)30
+b(the)h(v)-5 b(alue)31 b(of)g Fq(expression)p Ft(.)42
+b(This)30 b(ma)m(y)i(b)s(e)e(used)g(to)i(o)m(v)m(erride)g(the)1110
+1273 y(normal)e(precedence)h(of)g(op)s(erators.)630 1447
+y Fs(!)f Fi(expression)1110 1557 y Ft(T)-8 b(rue)30 b(if)g
+Fq(expression)g Ft(is)h(false.)630 1731 y Fi(expression1)38
+b Fs(&&)30 b Fi(expression2)1110 1841 y Ft(T)-8 b(rue)30
+b(if)g(b)s(oth)g Fq(expression1)38 b Ft(and)29 b Fq(expression2)38
+b Ft(are)31 b(true.)630 2015 y Fi(expression1)38 b Fs(||)30
+b Fi(expression2)1110 2125 y Ft(T)-8 b(rue)30 b(if)g(either)h
+Fq(expression1)38 b Ft(or)30 b Fq(expression2)38 b Ft(is)30
+b(true.)630 2299 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f
+Ft(op)s(erators)i(do)f(not)h(ev)-5 b(aluate)27 b Fq(expression2)33
+b Ft(if)26 b(the)f(v)-5 b(alue)26 b(of)g Fq(expression1)630
+2408 y Ft(is)k(su\016cien)m(t)h(to)g(determine)g(the)f(return)g(v)-5
+b(alue)31 b(of)f(the)h(en)m(tire)g(conditional)h(expression.)150
+2623 y Fj(3.2.4.3)63 b(Grouping)43 b(Commands)150 2770
+y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m(ys)f(to)h(group)e(a)h
+(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h(as)g(a)h(unit.)40
+b(When)29 b(com-)150 2879 y(mands)h(are)i(group)s(ed,)f(redirections)h
+(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h(command)g(list.)44
+b(F)-8 b(or)32 b(example,)150 2989 y(the)f(output)f(of)g(all)h(the)g
+(commands)f(in)g(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g
+(single)g(stream.)150 3171 y Fs(\(\))870 3313 y(\()47
+b Fi(list)58 b Fs(\))630 3455 y Ft(Placing)30 b(a)f(list)g(of)g
+(commands)f(b)s(et)m(w)m(een)i(paren)m(theses)e(causes)i(a)f(subshell)e
+(en)m(vironmen)m(t)630 3564 y(to)k(b)s(e)e(created)j(\(see)f(Section)g
+(3.7.3)h([Command)d(Execution)i(En)m(vironmen)m(t],)g(page)f(30\),)630
+3674 y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j
Ft(to)f(b)s(e)e(executed)h(in)f(that)h(subshell.)39 b(Since)28
-b(the)f Fq(list)630 3407 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
+b(the)f Fq(list)630 3783 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
-(after)e(the)630 3516 y(subshell)g(completes.)150 3673
-y Fs({})870 3806 y({)47 b Fi(list)11 b Fs(;)46 b(})630
-3939 y Ft(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h
+(after)e(the)630 3893 y(subshell)g(completes.)150 4067
+y Fs({})870 4209 y({)47 b Fi(list)11 b Fs(;)46 b(})630
+4351 y Ft(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h
(curly)f(braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630
-4049 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
+4461 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
b(No)27 b(subshell)f(is)g(created.)41 b(The)26 b(semicolon)i(\(or)f
-(newline\))630 4159 y(follo)m(wing)32 b Fq(list)h Ft(is)d(required.)275
-4315 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
+(newline\))630 4570 y(follo)m(wing)32 b Fq(list)h Ft(is)d(required.)275
+4752 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
(there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
-4425 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
+4862 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
b(The)39 b(braces)g(are)h Fs(reserved)28 b(words)p Ft(,)40
-b(so)g(they)f(m)m(ust)150 4535 y(b)s(e)d(separated)h(from)f(the)g
+b(so)g(they)f(m)m(ust)150 4971 y(b)s(e)d(separated)h(from)f(the)g
Fq(list)j Ft(b)m(y)e Fs(blank)p Ft(s)e(or)h(other)h(shell)f(metac)m
-(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 4644
+(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 5081
y Fs(operators)p Ft(,)23 b(and)h(are)g(recognized)i(as)e(separate)i
(tok)m(ens)f(b)m(y)f(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f
-(separated)150 4754 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.)
-275 4887 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
+(separated)150 5191 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.)
+275 5340 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
(constructs)g(is)f(the)h(exit)g(status)f(of)h Fq(list)r
-Ft(.)150 5083 y Fj(3.2.5)63 b(Copro)s(cesses)150 5230
-y Ft(A)37 b Fs(coprocess)c Ft(is)k(a)g(shell)f(command)h(preceded)f(b)m
-(y)g(the)h Fs(coproc)d Ft(reserv)m(ed)j(w)m(ord.)59 b(A)36
-b(copro)s(cess)h(is)150 5340 y(executed)g(async)m(hronously)g(in)f(a)h
-(subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated)i
-(with)g(the)p eop end
+Ft(.)p eop end
%%Page: 14 20
TeXDict begin 14 19 bop 150 -116 a Ft(14)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(`)p Fs(&)p Ft(')j(con)m(trol)h(op)s
-(erator,)g(with)f(a)g(t)m(w)m(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s
-(et)m(w)m(een)h(the)f(executing)h(shell)f(and)f(the)150
-408 y(copro)s(cess.)275 541 y(The)c(format)i(for)f(a)h(copro)s(cess)g
-(is:)390 673 y Fs(coproc)46 b([)p Fi(NAME)11 b Fs(])46
-b Fi(command)56 b Fs([)p Fi(redirections)11 b Fs(])150
-805 y Ft(This)41 b(creates)i(a)g(copro)s(cess)f(named)f
-Fq(NAME)5 b Ft(.)43 b(If)f Fq(NAME)47 b Ft(is)42 b(not)g(supplied,)i
-(the)e(default)g(name)g(is)150 914 y Fq(COPR)m(OC)8 b
-Ft(.)22 b Fq(NAME)29 b Ft(m)m(ust)23 b(not)g(b)s(e)g(supplied)e(if)i
-Fq(command)k Ft(is)c(a)g(simple)g(command)g(\(see)h(Section)g(3.2.1)150
-1024 y([Simple)39 b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g
+b(Reference)g(Man)m(ual)150 299 y Fj(3.2.5)63 b(Copro)s(cesses)150
+446 y Ft(A)37 b Fs(coprocess)c Ft(is)k(a)g(shell)f(command)h(preceded)f
+(b)m(y)g(the)h Fs(coproc)d Ft(reserv)m(ed)j(w)m(ord.)59
+b(A)36 b(copro)s(cess)h(is)150 555 y(executed)g(async)m(hronously)g(in)
+f(a)h(subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated)
+i(with)g(the)150 665 y(`)p Fs(&)p Ft(')d(con)m(trol)h(op)s(erator,)g
+(with)f(a)g(t)m(w)m(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m
+(een)h(the)f(executing)h(shell)f(and)f(the)150 775 y(copro)s(cess.)275
+906 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
+1037 y Fs(coproc)46 b([)p Fi(NAME)11 b Fs(])46 b Fi(command)56
+b Fs([)p Fi(redirections)11 b Fs(])150 1168 y Ft(This)41
+b(creates)i(a)g(copro)s(cess)f(named)f Fq(NAME)5 b Ft(.)43
+b(If)f Fq(NAME)47 b Ft(is)42 b(not)g(supplied,)i(the)e(default)g(name)g
+(is)150 1277 y Fq(COPR)m(OC)8 b Ft(.)22 b Fq(NAME)29
+b Ft(m)m(ust)23 b(not)g(b)s(e)g(supplied)e(if)i Fq(command)k
+Ft(is)c(a)g(simple)g(command)g(\(see)h(Section)g(3.2.1)150
+1387 y([Simple)39 b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g
(in)m(terpreted)h(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150
-1134 y(command.)275 1266 y(When)23 b(the)h(copro)s(c)g(is)g(executed,)i
+1496 y(command.)275 1627 y(When)23 b(the)h(copro)s(c)g(is)g(executed,)i
(the)e(shell)g(creates)h(an)e(arra)m(y)i(v)-5 b(ariable)24
-b(\(see)h(Section)f(6.7)h([Arra)m(ys],)150 1375 y(page)43
+b(\(see)h(Section)f(6.7)h([Arra)m(ys],)150 1737 y(page)43
b(80\))g(named)f Fq(NAME)48 b Ft(in)42 b(the)g(con)m(text)i(of)e(the)h
(executing)g(shell.)76 b(The)42 b(standard)f(output)h(of)150
-1485 y Fq(command)d Ft(is)d(connected)h(via)g(a)f(pip)s(e)g(to)g(a)h
+1846 y Fq(command)d Ft(is)d(connected)h(via)g(a)f(pip)s(e)g(to)g(a)h
(\014le)f(descriptor)g(in)f(the)i(executing)g(shell,)h(and)d(that)i
-(\014le)150 1594 y(descriptor)25 b(is)f(assigned)h(to)h
+(\014le)150 1956 y(descriptor)25 b(is)f(assigned)h(to)h
Fq(NAME)5 b Ft([0].)40 b(The)25 b(standard)e(input)h(of)h
Fq(command)j Ft(is)d(connected)g(via)h(a)f(pip)s(e)150
-1704 y(to)33 b(a)f(\014le)g(descriptor)g(in)f(the)i(executing)g(shell,)
+2066 y(to)33 b(a)f(\014le)g(descriptor)g(in)f(the)i(executing)g(shell,)
f(and)g(that)g(\014le)g(descriptor)g(is)g(assigned)g(to)h
-Fq(NAME)5 b Ft([1].)150 1814 y(This)31 b(pip)s(e)g(is)h(established)g
+Fq(NAME)5 b Ft([1].)150 2175 y(This)31 b(pip)s(e)g(is)h(established)g
(b)s(efore)g(an)m(y)g(redirections)g(sp)s(eci\014ed)g(b)m(y)f(the)i
-(command)e(\(see)i(Section)g(3.6)150 1923 y([Redirections],)25
+(command)e(\(see)i(Section)g(3.6)150 2285 y([Redirections],)25
b(page)e(26\).)39 b(The)21 b(\014le)h(descriptors)g(can)g(b)s(e)f
(utilized)i(as)f(argumen)m(ts)h(to)f(shell)g(commands)150
-2033 y(and)30 b(redirections)h(using)f(standard)f(w)m(ord)h
-(expansions.)275 2165 y(The)f(pro)s(cess)h(id)f(of)h(the)g(shell)h(spa)
+2394 y(and)30 b(redirections)h(using)f(standard)f(w)m(ord)h
+(expansions.)275 2525 y(The)f(pro)s(cess)h(id)f(of)h(the)g(shell)h(spa)
m(wned)e(to)i(execute)g(the)f(copro)s(cess)h(is)f(a)m(v)-5
-b(ailable)32 b(as)e(the)g(v)-5 b(alue)31 b(of)150 2275
-y(the)26 b(v)-5 b(ariable)26 b Fq(NAME)p 931 2275 28
+b(ailable)32 b(as)e(the)g(v)-5 b(alue)31 b(of)150 2635
+y(the)26 b(v)-5 b(ariable)26 b Fq(NAME)p 931 2635 28
4 v 46 w Ft(PID.)g(The)f Fs(wait)g Ft(builtin)g(command)g(ma)m(y)h(b)s
(e)f(used)g(to)i(w)m(ait)f(for)g(the)g(copro)s(cess)150
-2384 y(to)31 b(terminate.)275 2516 y(The)e(return)h(status)g(of)h(a)g
+2745 y(to)31 b(terminate.)275 2876 y(The)e(return)h(status)g(of)h(a)g
(copro)s(cess)f(is)h(the)f(exit)i(status)e(of)h Fq(command)t
-Ft(.)150 2744 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)150
-2903 y Ft(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e
+Ft(.)150 3101 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)150
+3260 y Ft(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e
(commands)g(for)h(later)g(execution)h(using)e(a)h(single)g(name)g(for)
-150 3013 y(the)f(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m(e)
+150 3370 y(the)f(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m(e)
h(a)g Fs(")p Ft(regular)p Fs(")f Ft(command.)54 b(When)35
-b(the)h(name)f(of)g(a)h(shell)150 3123 y(function)j(is)g(used)f(as)h(a)
+b(the)h(name)f(of)g(a)h(shell)150 3480 y(function)j(is)g(used)f(as)h(a)
h(simple)f(command)g(name,)i(the)e(list)h(of)f(commands)g(asso)s
-(ciated)i(with)d(that)150 3232 y(function)25 b(name)h(is)g(executed.)40
+(ciated)i(with)d(that)150 3589 y(function)25 b(name)h(is)g(executed.)40
b(Shell)25 b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g
-(shell)g(con)m(text;)j(no)c(new)150 3342 y(pro)s(cess)30
-b(is)g(created)i(to)f(in)m(terpret)g(them.)275 3474 y(F)-8
+(shell)g(con)m(text;)j(no)c(new)150 3699 y(pro)s(cess)30
+b(is)g(created)i(to)f(in)m(terpret)g(them.)275 3830 y(F)-8
b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390
-3606 y Fs([)47 b(function)f(])h Fi(name)58 b Fs(\(\))47
+3961 y Fs([)47 b(function)f(])h Fi(name)58 b Fs(\(\))47
b Fi(compound-command)54 b Fs([)47 b Fi(redirections)55
-b Fs(])275 3738 y Ft(This)31 b(de\014nes)h(a)g(shell)h(function)f
+b Fs(])275 4092 y Ft(This)31 b(de\014nes)h(a)g(shell)h(function)f
(named)g Fq(name)5 b Ft(.)47 b(The)32 b(reserv)m(ed)h(w)m(ord)f
-Fs(function)e Ft(is)i(optional.)48 b(If)150 3848 y(the)39
+Fs(function)e Ft(is)i(optional.)48 b(If)150 4201 y(the)39
b Fs(function)f Ft(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e
(paren)m(theses)h(are)f(optional.)69 b(The)39 b Fq(b)s(o)s(dy)45
-b Ft(of)40 b(the)150 3957 y(function)h(is)h(the)g(comp)s(ound)e
+b Ft(of)40 b(the)150 4311 y(function)h(is)h(the)g(comp)s(ound)e
(command)h Fq(comp)s(ound-command)j Ft(\(see)e(Section)h(3.2.4)g([Comp)
-s(ound)150 4067 y(Commands],)33 b(page)g(9\).)48 b(That)33
+s(ound)150 4420 y(Commands],)33 b(page)g(9\).)48 b(That)33
b(command)g(is)f(usually)h(a)g Fq(list)i Ft(enclosed)e(b)s(et)m(w)m
(een)h Fs({)e Ft(and)g Fs(})p Ft(,)h(but)f(ma)m(y)150
-4176 y(b)s(e)27 b(an)m(y)h(comp)s(ound)e(command)h(listed)h(ab)s(o)m(v)
+4530 y(b)s(e)27 b(an)m(y)h(comp)s(ound)e(command)h(listed)h(ab)s(o)m(v)
m(e.)41 b Fq(comp)s(ound-command)30 b Ft(is)e(executed)g(whenev)m(er)g
-Fq(name)150 4286 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g
+Fq(name)150 4640 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g
(a)h(command.)61 b(An)m(y)37 b(redirections)h(\(see)g(Section)g(3.6)g
-([Redirections],)150 4396 y(page)31 b(26\))h(asso)s(ciated)g(with)e
+([Redirections],)150 4749 y(page)31 b(26\))h(asso)s(ciated)g(with)e
(the)g(shell)h(function)f(are)h(p)s(erformed)d(when)i(the)g(function)g
-(is)h(executed.)275 4528 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b)
+(is)h(executed.)275 4880 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b)
s(e)g(deleted)g(using)g(the)g(`)p Fs(-f)p Ft(')g(option)g(to)h(the)f
-Fs(unset)e Ft(builtin)i(\(see)150 4637 y(Section)31 b(4.1)h([Bourne)e
-(Shell)g(Builtins],)h(page)h(35\).)275 4769 y(The)26
+Fs(unset)e Ft(builtin)i(\(see)150 4990 y(Section)31 b(4.1)h([Bourne)e
+(Shell)g(Builtins],)h(page)h(35\).)275 5121 y(The)26
b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h
(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150
-4879 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
+5230 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150
-4989 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
-i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 5121 y(Note)22 b(that)f(for)f
-(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g
-(curly)f(braces)h(that)g(surround)150 5230 y(the)38 b(b)s(o)s(dy)d(of)j
-(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s
-(dy)f(b)m(y)h Fs(blank)p Ft(s)f(or)h(newlines.)62 b(This)150
-5340 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
-(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
-(are)p eop end
+5340 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
+i(in)e(the)g(b)s(o)s(dy)-8 b(.)p eop end
%%Page: 15 21
TeXDict begin 15 20 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)150 299
-y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h(or)
-g(another)g(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150
-408 y(using)i(the)g(braces,)h(the)g Fq(list)i Ft(m)m(ust)d(b)s(e)g
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)275 299
+y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)g(most)g
+(common)g(usage)g(the)g(curly)f(braces)h(that)g(surround)150
+408 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g
+(separated)h(from)f(the)g(b)s(o)s(dy)f(b)m(y)h Fs(blank)p
+Ft(s)f(or)h(newlines.)62 b(This)150 518 y(is)38 b(b)s(ecause)g(the)h
+(braces)f(are)h(reserv)m(ed)f(w)m(ords)g(and)f(are)i(only)f(recognized)
+i(as)e(suc)m(h)g(when)f(they)i(are)150 628 y(separated)26
+b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h(or)g(another)g
+(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150 737
+y(using)i(the)g(braces,)h(the)g Fq(list)i Ft(m)m(ust)d(b)s(e)g
(terminated)h(b)m(y)f(a)h(semicolon,)h(a)e(`)p Fs(&)p
-Ft(',)h(or)g(a)f(newline.)275 544 y(When)i(a)i(function)f(is)g
+Ft(',)h(or)g(a)f(newline.)275 879 y(When)i(a)i(function)f(is)g
(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g
-(the)h(p)s(ositional)g(pa-)150 654 y(rameters)42 b(during)e(its)i
+(the)h(p)s(ositional)g(pa-)150 988 y(rameters)42 b(during)e(its)i
(execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
-(arameters],)i(page)c(16\).)75 b(The)150 764 y(sp)s(ecial)37
+(arameters],)i(page)c(16\).)75 b(The)150 1098 y(sp)s(ecial)37
b(parameter)f(`)p Fs(#)p Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150
-873 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
+1207 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
b(parameter)h Fs(0)f Ft(is)g(unc)m(hanged.)54 b(The)35
-b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 983
+b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 1317
y Ft(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h
(function)f(while)g(the)h(function)f(is)g(executing.)275
-1119 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)
+1459 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)
m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g
-(and)150 1228 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
+(and)150 1568 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
b(the)36 b Fs(DEBUG)d Ft(and)h Fs(RETURN)g Ft(traps)g(are)i(not)f
-(inherited)f(unless)h(the)150 1338 y(function)26 b(has)g(b)s(een)f(giv)
+(inherited)f(unless)h(the)150 1678 y(function)26 b(has)g(b)s(een)f(giv)
m(en)i(the)g Fs(trace)d Ft(attribute)j(using)f(the)g
Fs(declare)e Ft(builtin)i(or)g(the)h Fs(-o)i(functrace)150
-1447 y Ft(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g
+1787 y Ft(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g
Fs(set)f Ft(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f(functions)e
-(inherit)h(the)g Fs(DEBUG)150 1557 y Ft(and)33 b Fs(RETURN)f
+(inherit)h(the)g Fs(DEBUG)150 1897 y Ft(and)33 b Fs(RETURN)f
Ft(traps\),)j(and)e(the)h Fs(ERR)f Ft(trap)h(is)g(not)g(inherited)f
(unless)g(the)h Fs(-o)c(errtrace)h Ft(shell)j(option)150
-1667 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
+2007 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
(Shell)g(Builtins],)i(page)f(35,)i(for)c(the)i(description)f(of)150
-1776 y(the)c Fs(trap)e Ft(builtin.)275 1912 y(If)37 b(the)g(builtin)g
+2116 y(the)c Fs(trap)e Ft(builtin.)275 2258 y(If)37 b(the)g(builtin)g
(command)h Fs(return)d Ft(is)j(executed)g(in)g(a)g(function,)h(the)e
-(function)h(completes)h(and)150 2022 y(execution)25 b(resumes)e(with)h
+(function)h(completes)h(and)150 2367 y(execution)25 b(resumes)e(with)h
(the)g(next)g(command)f(after)i(the)f(function)f(call.)40
-b(An)m(y)24 b(command)f(asso)s(ciated)150 2131 y(with)36
+b(An)m(y)24 b(command)f(asso)s(ciated)150 2477 y(with)36
b(the)h Fs(RETURN)d Ft(trap)i(is)h(executed)g(b)s(efore)f(execution)i
(resumes.)57 b(When)37 b(a)f(function)g(completes,)150
-2241 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f
+2586 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f
(and)g(the)g(sp)s(ecial)h(parameter)f(`)p Fs(#)p Ft(')g(are)h(restored)
-f(to)h(the)150 2351 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g
+f(to)h(the)150 2696 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g
(function's)f(execution.)40 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h
-(is)f(giv)m(en)h(to)g Fs(return)p Ft(,)150 2460 y(that)j(is)g(the)f
+(is)f(giv)m(en)h(to)g Fs(return)p Ft(,)150 2806 y(that)j(is)g(the)f
(function's)h(return)e(status;)j(otherwise)f(the)f(function's)h(return)
-e(status)i(is)f(the)h(exit)h(status)150 2570 y(of)h(the)f(last)h
+e(status)i(is)f(the)h(exit)h(status)150 2915 y(of)h(the)f(last)h
(command)f(executed)i(b)s(efore)e(the)g Fs(return)p Ft(.)275
-2706 y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i
+3057 y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i
(b)s(e)e(declared)h(with)f(the)h Fs(local)f Ft(builtin.)40
-b(These)29 b(v)-5 b(ariables)150 2815 y(are)31 b(visible)g(only)f(to)h
+b(These)29 b(v)-5 b(ariables)150 3166 y(are)31 b(visible)g(only)f(to)h
(the)g(function)f(and)g(the)g(commands)g(it)h(in)m(v)m(ok)m(es.)275
-2951 y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s
+3308 y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s
(e)e(listed)h(with)f(the)h(`)p Fs(-f)p Ft(')f(option)h(to)h(the)e
-Fs(declare)f Ft(or)150 3061 y Fs(typeset)d Ft(builtin)h(commands)h
+Fs(declare)f Ft(or)150 3417 y Fs(typeset)d Ft(builtin)h(commands)h
(\(see)h(Section)g(4.2)g([Bash)f(Builtins],)i(page)f(41\).)55
-b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 3170 y
+b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 3527 y
Fs(declare)f Ft(or)i Fs(typeset)e Ft(will)i(list)h(the)f(function)g
(names)g(only)g(\(and)g(optionally)h(the)f(source)g(\014le)h(and)150
-3280 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e
+3636 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e
Ft(shell)i(option)g(is)g(enabled\).)49 b(F)-8 b(unctions)33
-b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 3390 y(subshells)f
+b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 3746 y(subshells)f
(automatically)37 b(ha)m(v)m(e)d(them)g(de\014ned)e(with)h(the)g(`)p
Fs(-f)p Ft(')h(option)g(to)g(the)f Fs(export)f Ft(builtin)h(\(see)150
-3499 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\).)47
+3856 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\).)47
b(Note)33 b(that)g(shell)f(functions)g(and)f(v)-5 b(ariables)33
-b(with)150 3609 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m
+b(with)150 3965 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m
(ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e(the)h(en)m
-(vironmen)m(t)g(passed)150 3718 y(to)h(the)g(shell's)f(c)m(hildren.)41
+(vironmen)m(t)g(passed)150 4075 y(to)h(the)g(shell's)f(c)m(hildren.)41
b(Care)30 b(should)g(b)s(e)f(tak)m(en)j(in)e(cases)h(where)f(this)g(ma)
-m(y)h(cause)g(a)g(problem.)275 3854 y(F)-8 b(unctions)30
+m(y)h(cause)g(a)g(problem.)275 4216 y(F)-8 b(unctions)30
b(ma)m(y)h(b)s(e)f(recursiv)m(e.)41 b(No)31 b(limit)g(is)g(placed)g(on)
f(the)g(n)m(um)m(b)s(er)g(of)g(recursiv)m(e)h(calls.)150
-4089 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)150 4248
+4459 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)150 4619
y Ft(A)23 b Fq(parameter)31 b Ft(is)23 b(an)g(en)m(tit)m(y)i(that)f
(stores)g(v)-5 b(alues.)39 b(It)23 b(can)h(b)s(e)f(a)g
Fs(name)p Ft(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s
-(ecial)150 4358 y(c)m(haracters)i(listed)f(b)s(elo)m(w.)39
+(ecial)150 4728 y(c)m(haracters)i(listed)f(b)s(elo)m(w.)39
b(A)24 b Fq(v)-5 b(ariable)29 b Ft(is)24 b(a)g(parameter)g(denoted)f(b)
m(y)h(a)g Fs(name)p Ft(.)37 b(A)24 b(v)-5 b(ariable)24
-b(has)f(a)h Fq(v)-5 b(alue)150 4467 y Ft(and)33 b(zero)i(or)e(more)h
+b(has)f(a)h Fq(v)-5 b(alue)150 4838 y Ft(and)33 b(zero)i(or)e(more)h
Fq(attributes)t Ft(.)51 b(A)m(ttributes)34 b(are)g(assigned)g(using)f
-(the)h Fs(declare)e Ft(builtin)h(command)150 4577 y(\(see)e(the)g
+(the)h Fs(declare)e Ft(builtin)h(command)150 4947 y(\(see)e(the)g
(description)f(of)h(the)f Fs(declare)f Ft(builtin)h(in)g(Section)h(4.2)
-g([Bash)g(Builtins],)g(page)g(41\).)275 4713 y(A)d(parameter)h(is)g
+g([Bash)g(Builtins],)g(page)g(41\).)275 5089 y(A)d(parameter)h(is)g
(set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g(v)-5
b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5
-b(alid)28 b(v)-5 b(alue.)41 b(Once)150 4823 y(a)31 b(v)-5
+b(alid)28 b(v)-5 b(alue.)41 b(Once)150 5198 y(a)31 b(v)-5
b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h(b)m(y)f
-(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275 4959
+(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275 5340
y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e(a)h
-(statemen)m(t)h(of)e(the)h(form)390 5094 y Fi(name)11
-b Fs(=[)p Fi(value)g Fs(])150 5230 y Ft(If)34 b Fq(v)-5
-b(alue)40 b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
-b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
-b Fq(v)-5 b(alue)5 b Ft(s)35 b(undergo)f(tilde)h(ex-)150
-5340 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
-b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)p
-eop end
+(statemen)m(t)h(of)e(the)h(form)p eop end
%%Page: 16 22
TeXDict begin 16 21 bop 150 -116 a Ft(16)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(and)40 b(quote)h(remo)m(v)-5
-b(al)42 b(\(detailed)h(b)s(elo)m(w\).)72 b(If)40 b(the)h(v)-5
-b(ariable)41 b(has)g(its)g Fs(integer)e Ft(attribute)i(set,)j(then)150
-408 y Fq(v)-5 b(alue)38 b Ft(is)33 b(ev)-5 b(aluated)34
-b(as)f(an)g(arithmetic)h(expression)f(ev)m(en)h(if)e(the)h
-Fs($\(\(...)o(\)\))f Ft(expansion)h(is)g(not)g(used)150
-518 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f(page)h
-(23\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s(erformed,)f
-(with)150 628 y(the)35 b(exception)h(of)f Fs("$@")f Ft(as)h(explained)g
-(b)s(elo)m(w.)54 b(Filename)36 b(expansion)f(is)g(not)g(p)s(erformed.)
-53 b(Assign-)150 737 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g
-(app)s(ear)f(as)g(argumen)m(ts)h(to)g(the)g Fs(alias)p
-Ft(,)e Fs(declare)p Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p
-Ft(,)150 847 y Fs(readonly)p Ft(,)d(and)i Fs(local)f
-Ft(builtin)h(commands.)275 987 y(In)f(the)h(con)m(text)i(where)d(an)h
-(assignmen)m(t)h(statemen)m(t)h(is)e(assigning)g(a)h(v)-5
-b(alue)30 b(to)h(a)f(shell)g(v)-5 b(ariable)31 b(or)150
-1096 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g([Arra)m(ys],)g(page)g
-(80\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g(can)h(b)s(e)e(used)g
-(to)i(app)s(end)d(to)150 1206 y(or)36 b(add)g(to)h(the)f(v)-5
-b(ariable's)37 b(previous)f(v)-5 b(alue.)59 b(When)36
-b(`)p Fs(+=)p Ft(')g(is)g(applied)g(to)h(a)g(v)-5 b(ariable)37
-b(for)f(whic)m(h)g(the)150 1315 y(in)m(teger)k(attribute)e(has)g(b)s
-(een)g(set,)j Fq(v)-5 b(alue)44 b Ft(is)38 b(ev)-5 b(aluated)39
-b(as)g(an)f(arithmetic)h(expression)f(and)g(added)150
-1425 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5
+b(Reference)g(Man)m(ual)390 299 y Fi(name)11 b Fs(=[)p
+Fi(value)g Fs(])150 435 y Ft(If)34 b Fq(v)-5 b(alue)40
+b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
+b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
+b Fq(v)-5 b(alue)5 b Ft(s)35 b(undergo)f(tilde)h(ex-)150
+544 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
+b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150
+654 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
+72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Fs(integer)e
+Ft(attribute)i(set,)j(then)150 763 y Fq(v)-5 b(alue)38
+b Ft(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
+(ev)m(en)h(if)e(the)h Fs($\(\(...)o(\)\))f Ft(expansion)h(is)g(not)g
+(used)150 873 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
+(page)h(23\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
+(erformed,)f(with)150 983 y(the)35 b(exception)h(of)f
+Fs("$@")f Ft(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36
+b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150
+1092 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
+(argumen)m(ts)h(to)g(the)g Fs(alias)p Ft(,)e Fs(declare)p
+Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 1202
+y Fs(readonly)p Ft(,)d(and)i Fs(local)f Ft(builtin)h(commands.)275
+1338 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m
+(t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
+b(ariable)31 b(or)150 1447 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g
+([Arra)m(ys],)g(page)g(80\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g
+(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 1557 y(or)36
+b(add)g(to)h(the)f(v)-5 b(ariable's)37 b(previous)f(v)-5
+b(alue.)59 b(When)36 b(`)p Fs(+=)p Ft(')g(is)g(applied)g(to)h(a)g(v)-5
+b(ariable)37 b(for)f(whic)m(h)g(the)150 1666 y(in)m(teger)k(attribute)e
+(has)g(b)s(een)g(set,)j Fq(v)-5 b(alue)44 b Ft(is)38
+b(ev)-5 b(aluated)39 b(as)g(an)f(arithmetic)h(expression)f(and)g(added)
+150 1776 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5
b(alue,)37 b(whic)m(h)e(is)g(also)h(ev)-5 b(aluated.)56
b(When)35 b(`)p Fs(+=)p Ft(')g(is)h(applied)f(to)g(an)g(arra)m(y)150
-1535 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see)
+1886 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see)
f(Section)h(6.7)f([Arra)m(ys],)i(page)f(80\),)h(the)e(v)-5
-b(ariable's)25 b(v)-5 b(alue)150 1644 y(is)32 b(not)f(unset)h(\(as)g
+b(ariable's)25 b(v)-5 b(alue)150 1995 y(is)32 b(not)f(unset)h(\(as)g
(it)g(is)f(when)g(using)g(`)p Fs(=)p Ft('\),)i(and)e(new)g(v)-5
b(alues)32 b(are)g(app)s(ended)d(to)k(the)f(arra)m(y)g(b)s(eginning)150
-1754 y(at)27 b(one)f(greater)i(than)e(the)g(arra)m(y's)h(maxim)m(um)f
+2105 y(at)27 b(one)f(greater)i(than)e(the)g(arra)m(y's)h(maxim)m(um)f
(index)g(\(for)g(indexed)g(arra)m(ys\),)i(or)e(added)g(as)g(additional)
-150 1863 y(k)m(ey-v)-5 b(alue)35 b(pairs)e(in)g(an)g(asso)s(ciativ)m(e)
+150 2214 y(k)m(ey-v)-5 b(alue)35 b(pairs)e(in)g(an)g(asso)s(ciativ)m(e)
j(arra)m(y)-8 b(.)51 b(When)33 b(applied)g(to)h(a)g(string-v)-5
b(alued)34 b(v)-5 b(ariable,)35 b Fq(v)-5 b(alue)39 b
-Ft(is)150 1973 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5
-b(ariable's)31 b(v)-5 b(alue.)150 2178 y Fj(3.4.1)63
-b(P)m(ositional)41 b(P)m(arameters)150 2325 y Ft(A)28
+Ft(is)150 2324 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5
+b(ariable's)31 b(v)-5 b(alue.)150 2525 y Fj(3.4.1)63
+b(P)m(ositional)41 b(P)m(arameters)150 2671 y Ft(A)28
b Fq(p)s(ositional)h(parameter)35 b Ft(is)28 b(a)g(parameter)g(denoted)
g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g(than)e(the)h(single)150
-2434 y(digit)34 b Fs(0)p Ft(.)48 b(P)m(ositional)36 b(parameters)d(are)
+2781 y(digit)34 b Fs(0)p Ft(.)48 b(P)m(ositional)36 b(parameters)d(are)
g(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)
-m(v)m(ok)m(ed,)150 2544 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)
+m(v)m(ok)m(ed,)150 2891 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)
e(the)h Fs(set)g Ft(builtin)f(command.)67 b(P)m(ositional)41
-b(parameter)e Fs(N)g Ft(ma)m(y)h(b)s(e)150 2653 y(referenced)34
+b(parameter)e Fs(N)g Ft(ma)m(y)h(b)s(e)150 3000 y(referenced)34
b(as)h Fs(${N})p Ft(,)g(or)f(as)h Fs($N)e Ft(when)h Fs(N)g
Ft(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37
-b(parameters)d(ma)m(y)150 2763 y(not)j(b)s(e)f(assigned)h(to)g(with)f
+b(parameters)d(ma)m(y)150 3110 y(not)j(b)s(e)f(assigned)h(to)g(with)f
(assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Fs(set)g
Ft(and)g Fs(shift)f Ft(builtins)h(are)h(used)f(to)150
-2872 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
+3219 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
(Builtin)g(Commands],)h(page)f(35\).)68 b(The)39 b(p)s(ositional)150
-2982 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
+3329 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
(shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150
-3092 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(14\).)275
-3232 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
+3439 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(14\).)275
+3574 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
(than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150
-3341 y(b)s(e)h(enclosed)h(in)f(braces.)150 3546 y Fj(3.4.2)63
-b(Sp)s(ecial)41 b(P)m(arameters)150 3693 y Ft(The)d(shell)g(treats)h
+3684 y(b)s(e)h(enclosed)h(in)f(braces.)150 3885 y Fj(3.4.2)63
+b(Sp)s(ecial)41 b(P)m(arameters)150 4032 y Ft(The)d(shell)g(treats)h
(sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38
b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150
-3802 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150
-3970 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f
+4141 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150
+4303 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f
(parameters,)h(starting)g(from)e(one.)41 b(When)30 b(the)g(expansion)
-630 4079 y(o)s(ccurs)e(within)f(double)h(quotes,)h(it)g(expands)e(to)i
+630 4412 y(o)s(ccurs)e(within)f(double)h(quotes,)h(it)g(expands)e(to)i
(a)f(single)h(w)m(ord)f(with)g(the)g(v)-5 b(alue)29 b(of)f(eac)m(h)630
-4189 y(parameter)i(separated)g(b)m(y)f(the)g(\014rst)g(c)m(haracter)i
+4522 y(parameter)i(separated)g(b)m(y)f(the)g(\014rst)g(c)m(haracter)i
(of)e(the)h Fs(IFS)e Ft(sp)s(ecial)i(v)-5 b(ariable.)41
-b(That)30 b(is,)630 4298 y Fs("$*")h Ft(is)i(equiv)-5
+b(That)30 b(is,)630 4631 y Fs("$*")h Ft(is)i(equiv)-5
b(alen)m(t)33 b(to)h Fs("$1)p Fi(c)11 b Fs($2)p Fi(c)g
Fs(...)l(")p Ft(,)33 b(where)f Fq(c)38 b Ft(is)32 b(the)h(\014rst)e(c)m
-(haracter)j(of)f(the)f(v)-5 b(alue)630 4408 y(of)30 b(the)g
+(haracter)j(of)f(the)f(v)-5 b(alue)630 4741 y(of)30 b(the)g
Fs(IFS)g Ft(v)-5 b(ariable.)41 b(If)30 b Fs(IFS)f Ft(is)h(unset,)g(the)
g(parameters)g(are)h(separated)f(b)m(y)g(spaces.)41 b(If)630
-4518 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f(the)h(parameters)g(are)f(joined)h
-(without)f(in)m(terv)m(ening)i(separators.)150 4682 y
+4850 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f(the)h(parameters)g(are)f(joined)h
+(without)f(in)m(terv)m(ening)i(separators.)150 5011 y
Fs(@)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f(parameters,)h
(starting)g(from)e(one.)41 b(When)30 b(the)g(expansion)630
-4792 y(o)s(ccurs)c(within)g(double)f(quotes,)j(eac)m(h)f(parameter)g
+5121 y(o)s(ccurs)c(within)g(double)f(quotes,)j(eac)m(h)f(parameter)g
(expands)e(to)i(a)g(separate)g(w)m(ord.)39 b(That)630
-4902 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5 b(alen)m(t)30
+5230 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5 b(alen)m(t)30
b(to)f Fs("$1")g("$2")h(...)o Ft(.)40 b(If)28 b(the)g(double-quoted)h
-(expansion)f(o)s(ccurs)630 5011 y(within)d(a)h(w)m(ord,)g(the)g
+(expansion)f(o)s(ccurs)630 5340 y(within)d(a)h(w)m(ord,)g(the)g
(expansion)f(of)h(the)g(\014rst)f(parameter)h(is)f(joined)h(with)f(the)
-h(b)s(eginning)630 5121 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e
-(the)h(expansion)g(of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630
-5230 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59
-b(When)36 b(there)h(are)g(no)f(p)s(ositional)h(parameters,)630
-5340 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e
-(\(i.e.,)i(they)e(are)h(remo)m(v)m(ed\).)p eop end
+h(b)s(eginning)p eop end
%%Page: 17 23
TeXDict begin 17 22 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)150 299
-y Fs(#)432 b Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s
-(ositional)h(parameters)g(in)f(decimal.)150 451 y Fs(?)432
-b Ft(Expands)29 b(to)i(the)g(exit)g(status)g(of)f(the)h(most)f(recen)m
-(tly)i(executed)f(foreground)f(pip)s(eline.)150 604 y
-Fs(-)432 b Ft(\(A)31 b(h)m(yphen.\))42 b(Expands)30 b(to)h(the)g
-(curren)m(t)g(option)h(\015ags)f(as)g(sp)s(eci\014ed)f(up)s(on)g(in)m
-(v)m(o)s(cation,)630 713 y(b)m(y)35 b(the)h Fs(set)e
-Ft(builtin)h(command,)h(or)g(those)g(set)f(b)m(y)h(the)f(shell)h
-(itself)g(\(suc)m(h)f(as)h(the)f(`)p Fs(-i)p Ft(')630
-823 y(option\).)150 975 y Fs($)432 b Ft(Expands)39 b(to)j(the)f(pro)s
-(cess)f Fl(id)h Ft(of)g(the)g(shell.)73 b(In)40 b(a)h
-Fs(\(\))f Ft(subshell,)j(it)e(expands)f(to)i(the)630
-1085 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g
-(not)g(the)f(subshell.)150 1237 y Fs(!)432 b Ft(Expands)39
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)630 299
+y(part)25 b(of)g(the)g(original)g(w)m(ord,)h(and)e(the)h(expansion)g
+(of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630
+408 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59
+b(When)36 b(there)h(are)g(no)f(p)s(ositional)h(parameters,)630
+518 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e(\(i.e.,)
+i(they)e(are)h(remo)m(v)m(ed\).)150 677 y Fs(#)432 b
+Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)h
+(parameters)g(in)f(decimal.)150 836 y Fs(?)432 b Ft(Expands)29
+b(to)i(the)g(exit)g(status)g(of)f(the)h(most)f(recen)m(tly)i(executed)f
+(foreground)f(pip)s(eline.)150 995 y Fs(-)432 b Ft(\(A)31
+b(h)m(yphen.\))42 b(Expands)30 b(to)h(the)g(curren)m(t)g(option)h
+(\015ags)f(as)g(sp)s(eci\014ed)f(up)s(on)g(in)m(v)m(o)s(cation,)630
+1105 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g
+(set)f(b)m(y)h(the)f(shell)h(itself)g(\(suc)m(h)f(as)h(the)f(`)p
+Fs(-i)p Ft(')630 1215 y(option\).)150 1374 y Fs($)432
+b Ft(Expands)39 b(to)j(the)f(pro)s(cess)f Fl(id)h Ft(of)g(the)g(shell.)
+73 b(In)40 b(a)h Fs(\(\))f Ft(subshell,)j(it)e(expands)f(to)i(the)630
+1483 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g
+(not)g(the)f(subshell.)150 1643 y Fs(!)432 b Ft(Expands)39
b(to)i(the)g(pro)s(cess)e Fl(id)i Ft(of)f(the)h(most)g(recen)m(tly)g
-(executed)g(bac)m(kground)g(\(asyn-)630 1347 y(c)m(hronous\))30
-b(command.)150 1499 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g
+(executed)g(bac)m(kground)g(\(asyn-)630 1752 y(c)m(hronous\))30
+b(command.)150 1911 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g
(the)g(shell)g(or)f(shell)h(script.)38 b(This)21 b(is)h(set)g(at)h
-(shell)f(initialization.)630 1609 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m
+(shell)f(initialization.)630 2021 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m
(ed)i(with)e(a)g(\014le)g(of)h(commands)e(\(see)j(Section)f(3.8)g
-([Shell)f(Scripts],)630 1718 y(page)39 b(33\),)i Fs($0)d
+([Shell)f(Scripts],)630 2130 y(page)39 b(33\),)i Fs($0)d
Ft(is)g(set)g(to)h(the)f(name)g(of)g(that)h(\014le.)64
b(If)37 b(Bash)i(is)f(started)g(with)g(the)g(`)p Fs(-c)p
-Ft(')630 1828 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h
+Ft(')630 2240 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h
(Bash],)h(page)e(71\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g
-(\014rst)630 1937 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e)
+(\014rst)630 2350 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e)
f(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31
-b(it)g(is)f(set)630 2047 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
+b(it)g(is)f(set)630 2459 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
(ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150
-2199 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29
+2618 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29
b(shell)e(startup,)h(set)f(to)h(the)g(absolute)g(pathname)f(used)f(to)i
-(in)m(v)m(ok)m(e)630 2309 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s
+(in)m(v)m(ok)m(e)630 2728 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s
(eing)h(executed)h(as)f(passed)f(in)g(the)h(en)m(vironmen)m(t)h(or)e
-(argumen)m(t)630 2419 y(list.)72 b(Subsequen)m(tly)-8
+(argumen)m(t)630 2838 y(list.)72 b(Subsequen)m(tly)-8
b(,)43 b(expands)c(to)j(the)e(last)i(argumen)m(t)f(to)g(the)g(previous)
-f(command,)630 2528 y(after)35 b(expansion.)54 b(Also)36
+f(command,)630 2947 y(after)35 b(expansion.)54 b(Also)36
b(set)f(to)h(the)f(full)f(pathname)h(used)f(to)h(in)m(v)m(ok)m(e)i(eac)
-m(h)f(command)630 2638 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m
+m(h)f(command)630 3057 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m
(vironmen)m(t)h(exp)s(orted)f(to)g(that)h(command.)72
-b(When)630 2747 y(c)m(hec)m(king)32 b(mail,)f(this)g(parameter)g(holds)
-e(the)i(name)f(of)h(the)g(mail)g(\014le.)150 2973 y Fr(3.5)68
-b(Shell)45 b(Expansions)150 3132 y Ft(Expansion)27 b(is)i(p)s(erformed)
+b(When)630 3166 y(c)m(hec)m(king)32 b(mail,)f(this)g(parameter)g(holds)
+e(the)i(name)f(of)h(the)g(mail)g(\014le.)150 3399 y Fr(3.5)68
+b(Shell)45 b(Expansions)150 3558 y Ft(Expansion)27 b(is)i(p)s(erformed)
d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)s(een)f(split)h(in)m
-(to)i Fs(token)p Ft(s.)38 b(There)28 b(are)150 3242 y(sev)m(en)j(kinds)
-e(of)i(expansion)f(p)s(erformed:)225 3373 y Fp(\017)60
-b Ft(brace)31 b(expansion)225 3504 y Fp(\017)60 b Ft(tilde)31
-b(expansion)225 3635 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5
-b(ariable)31 b(expansion)225 3766 y Fp(\017)60 b Ft(command)30
-b(substitution)225 3897 y Fp(\017)60 b Ft(arithmetic)32
-b(expansion)225 4028 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225
-4159 y Fp(\017)60 b Ft(\014lename)31 b(expansion)275
-4311 y(The)i(order)g(of)h(expansions)g(is:)47 b(brace)34
+(to)i Fs(token)p Ft(s.)38 b(There)28 b(are)150 3668 y(sev)m(en)j(kinds)
+e(of)i(expansion)f(p)s(erformed:)225 3802 y Fp(\017)60
+b Ft(brace)31 b(expansion)225 3936 y Fp(\017)60 b Ft(tilde)31
+b(expansion)225 4071 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5
+b(ariable)31 b(expansion)225 4205 y Fp(\017)60 b Ft(command)30
+b(substitution)225 4339 y Fp(\017)60 b Ft(arithmetic)32
+b(expansion)225 4474 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225
+4608 y Fp(\017)60 b Ft(\014lename)31 b(expansion)275
+4767 y(The)i(order)g(of)h(expansions)g(is:)47 b(brace)34
b(expansion,)h(tilde)g(expansion,)f(parameter,)i(v)-5
-b(ariable,)36 b(and)150 4420 y(arithmetic)46 b(expansion)f(and)g
+b(ariable,)36 b(and)150 4877 y(arithmetic)46 b(expansion)f(and)g
(command)f(substitution)h(\(done)g(in)g(a)g(left-to-righ)m(t)j
-(fashion\),)h(w)m(ord)150 4530 y(splitting,)31 b(and)f(\014lename)h
-(expansion.)275 4661 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)
+(fashion\),)h(w)m(ord)150 4986 y(splitting,)31 b(and)f(\014lename)h
+(expansion.)275 5121 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)
47 b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5
-b(ailable:)69 b Fq(pro)s(cess)150 4771 y(substitution)p
+b(ailable:)69 b Fq(pro)s(cess)150 5230 y(substitution)p
Ft(.)61 b(This)36 b(is)h(p)s(erformed)f(at)i(the)f(same)h(time)f(as)h
(parameter,)h(v)-5 b(ariable,)40 b(and)d(arithmetic)150
-4880 y(expansion)30 b(and)g(command)g(substitution.)275
-5011 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d
-(\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n)m(um)m(b)s(er)150
-5121 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f
-(expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m(ord.)58
-b(The)150 5230 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
-(expansions)g(of)h Fs("$@")e Ft(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f
-(P)m(arameters],)150 5340 y(page)e(16\))h(and)d Fs("${)p
-Fi(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g
-(page)g(80\).)p eop end
+5340 y(expansion)30 b(and)g(command)g(substitution.)p
+eop end
%%Page: 18 24
TeXDict begin 18 23 bop 150 -116 a Ft(18)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(After)41 b(all)i(expansions,)h
+b(Reference)g(Man)m(ual)275 299 y(Only)k(brace)i(expansion,)h(w)m(ord)e
+(splitting,)j(and)d(\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n)
+m(um)m(b)s(er)150 408 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e
+(expansions)f(expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m
+(ord.)58 b(The)150 518 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
+(expansions)g(of)h Fs("$@")e Ft(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f
+(P)m(arameters],)150 628 y(page)e(16\))h(and)d Fs("${)p
+Fi(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g
+(page)g(80\).)275 765 y(After)41 b(all)i(expansions,)h
Fs(quote)29 b(removal)40 b Ft(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m
-(v)-5 b(al],)47 b(page)42 b(25\))h(is)150 408 y(p)s(erformed.)150
-611 y Fj(3.5.1)63 b(Brace)40 b(Expansion)150 758 y Ft(Brace)28
-b(expansion)f(is)h(a)f(mec)m(hanism)h(b)m(y)f(whic)m(h)f(arbitrary)h
-(strings)g(ma)m(y)h(b)s(e)f(generated.)40 b(This)27 b(mec)m(ha-)150
-868 y(nism)e(is)h(similar)g(to)g Fq(\014lename)g(expansion)f
-Ft(\(see)i(Section)f(3.5.8)i([Filename)f(Expansion],)f(page)h(24\),)h
-(but)150 978 y(the)36 b(\014le)f(names)h(generated)g(need)f(not)h
-(exist.)57 b(P)m(atterns)36 b(to)g(b)s(e)f(brace)h(expanded)e(tak)m(e)j
-(the)f(form)f(of)150 1087 y(an)29 b(optional)i Fq(pream)m(ble)5
-b Ft(,)30 b(follo)m(w)m(ed)i(b)m(y)d(either)h(a)g(series)g(of)g
-(comma-separated)h(strings)e(or)h(a)g(seqeunce)150 1197
-y(expression)36 b(b)s(et)m(w)m(een)g(a)g(pair)g(of)g(braces,)i(follo)m
-(w)m(ed)f(b)m(y)f(an)g(optional)h Fq(p)s(ostscript)r
-Ft(.)56 b(The)36 b(pream)m(ble)g(is)150 1306 y(pre\014xed)28
-b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g
-(the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150
-1416 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
-m(t.)275 1554 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
+(v)-5 b(al],)47 b(page)42 b(25\))h(is)150 875 y(p)s(erformed.)150
+1077 y Fj(3.5.1)63 b(Brace)40 b(Expansion)150 1224 y
+Ft(Brace)28 b(expansion)f(is)h(a)f(mec)m(hanism)h(b)m(y)f(whic)m(h)f
+(arbitrary)h(strings)g(ma)m(y)h(b)s(e)f(generated.)40
+b(This)27 b(mec)m(ha-)150 1334 y(nism)e(is)h(similar)g(to)g
+Fq(\014lename)g(expansion)f Ft(\(see)i(Section)f(3.5.8)i([Filename)f
+(Expansion],)f(page)h(24\),)h(but)150 1443 y(the)36 b(\014le)f(names)h
+(generated)g(need)f(not)h(exist.)57 b(P)m(atterns)36
+b(to)g(b)s(e)f(brace)h(expanded)e(tak)m(e)j(the)f(form)f(of)150
+1553 y(an)29 b(optional)i Fq(pream)m(ble)5 b Ft(,)30
+b(follo)m(w)m(ed)i(b)m(y)d(either)h(a)g(series)g(of)g(comma-separated)h
+(strings)e(or)h(a)g(seqeunce)150 1663 y(expression)36
+b(b)s(et)m(w)m(een)g(a)g(pair)g(of)g(braces,)i(follo)m(w)m(ed)f(b)m(y)f
+(an)g(optional)h Fq(p)s(ostscript)r Ft(.)56 b(The)36
+b(pream)m(ble)g(is)150 1772 y(pre\014xed)28 b(to)h(eac)m(h)h(string)f
+(con)m(tained)h(within)e(the)h(braces,)g(and)g(the)g(p)s(ostscript)f
+(is)h(then)f(app)s(ended)f(to)150 1882 y(eac)m(h)32 b(resulting)e
+(string,)h(expanding)e(left)j(to)f(righ)m(t.)275 2019
+y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g
-(sorted;)150 1664 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
-(ed.)41 b(F)-8 b(or)31 b(example,)390 1802 y Fs(bash$)46
-b(echo)h(a{d,c,b}e)390 1912 y(ade)g(ace)g(abe)275 2050
+(sorted;)150 2129 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
+(ed.)41 b(F)-8 b(or)31 b(example,)390 2267 y Fs(bash$)46
+b(echo)h(a{d,c,b}e)390 2376 y(ade)g(ace)g(abe)275 2514
y Ft(A)20 b(sequence)h(expression)g(tak)m(es)h(the)f(form)f
Fs({)p Fi(x)11 b Fs(..)p Fi(y)g Fs([..)p Fi(incr)g Fs(]})p
Ft(,)18 b(where)i Fq(x)27 b Ft(and)20 b Fq(y)28 b Ft(are)22
-b(either)f(in)m(tegers)150 2159 y(or)42 b(single)h(c)m(haracters,)j
+b(either)f(in)m(tegers)150 2623 y(or)42 b(single)h(c)m(haracters,)j
(and)c Fq(incr)7 b Ft(,)44 b(an)e(optional)h(incremen)m(t,)j(is)c(an)g
-(in)m(teger.)77 b(When)41 b(in)m(tegers)j(are)150 2269
+(in)m(teger.)77 b(When)41 b(in)m(tegers)j(are)150 2733
y(supplied,)e(the)f(expression)g(expands)f(to)h(eac)m(h)h(n)m(um)m(b)s
(er)e(b)s(et)m(w)m(een)h Fq(x)47 b Ft(and)40 b Fq(y)8
-b Ft(,)44 b(inclusiv)m(e.)73 b(Supplied)150 2379 y(in)m(tegers)33
+b Ft(,)44 b(inclusiv)m(e.)73 b(Supplied)150 2842 y(in)m(tegers)33
b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Fs(0)p Ft(')h(to)g(force)g
(eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42
-b(When)31 b(either)150 2488 y Fq(x)43 b Ft(or)36 b Fq(y)44
+b(When)31 b(either)150 2952 y Fq(x)43 b Ft(or)36 b Fq(y)44
b Ft(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g
(force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150
-2598 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
+3062 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
(necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the)
-150 2707 y(expression)h(expands)f(to)i(eac)m(h)g(c)m(haracter)g
+150 3171 y(expression)h(expands)f(to)i(eac)m(h)g(c)m(haracter)g
(lexicographically)i(b)s(et)m(w)m(een)e Fq(x)43 b Ft(and)37
-b Fq(y)8 b Ft(,)38 b(inclusiv)m(e.)62 b(Note)150 2817
+b Fq(y)8 b Ft(,)38 b(inclusiv)m(e.)62 b(Note)150 3281
y(that)30 b(b)s(oth)e Fq(x)35 b Ft(and)28 b Fq(y)37 b
Ft(m)m(ust)29 b(b)s(e)f(of)h(the)g(same)g(t)m(yp)s(e.)41
b(When)28 b(the)i(incremen)m(t)f(is)g(supplied,)f(it)i(is)f(used)f(as)
-150 2927 y(the)j(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h(term.)41
+150 3390 y(the)j(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h(term.)41
b(The)30 b(default)g(incremen)m(t)h(is)g(1)f(or)h(-1)g(as)f
-(appropriate.)275 3065 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s
+(appropriate.)275 3528 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s
(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i
-(sp)s(ecial)150 3174 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)
+(sp)s(ecial)150 3638 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)
f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g(textual.)46
-b(Bash)32 b(do)s(es)f(not)h(apply)150 3284 y(an)m(y)27
+b(Bash)32 b(do)s(es)f(not)h(apply)150 3747 y(an)m(y)27
b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g
(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)150
-3394 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f(parameter)h
+3857 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f(parameter)h
(expansion,)g(the)g(string)f(`)p Fs(${)p Ft(')g(is)g(not)g(considered)g
-(eligible)i(for)150 3503 y(brace)31 b(expansion.)275
-3641 y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)
+(eligible)i(for)150 3966 y(brace)31 b(expansion.)275
+4104 y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)
h(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
-3751 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
+4214 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h
-(formed)150 3861 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
-3999 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)
+(formed)150 4323 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
+4461 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)
g(with)g(a)h(bac)m(kslash)f(to)h(prev)m(en)m(t)g(its)g(b)s(eing)f
-(considered)g(part)g(of)g(a)h(brace)150 4108 y(expression.)51
+(considered)g(part)g(of)g(a)h(brace)150 4570 y(expression.)51
b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g
(expansion,)h(the)f(string)g(`)p Fs(${)p Ft(')g(is)g(not)g(considered)
-150 4218 y(eligible)e(for)e(brace)h(expansion.)275 4356
+150 4680 y(eligible)e(for)e(brace)h(expansion.)275 4818
y(This)f(construct)h(is)g(t)m(ypically)i(used)d(as)h(shorthand)f(when)g
(the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)150
-4466 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m(v)m
-(e)i(example:)390 4604 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o
-(ew,)o(dist)o(,bug)o(s})275 4742 y Ft(or)390 4880 y Fs(chown)g(root)h
-(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150
-5083 y Fj(3.5.2)63 b(Tilde)41 b(Expansion)150 5230 y
-Ft(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m
-(haracter)h(\(`)p Fs(~)p Ft('\),)g(all)g(of)f(the)g(c)m(haracters)h(up)
-d(to)j(the)f(\014rst)150 5340 y(unquoted)23 b(slash)h(\(or)h(all)g(c)m
-(haracters,)i(if)d(there)g(is)h(no)f(unquoted)f(slash\))h(are)h
-(considered)f(a)g Fq(tilde-pre\014x)6 b Ft(.)p eop end
+4927 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m(v)m
+(e)i(example:)390 5065 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o
+(ew,)o(dist)o(,bug)o(s})275 5202 y Ft(or)390 5340 y Fs(chown)g(root)h
+(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})p
+eop end
%%Page: 19 25
TeXDict begin 19 24 bop 150 -116 a Ft(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
+y Fj(3.5.2)63 b(Tilde)41 b(Expansion)150 446 y Ft(If)29
+b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m
+(haracter)h(\(`)p Fs(~)p Ft('\),)g(all)g(of)f(the)g(c)m(haracters)h(up)
+d(to)j(the)f(\014rst)150 555 y(unquoted)23 b(slash)h(\(or)h(all)g(c)m
+(haracters,)i(if)d(there)g(is)h(no)f(unquoted)f(slash\))h(are)h
+(considered)f(a)g Fq(tilde-pre\014x)6 b Ft(.)150 665
y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f
(are)h(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150
-408 y(follo)m(wing)28 b(the)f(tilde)g(are)g(treated)h(as)f(a)g(p)s
+775 y(follo)m(wing)28 b(the)f(tilde)g(are)g(treated)h(as)f(a)g(p)s
(ossible)f Fq(login)i(name)5 b Ft(.)40 b(If)26 b(this)g(login)i(name)f
-(is)f(the)h(n)m(ull)g(string,)150 518 y(the)35 b(tilde)g(is)g(replaced)
+(is)f(the)h(n)m(ull)g(string,)150 884 y(the)35 b(tilde)g(is)g(replaced)
g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g Fs(HOME)e
Ft(shell)i(v)-5 b(ariable.)54 b(If)34 b Fs(HOME)g Ft(is)h(unset,)g(the)
-g(home)150 628 y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell)
+g(home)150 994 y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell)
h(is)f(substituted)g(instead.)47 b(Otherwise,)33 b(the)g
-(tilde-pre\014x)150 737 y(is)d(replaced)h(with)f(the)h(home)f
+(tilde-pre\014x)150 1103 y(is)d(replaced)h(with)f(the)h(home)f
(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)e(login)j
-(name.)275 876 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
+(name.)275 1235 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
Fs(~+)p Ft(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5
b(ariable)34 b Fs(PWD)d Ft(replaces)j(the)f(tilde-pre\014x.)47
-b(If)150 985 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p
+b(If)150 1344 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p
Ft(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5
b(ariable)31 b Fs(OLDPWD)p Ft(,)e(if)h(it)h(is)g(set,)g(is)f
-(substituted.)275 1124 y(If)e(the)i(c)m(haracters)g(follo)m(wing)h(the)
+(substituted.)275 1476 y(If)e(the)i(c)m(haracters)g(follo)m(wing)h(the)
e(tilde)h(in)f(the)g(tilde-pre\014x)h(consist)f(of)h(a)f(n)m(um)m(b)s
-(er)f Fq(N)10 b Ft(,)30 b(optionally)150 1234 y(pre\014xed)22
+(er)f Fq(N)10 b Ft(,)30 b(optionally)150 1585 y(pre\014xed)22
b(b)m(y)h(a)h(`)p Fs(+)p Ft(')f(or)h(a)f(`)p Fs(-)p Ft(',)j(the)d
(tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
-(elemen)m(t)j(from)e(the)150 1343 y(directory)36 b(stac)m(k,)i(as)e(it)
+(elemen)m(t)j(from)e(the)150 1695 y(directory)36 b(stac)m(k,)i(as)e(it)
g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
Fs(dirs)g Ft(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
-150 1453 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
+150 1804 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
(an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
-(k],)150 1562 y(page)c(81\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
+(k],)150 1914 y(page)c(81\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f
-(leading)h(`)p Fs(+)p Ft(')g(or)150 1672 y(`)p Fs(-)p
-Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 1810 y(If)e(the)i(login)
+(leading)h(`)p Fs(+)p Ft(')g(or)150 2024 y(`)p Fs(-)p
+Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 2155 y(If)e(the)i(login)
g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f
(fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275
-1949 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
+2286 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
(k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m
-(wing)150 2059 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p
+(wing)150 2396 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p
Fs(=)p Ft('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g
(also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37
-b(one)150 2168 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in)
+b(one)150 2505 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in)
g(assignmen)m(ts)h(to)g Fs(PATH)p Ft(,)f Fs(MAILPATH)p
Ft(,)e(and)i Fs(CDPATH)p Ft(,)f(and)h(the)g(shell)150
-2278 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275
-2416 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h
-(treats)g(unquoted)e(tilde-pre\014xes:)150 2582 y Fs(~)432
-b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)150 2745
-y(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')150 2909 y Fs(~fred/foo)630
-3018 y Ft(The)30 b(sub)s(directory)f Fs(foo)h Ft(of)g(the)h(home)f
-(directory)h(of)g(the)f(user)g Fs(fred)150 3182 y(~+/foo)192
-b Ft(`)p Fs($PWD/foo)p Ft(')150 3345 y Fs(~-/foo)g Ft(`)p
-Fs(${OLDPWD-'~-'}/foo)p Ft(')150 3509 y Fs(~)p Fi(N)384
+2615 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275
+2746 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h
+(treats)g(unquoted)e(tilde-pre\014xes:)150 2899 y Fs(~)432
+b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)150 3052
+y(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')150 3205 y Fs(~fred/foo)630
+3315 y Ft(The)30 b(sub)s(directory)f Fs(foo)h Ft(of)g(the)h(home)f
+(directory)h(of)g(the)f(user)g Fs(fred)150 3468 y(~+/foo)192
+b Ft(`)p Fs($PWD/foo)p Ft(')150 3621 y Fs(~-/foo)g Ft(`)p
+Fs(${OLDPWD-'~-'}/foo)p Ft(')150 3774 y Fs(~)p Fi(N)384
b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m
-(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 3672 y Fs(~+)p
+(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 3927 y Fs(~+)p
Fi(N)336 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m
-(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 3836
+(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 4080
y Fs(~-)p Fi(N)336 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(-)p Fi(N)11
-b Ft(')150 4039 y Fj(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150
-4186 y Ft(The)g(`)p Fs($)p Ft(')h(c)m(haracter)i(in)m(tro)s(duces)d
+b Ft(')150 4273 y Fj(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150
+4420 y Ft(The)g(`)p Fs($)p Ft(')h(c)m(haracter)i(in)m(tro)s(duces)d
(parameter)h(expansion,)j(command)d(substitution,)i(or)e(arithmetic)150
-4296 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)
+4529 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)
g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m
-(h)150 4405 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g
+(h)150 4639 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g
(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i
-(immediately)150 4515 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g
-(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 4653
+(immediately)150 4749 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g
+(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 4880
y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f(brace)g
(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m(y)f(a)
-150 4763 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c
+150 4989 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c
(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)150
-4873 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
-5011 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p
+5099 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
+5230 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p
Fs({)p Fq(parameter)7 b Fs(})p Ft(.)73 b(The)40 b(v)-5
-b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 5121 y(substituted.)43
+b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 5340 y(substituted.)43
b(The)31 b(braces)g(are)h(required)e(when)h Fq(parameter)38
-b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)150
-5230 y(than)h(one)g(digit,)i(or)e(when)g Fq(parameter)39
-b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter)h(that)e(is)h
-(not)f(to)h(b)s(e)f(in)m(terpreted)150 5340 y(as)f(part)f(of)g(its)h
-(name.)p eop end
+b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)p
+eop end
%%Page: 20 26
TeXDict begin 20 25 bop 150 -116 a Ft(20)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(If)26 b(the)i(\014rst)f(c)m(haracter)
-i(of)e Fq(parameter)35 b Ft(is)27 b(an)g(exclamation)j(p)s(oin)m(t,)e
-(a)g(lev)m(el)h(of)e(v)-5 b(ariable)29 b(indirection)150
-408 y(is)38 b(in)m(tro)s(duced.)62 b(Bash)38 b(uses)f(the)h(v)-5
-b(alue)38 b(of)g(the)g(v)-5 b(ariable)39 b(formed)e(from)g(the)h(rest)g
-(of)g Fq(parameter)45 b Ft(as)150 518 y(the)32 b(name)h(of)f(the)h(v)-5
-b(ariable;)34 b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f(and)h
-(that)h(v)-5 b(alue)32 b(is)h(used)e(in)h(the)h(rest)150
-628 y(of)h(the)f(substitution,)i(rather)e(than)g(the)h(v)-5
-b(alue)34 b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33
-b(is)g(kno)m(wn)g(as)h Fs(indirect)150 737 y(expansion)p
-Ft(.)81 b(The)44 b(exceptions)h(to)h(this)e(are)h(the)g(expansions)f
-(of)h($)p Fs({)p Ft(!)p Fq(pre\014x*)8 b Fs(})43 b Ft(and)h($)p
-Fs({)p Ft(!)p Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})150
-847 y Ft(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28 b(exclamation)j(p)s
-(oin)m(t)f(m)m(ust)f(immediately)h(follo)m(w)g(the)g(left)f(brace)h(in)
-f(order)f(to)150 956 y(in)m(tro)s(duce)i(indirection.)275
-1105 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i
+b(Reference)g(Man)m(ual)150 299 y(than)h(one)g(digit,)i(or)e(when)g
+Fq(parameter)39 b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter)
+h(that)e(is)h(not)f(to)h(b)s(e)f(in)m(terpreted)150 408
+y(as)f(part)f(of)g(its)h(name.)275 553 y(If)c(the)g(\014rst)g(c)m
+(haracter)i(of)f Fq(parameter)35 b Ft(is)27 b(an)h(exclamation)i(p)s
+(oin)m(t)d(\(!\),)i(a)f(lev)m(el)i(of)d(v)-5 b(ariable)29
+b(indirec-)150 663 y(tion)e(is)f(in)m(tro)s(duced.)39
+b(Bash)27 b(uses)e(the)i(v)-5 b(alue)27 b(of)f(the)h(v)-5
+b(ariable)27 b(formed)f(from)g(the)g(rest)h(of)f Fq(parameter)34
+b Ft(as)150 772 y(the)e(name)h(of)f(the)h(v)-5 b(ariable;)34
+b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f(and)h(that)h(v)-5
+b(alue)32 b(is)h(used)e(in)h(the)h(rest)150 882 y(of)h(the)f
+(substitution,)i(rather)e(than)g(the)h(v)-5 b(alue)34
+b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33 b(is)g(kno)m(wn)g(as)h
+Fs(indirect)150 991 y(expansion)p Ft(.)45 b(The)32 b(exceptions)i(to)g
+(this)e(are)h(the)g(expansions)g(of)g($)p Fs({)p Ft(!)p
+Fq(pre\014x*)8 b Fs(})31 b Ft(and)i($)p Fs({)p Ft(!)p
+Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})33 b Ft(de-)150
+1101 y(scrib)s(ed)h(b)s(elo)m(w.)56 b(The)35 b(exclamation)j(p)s(oin)m
+(t)d(m)m(ust)g(immediately)i(follo)m(w)g(the)e(left)i(brace)e(in)g
+(order)g(to)150 1210 y(in)m(tro)s(duce)30 b(indirection.)275
+1355 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i
Fq(w)m(ord)h Ft(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
-(parameter)e(expansion,)150 1215 y(command)30 b(substitution,)g(and)g
-(arithmetic)i(expansion.)275 1364 y(When)h(not)h(p)s(erforming)e
+(parameter)e(expansion,)150 1465 y(command)30 b(substitution,)g(and)g
+(arithmetic)i(expansion.)275 1609 y(When)h(not)h(p)s(erforming)e
(substring)h(expansion,)h(using)f(the)h(form)f(describ)s(ed)g(b)s(elo)m
-(w,)h(Bash)g(tests)150 1473 y(for)44 b(a)i(parameter)f(that)g(is)g
+(w,)h(Bash)g(tests)150 1719 y(for)44 b(a)i(parameter)f(that)g(is)g
(unset)f(or)h(n)m(ull.)84 b(Omitting)45 b(the)g(colon)h(results)e(in)g
-(a)i(test)f(only)g(for)g(a)150 1583 y(parameter)36 b(that)f(is)g
+(a)i(test)f(only)g(for)g(a)150 1828 y(parameter)36 b(that)f(is)g
(unset.)55 b(Put)34 b(another)i(w)m(a)m(y)-8 b(,)38 b(if)d(the)g(colon)
h(is)f(included,)h(the)f(op)s(erator)g(tests)h(for)150
-1692 y(b)s(oth)22 b Fq(parameter)7 b Ft('s)22 b(existence)i(and)e(that)
+1938 y(b)s(oth)22 b Fq(parameter)7 b Ft('s)22 b(existence)i(and)e(that)
h(its)g(v)-5 b(alue)23 b(is)g(not)f(n)m(ull;)k(if)c(the)h(colon)g(is)g
-(omitted,)i(the)e(op)s(erator)150 1802 y(tests)31 b(only)g(for)f
-(existence.)150 1983 y Fs(${)p Fi(parameter)11 b Fs(:)p
-Fp(\000)p Fi(word)g Fs(})630 2092 y Ft(If)30 b Fq(parameter)37
+(omitted,)i(the)e(op)s(erator)150 2047 y(tests)31 b(only)g(for)f
+(existence.)150 2222 y Fs(${)p Fi(parameter)11 b Fs(:)p
+Fp(\000)p Fi(word)g Fs(})630 2331 y Ft(If)30 b Fq(parameter)37
b Ft(is)30 b(unset)g(or)h(n)m(ull,)f(the)h(expansion)f(of)g
Fq(w)m(ord)k Ft(is)c(substituted.)40 b(Otherwise,)630
-2202 y(the)31 b(v)-5 b(alue)30 b(of)h Fq(parameter)37
-b Ft(is)31 b(substituted.)150 2376 y Fs(${)p Fi(parameter)11
-b Fs(:=)p Fi(word)g Fs(})630 2485 y Ft(If)32 b Fq(parameter)40
+2441 y(the)31 b(v)-5 b(alue)30 b(of)h Fq(parameter)37
+b Ft(is)31 b(substituted.)150 2610 y Fs(${)p Fi(parameter)11
+b Fs(:=)p Fi(word)g Fs(})630 2720 y Ft(If)32 b Fq(parameter)40
b Ft(is)32 b(unset)g(or)h(n)m(ull,)g(the)f(expansion)h(of)f
Fq(w)m(ord)k Ft(is)d(assigned)f(to)i Fq(parameter)7 b
-Ft(.)630 2595 y(The)30 b(v)-5 b(alue)32 b(of)f Fq(parameter)38
+Ft(.)630 2829 y(The)30 b(v)-5 b(alue)32 b(of)f Fq(parameter)38
b Ft(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
-b(parameters)e(and)f(sp)s(ecial)630 2705 y(parameters)h(ma)m(y)g(not)f
+b(parameters)e(and)f(sp)s(ecial)630 2939 y(parameters)h(ma)m(y)g(not)f
(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150
-2878 y Fs(${)p Fi(parameter)11 b Fs(:?)p Fi(word)g Fs(})630
-2988 y Ft(If)26 b Fq(parameter)33 b Ft(is)26 b(n)m(ull)g(or)g(unset,)h
+3108 y Fs(${)p Fi(parameter)11 b Fs(:?)p Fi(word)g Fs(})630
+3218 y Ft(If)26 b Fq(parameter)33 b Ft(is)26 b(n)m(ull)g(or)g(unset,)h
(the)f(expansion)g(of)g Fq(w)m(ord)k Ft(\(or)c(a)h(message)g(to)g(that)
-f(e\013ect)630 3097 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h
+f(e\013ect)630 3328 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h
(is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f
-(it)h(is)f(not)630 3207 y(in)m(teractiv)m(e,)33 b(exits.)42
+(it)h(is)f(not)630 3437 y(in)m(teractiv)m(e,)33 b(exits.)42
b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fq(parameter)38
-b Ft(is)30 b(substituted.)150 3381 y Fs(${)p Fi(parameter)11
-b Fs(:+)p Fi(word)g Fs(})630 3490 y Ft(If)35 b Fq(parameter)42
+b Ft(is)30 b(substituted.)150 3606 y Fs(${)p Fi(parameter)11
+b Fs(:+)p Fi(word)g Fs(})630 3716 y Ft(If)35 b Fq(parameter)42
b Ft(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
-(otherwise)e(the)h(expansion)630 3600 y(of)31 b Fq(w)m(ord)i
-Ft(is)e(substituted.)150 3774 y Fs(${)p Fi(parameter)11
-b Fs(:)p Fi(offset)g Fs(})150 3883 y(${)p Fi(parameter)g
+(otherwise)e(the)h(expansion)630 3826 y(of)31 b Fq(w)m(ord)i
+Ft(is)e(substituted.)150 3995 y Fs(${)p Fi(parameter)11
+b Fs(:)p Fi(offset)g Fs(})150 4105 y(${)p Fi(parameter)g
Fs(:)p Fi(offset)g Fs(:)p Fi(le)o(ngt)o(h)g Fs(})630
-3993 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g Ft(c)m(haracters)h
+4214 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g Ft(c)m(haracters)h
(of)e Fq(parameter)53 b Ft(starting)46 b(at)g(the)f(c)m(haracter)630
-4102 y(sp)s(eci\014ed)30 b(b)m(y)g Fq(o\013set)r Ft(.)43
+4324 y(sp)s(eci\014ed)30 b(b)m(y)g Fq(o\013set)r Ft(.)43
b(If)30 b Fq(length)h Ft(is)g(omitted,)g(expands)f(to)h(the)g
-(substring)f(of)g Fq(parameter)630 4212 y Ft(starting)38
+(substring)f(of)g Fq(parameter)630 4433 y Ft(starting)38
b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)d(b)m(y)h
Fq(o\013set)r Ft(.)62 b Fq(length)38 b Ft(and)e Fq(o\013set)k
-Ft(are)e(arithmetic)630 4322 y(expressions)30 b(\(see)i(Section)g(6.5)g
+Ft(are)e(arithmetic)630 4543 y(expressions)30 b(\(see)i(Section)g(6.5)g
([Shell)f(Arithmetic],)h(page)g(78\).)43 b(This)30 b(is)h(referred)f
-(to)i(as)630 4431 y(Substring)d(Expansion.)630 4573 y
+(to)i(as)630 4653 y(Substring)d(Expansion.)630 4792 y
Fq(length)j Ft(m)m(ust)f(ev)-5 b(aluate)33 b(to)f(a)g(n)m(um)m(b)s(er)e
(greater)i(than)f(or)g(equal)h(to)g(zero.)45 b(If)30
-b Fq(o\013set)35 b Ft(ev)-5 b(al-)630 4682 y(uates)36
+b Fq(o\013set)35 b Ft(ev)-5 b(al-)630 4902 y(uates)36
b(to)h(a)f(n)m(um)m(b)s(er)e(less)i(than)f(zero,)j(the)e(v)-5
b(alue)36 b(is)g(used)f(as)g(an)h(o\013set)h(from)e(the)h(end)630
-4792 y(of)h(the)g(v)-5 b(alue)38 b(of)f Fq(parameter)7
+5011 y(of)h(the)g(v)-5 b(alue)38 b(of)f Fq(parameter)7
b Ft(.)61 b(If)36 b Fq(parameter)44 b Ft(is)37 b(`)p
Fs(@)p Ft(',)i(the)f(result)f(is)g Fq(length)g Ft(p)s(ositional)630
-4902 y(parameters)i(b)s(eginning)f(at)i Fq(o\013set)r
+5121 y(parameters)i(b)s(eginning)f(at)i Fq(o\013set)r
Ft(.)67 b(If)39 b Fq(parameter)45 b Ft(is)39 b(an)g(indexed)g(arra)m(y)
-g(name)g(sub-)630 5011 y(scripted)34 b(b)m(y)g(`)p Fs(@)p
+g(name)g(sub-)630 5230 y(scripted)34 b(b)m(y)g(`)p Fs(@)p
Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(result)g(is)g(the)g
Fq(length)h Ft(mem)m(b)s(ers)e(of)h(the)g(arra)m(y)h(b)s(eginning)630
-5121 y(with)25 b Fs(${)p Fi(parameter)11 b Fs([)p Fi(offset)g
+5340 y(with)25 b Fs(${)p Fi(parameter)11 b Fs([)p Fi(offset)g
Fs(]})p Ft(.)33 b(A)25 b(negativ)m(e)j Fq(o\013set)g
-Ft(is)e(tak)m(en)g(relativ)m(e)i(to)e(one)g(greater)630
-5230 y(than)g(the)h(maxim)m(um)f(index)g(of)g(the)h(sp)s(eci\014ed)f
-(arra)m(y)-8 b(.)40 b(Substring)25 b(expansion)h(applied)g(to)630
-5340 y(an)k(asso)s(ciativ)m(e)j(arra)m(y)e(pro)s(duces)e(unde\014ned)f
-(results.)p eop end
+Ft(is)e(tak)m(en)g(relativ)m(e)i(to)e(one)g(greater)p
+eop end
%%Page: 21 27
TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)630 299
-y(Note)37 b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m(ust)f(b)s(e)f
-(separated)h(from)f(the)h(colon)h(b)m(y)e(at)i(least)g(one)630
-408 y(space)g(to)g(a)m(v)m(oid)g(b)s(eing)f(confused)f(with)h(the)h(`)p
-Fs(:-)p Ft(')f(expansion.)57 b(Substring)35 b(indexing)h(is)630
-518 y(zero-based)24 b(unless)f(the)h(p)s(ositional)g(parameters)g(are)g
-(used,)g(in)g(whic)m(h)f(case)h(the)g(indexing)630 628
-y(starts)30 b(at)g(1)f(b)m(y)h(default.)40 b(If)29 b
-Fq(o\013set)j Ft(is)e(0,)g(and)f(the)g(p)s(ositional)h(parameters)g
-(are)g(used,)f Fs($@)630 737 y Ft(is)h(pre\014xed)g(to)h(the)f(list.)
-150 913 y Fs(${!)p Fi(prefix)11 b Fs(*})150 1022 y(${!)p
-Fi(prefix)g Fs(@})630 1132 y Ft(Expands)23 b(to)i(the)g(names)f(of)h(v)
+y(than)26 b(the)h(maxim)m(um)f(index)g(of)g(the)h(sp)s(eci\014ed)f
+(arra)m(y)-8 b(.)40 b(Substring)25 b(expansion)h(applied)g(to)630
+408 y(an)k(asso)s(ciativ)m(e)j(arra)m(y)e(pro)s(duces)e(unde\014ned)f
+(results.)630 548 y(Note)37 b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m
+(ust)f(b)s(e)f(separated)h(from)f(the)h(colon)h(b)m(y)e(at)i(least)g
+(one)630 658 y(space)g(to)g(a)m(v)m(oid)g(b)s(eing)f(confused)f(with)h
+(the)h(`)p Fs(:-)p Ft(')f(expansion.)57 b(Substring)35
+b(indexing)h(is)630 767 y(zero-based)24 b(unless)f(the)h(p)s(ositional)
+g(parameters)g(are)g(used,)g(in)g(whic)m(h)f(case)h(the)g(indexing)630
+877 y(starts)30 b(at)g(1)f(b)m(y)h(default.)40 b(If)29
+b Fq(o\013set)j Ft(is)e(0,)g(and)f(the)g(p)s(ositional)h(parameters)g
+(are)g(used,)f Fs($@)630 986 y Ft(is)h(pre\014xed)g(to)h(the)f(list.)
+150 1156 y Fs(${!)p Fi(prefix)11 b Fs(*})150 1265 y(${!)p
+Fi(prefix)g Fs(@})630 1375 y Ft(Expands)23 b(to)i(the)g(names)f(of)h(v)
-5 b(ariables)25 b(whose)f(names)g(b)s(egin)g(with)g
-Fq(pre\014x)6 b Ft(,)25 b(separated)g(b)m(y)630 1241
+Fq(pre\014x)6 b Ft(,)25 b(separated)g(b)m(y)630 1484
y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Fs(IFS)f
Ft(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Fs(@)p
-Ft(')g(is)g(used)f(and)h(the)g(expan-)630 1351 y(sion)35
+Ft(')g(is)g(used)f(and)h(the)g(expan-)630 1594 y(sion)35
b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5
b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630
-1461 y(w)m(ord.)150 1636 y Fs(${!)p Fi(name)11 b Fs([@]})150
-1745 y(${!)p Fi(name)g Fs([*]})630 1855 y Ft(If)26 b
+1704 y(w)m(ord.)150 1873 y Fs(${!)p Fi(name)11 b Fs([@]})150
+1983 y(${!)p Fi(name)g Fs([*]})630 2092 y Ft(If)26 b
Fq(name)32 b Ft(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29
b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h
-(assigned)630 1965 y(in)c Fq(name)5 b Ft(.)39 b(If)23
+(assigned)630 2202 y(in)c Fq(name)5 b Ft(.)39 b(If)23
b Fq(name)30 b Ft(is)24 b(not)g(an)g(arra)m(y)-8 b(,)27
b(expands)c(to)i(0)f(if)h Fq(name)k Ft(is)24 b(set)h(and)e(n)m(ull)h
-(otherwise.)630 2074 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f
+(otherwise.)630 2311 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f
(the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d
-(k)m(ey)630 2184 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
-2359 y Fs(${#)p Fi(parameter)11 b Fs(})630 2469 y Ft(The)40
+(k)m(ey)630 2421 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
+2590 y Fs(${#)p Fi(parameter)11 b Fs(})630 2700 y Ft(The)40
b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5
b(alue)41 b(of)f Fq(parameter)47 b Ft(is)40 b(substituted.)630
-2578 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p
+2809 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p
Fs(@)p Ft(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
-(b)s(er)f(of)h(p)s(ositional)630 2688 y(parameters.)i(If)32
+(b)s(er)f(of)h(p)s(ositional)630 2919 y(parameters.)i(If)32
b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m
(y)g(`)p Fs(*)p Ft(')h(or)g(`)p Fs(@)p Ft(',)g(the)g(v)-5
-b(alue)630 2798 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h
-(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)150 2973 y
-Fs(${)p Fi(parameter)11 b Fs(#)p Fi(word)g Fs(})150 3082
-y(${)p Fi(parameter)g Fs(##)p Fi(word)g Fs(})630 3192
+b(alue)630 3029 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h
+(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)150 3198 y
+Fs(${)p Fi(parameter)11 b Fs(#)p Fi(word)g Fs(})150 3308
+y(${)p Fi(parameter)g Fs(##)p Fi(word)g Fs(})630 3417
y Ft(The)31 b Fq(w)m(ord)k Ft(is)d(expanded)f(to)i(pro)s(duce)e(a)h
(pattern)g(just)f(as)i(in)e(\014lename)h(expansion)g(\(see)630
-3302 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(24\).)56
+3527 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(24\).)56
b(If)35 b(the)h(pattern)f(matc)m(hes)i(the)e(b)s(e-)630
-3411 y(ginning)g(of)g(the)g(expanded)f(v)-5 b(alue)36
+3636 y(ginning)g(of)g(the)g(expanded)f(v)-5 b(alue)36
b(of)f Fq(parameter)7 b Ft(,)36 b(then)f(the)g(result)g(of)g(the)g
-(expansion)630 3521 y(is)28 b(the)g(expanded)e(v)-5 b(alue)28
+(expansion)630 3746 y(is)28 b(the)g(expanded)e(v)-5 b(alue)28
b(of)g Fq(parameter)35 b Ft(with)27 b(the)h(shortest)g(matc)m(hing)h
-(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 3630 y(case\))e(or)f(the)g
+(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 3856 y(case\))e(or)f(the)g
(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p Fs(##)p
Ft(')g(case\))h(deleted.)39 b(If)24 b Fq(parameter)32
-b Ft(is)25 b(`)p Fs(@)p Ft(')630 3740 y(or)j(`)p Fs(*)p
+b Ft(is)25 b(`)p Fs(@)p Ft(')630 3965 y(or)j(`)p Fs(*)p
Ft(',)i(the)e(pattern)h(remo)m(v)-5 b(al)29 b(op)s(eration)g(is)f
(applied)h(to)g(eac)m(h)g(p)s(ositional)g(parameter)g(in)630
-3850 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.)
+4075 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.)
45 b(If)32 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(v)-5
-b(ariable)630 3959 y(subscripted)39 b(with)g(`)p Fs(@)p
+b(ariable)630 4184 y(subscripted)39 b(with)g(`)p Fs(@)p
Ft(')h(or)g(`)p Fs(*)p Ft(',)j(the)d(pattern)h(remo)m(v)-5
b(al)41 b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)630
-4069 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
-(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 4244
+4294 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
+(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 4463
y Fs(${)p Fi(parameter)11 b Fs(\045)p Fi(word)g Fs(})150
-4354 y(${)p Fi(parameter)g Fs(\045\045)p Fi(word)g Fs(})630
-4463 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a)
+4573 y(${)p Fi(parameter)g Fs(\045\045)p Fi(word)g Fs(})630
+4682 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a)
i(pattern)f(just)g(as)h(in)f(\014lename)h(expansion.)55
-b(If)630 4573 y(the)43 b(pattern)f(matc)m(hes)i(a)e(trailing)i(p)s
+b(If)630 4792 y(the)43 b(pattern)f(matc)m(hes)i(a)e(trailing)i(p)s
(ortion)e(of)g(the)h(expanded)e(v)-5 b(alue)43 b(of)g
-Fq(parameter)7 b Ft(,)630 4682 y(then)39 b(the)g(result)g(of)h(the)f
+Fq(parameter)7 b Ft(,)630 4902 y(then)39 b(the)g(result)g(of)h(the)f
(expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fq(parameter)46
-b Ft(with)39 b(the)h(shortest)630 4792 y(matc)m(hing)31
+b Ft(with)39 b(the)h(shortest)630 5011 y(matc)m(hing)31
b(pattern)e(\(the)h(`)p Fs(\045)p Ft(')g(case\))h(or)e(the)h(longest)h
(matc)m(hing)f(pattern)g(\(the)g(`)p Fs(\045\045)p Ft(')g(case\))630
-4902 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33
+5121 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33
b(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(pattern)g(remo)m(v)-5
-b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 5011 y(eac)m(h)38
+b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 5230 y(eac)m(h)38
b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h
-(the)f(resultan)m(t)h(list.)61 b(If)630 5121 y Fq(parameter)38
+(the)f(resultan)m(t)h(list.)61 b(If)630 5340 y Fq(parameter)38
b Ft(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h
(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)g(the)f(pattern)h(remo)m(v)-5
-b(al)630 5230 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
-(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g
-(is)630 5340 y(the)h(resultan)m(t)g(list.)p eop end
+b(al)p eop end
%%Page: 22 28
TeXDict begin 22 27 bop 150 -116 a Ft(22)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(${)p Fi(parameter)11
-b Fs(/)p Fi(pattern)g Fs(/)p Fi(s)o(tri)o(ng)f Fs(})630
-408 y Ft(The)37 b Fq(pattern)g Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h
-(pattern)g(just)g(as)h(in)e(\014lename)i(expansion.)630
-518 y Fq(P)m(arameter)46 b Ft(is)38 b(expanded)f(and)g(the)i(longest)g
-(matc)m(h)g(of)f Fq(pattern)g Ft(against)h(its)f(v)-5
-b(alue)39 b(is)630 628 y(replaced)33 b(with)f Fq(string)8
-b Ft(.)47 b(If)33 b Fq(pattern)f Ft(b)s(egins)g(with)h(`)p
-Fs(/)p Ft(',)g(all)h(matc)m(hes)f(of)g Fq(pattern)g Ft(are)g(re-)630
-737 y(placed)27 b(with)f Fq(string)8 b Ft(.)40 b(Normally)27
-b(only)g(the)g(\014rst)f(matc)m(h)h(is)g(replaced.)40
-b(If)26 b Fq(pattern)g Ft(b)s(egins)630 847 y(with)33
-b(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f(matc)m(h)i(at)f(the)g(b)s(eginning)
-f(of)g(the)h(expanded)f(v)-5 b(alue)34 b(of)g Fq(parameter)7
-b Ft(.)630 956 y(If)34 b Fq(pattern)g Ft(b)s(egins)g(with)g(`)p
-Fs(\045)p Ft(',)h(it)g(m)m(ust)f(matc)m(h)h(at)g(the)f(end)g(of)g(the)h
-(expanded)e(v)-5 b(alue)35 b(of)630 1066 y Fq(parameter)7
-b Ft(.)40 b(If)29 b Fq(string)36 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)g
-(of)f Fq(pattern)g Ft(are)g(deleted)h(and)e(the)h Fs(/)f
-Ft(follo)m(wing)630 1176 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f
-(omitted.)51 b(If)33 b Fq(parameter)41 b Ft(is)33 b(`)p
-Fs(@)p Ft(')h(or)g(`)p Fs(*)p Ft(',)g(the)g(substitution)f(op)s
-(eration)630 1285 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g
-(parameter)f(in)g(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630
-1395 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43
+b(Reference)g(Man)m(ual)630 299 y(op)s(eration)f(is)g(applied)f(to)i
+(eac)m(h)g(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)
+h(expansion)g(is)630 408 y(the)h(resultan)m(t)g(list.)150
+579 y Fs(${)p Fi(parameter)11 b Fs(/)p Fi(pattern)g Fs(/)p
+Fi(s)o(tri)o(ng)f Fs(})630 688 y Ft(The)37 b Fq(pattern)g
+Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e
+(\014lename)i(expansion.)630 798 y Fq(P)m(arameter)46
+b Ft(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f
+Fq(pattern)g Ft(against)h(its)f(v)-5 b(alue)39 b(is)630
+908 y(replaced)33 b(with)f Fq(string)8 b Ft(.)47 b(If)33
+b Fq(pattern)f Ft(b)s(egins)g(with)h(`)p Fs(/)p Ft(',)g(all)h(matc)m
+(hes)f(of)g Fq(pattern)g Ft(are)g(re-)630 1017 y(placed)27
+b(with)f Fq(string)8 b Ft(.)40 b(Normally)27 b(only)g(the)g(\014rst)f
+(matc)m(h)h(is)g(replaced.)40 b(If)26 b Fq(pattern)g
+Ft(b)s(egins)630 1127 y(with)33 b(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f
+(matc)m(h)i(at)f(the)g(b)s(eginning)f(of)g(the)h(expanded)f(v)-5
+b(alue)34 b(of)g Fq(parameter)7 b Ft(.)630 1236 y(If)34
+b Fq(pattern)g Ft(b)s(egins)g(with)g(`)p Fs(\045)p Ft(',)h(it)g(m)m
+(ust)f(matc)m(h)h(at)g(the)f(end)g(of)g(the)h(expanded)e(v)-5
+b(alue)35 b(of)630 1346 y Fq(parameter)7 b Ft(.)40 b(If)29
+b Fq(string)36 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)g(of)f
+Fq(pattern)g Ft(are)g(deleted)h(and)e(the)h Fs(/)f Ft(follo)m(wing)630
+1455 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f(omitted.)51
+b(If)33 b Fq(parameter)41 b Ft(is)33 b(`)p Fs(@)p Ft(')h(or)g(`)p
+Fs(*)p Ft(',)g(the)g(substitution)f(op)s(eration)630
+1565 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in)
+g(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630
+1675 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43
b Ft(is)36 b(an)g(arra)m(y)h(v)-5 b(ariable)37 b(subscripted)e(with)h
-(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 1504
+(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 1784
y(substitution)30 b(op)s(eration)h(is)f(applied)g(to)h(eac)m(h)g(mem)m
(b)s(er)f(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)630
-1614 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150
-1793 y Fs(${)p Fi(parameter)11 b Fs(^)p Fi(pattern)g
-Fs(})150 1903 y(${)p Fi(parameter)g Fs(^^)p Fi(pattern)g
-Fs(})150 2012 y(${)p Fi(parameter)g Fs(,)p Fi(pattern)g
-Fs(})150 2122 y(${)p Fi(parameter)g Fs(,,)p Fi(pattern)g
-Fs(})630 2231 y Ft(This)35 b(expansion)h(mo)s(di\014es)f(the)h(case)h
+1894 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150
+2064 y Fs(${)p Fi(parameter)11 b Fs(^)p Fi(pattern)g
+Fs(})150 2174 y(${)p Fi(parameter)g Fs(^^)p Fi(pattern)g
+Fs(})150 2283 y(${)p Fi(parameter)g Fs(,)p Fi(pattern)g
+Fs(})150 2393 y(${)p Fi(parameter)g Fs(,,)p Fi(pattern)g
+Fs(})630 2502 y Ft(This)35 b(expansion)h(mo)s(di\014es)f(the)h(case)h
(of)f(alphab)s(etic)h(c)m(haracters)g(in)f Fq(parameter)7
-b Ft(.)57 b(The)630 2341 y Fq(pattern)36 b Ft(is)f(expanded)g(to)h(pro)
+b Ft(.)57 b(The)630 2612 y Fq(pattern)36 b Ft(is)f(expanded)g(to)h(pro)
s(duce)e(a)i(pattern)g(just)f(as)h(in)f(\014lename)g(expansion.)56
-b(The)630 2450 y(`)p Fs(^)p Ft(')36 b(op)s(erator)g(con)m(v)m(erts)h
+b(The)630 2722 y(`)p Fs(^)p Ft(')36 b(op)s(erator)g(con)m(v)m(erts)h
(lo)m(w)m(ercase)h(letters)f(matc)m(hing)g Fq(pattern)f
-Ft(to)g(upp)s(ercase;)i(the)e(`)p Fs(,)p Ft(')630 2560
+Ft(to)g(upp)s(ercase;)i(the)e(`)p Fs(,)p Ft(')630 2831
y(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s(ercase)e(letters)i
(to)g(lo)m(w)m(ercase.)59 b(The)36 b(`)p Fs(^^)p Ft(')g(and)f(`)p
-Fs(,,)p Ft(')630 2670 y(expansions)c(con)m(v)m(ert)i(eac)m(h)g(matc)m
+Fs(,,)p Ft(')630 2941 y(expansions)c(con)m(v)m(ert)i(eac)m(h)g(matc)m
(hed)f(c)m(haracter)h(in)e(the)h(expanded)f(v)-5 b(alue;)32
-b(the)g(`)p Fs(^)p Ft(')g(and)630 2779 y(`)p Fs(,)p Ft(')24
+b(the)g(`)p Fs(^)p Ft(')g(and)630 3050 y(`)p Fs(,)p Ft(')24
b(expansions)f(matc)m(h)i(and)e(con)m(v)m(ert)j(only)d(the)h(\014rst)f
(c)m(haracter)j(in)d(the)h(expanded)f(v)-5 b(alue.)630
-2889 y(If)31 b Fq(pattern)g Ft(is)g(omitted,)i(it)f(is)f(treated)h(lik)
+3160 y(If)31 b Fq(pattern)g Ft(is)g(omitted,)i(it)f(is)f(treated)h(lik)
m(e)h(a)e(`)p Fs(?)p Ft(',)h(whic)m(h)f(matc)m(hes)i(ev)m(ery)f(c)m
-(haracter.)44 b(If)630 2998 y Fq(parameter)37 b Ft(is)31
+(haracter.)44 b(If)630 3270 y Fq(parameter)37 b Ft(is)31
b(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)f(the)h(case)g(mo)s
(di\014cation)g(op)s(eration)g(is)f(applied)g(to)i(eac)m(h)f(p)s(osi-)
-630 3108 y(tional)26 b(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
+630 3379 y(tional)26 b(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
(is)g(the)h(resultan)m(t)g(list.)40 b(If)23 b Fq(parameter)32
-b Ft(is)630 3218 y(an)e(arra)m(y)g(v)-5 b(ariable)31
+b Ft(is)630 3489 y(an)e(arra)m(y)g(v)-5 b(ariable)31
b(subscripted)d(with)i(`)p Fs(@)p Ft(')g(or)f(`)p Fs(*)p
Ft(',)i(the)f(case)g(mo)s(di\014cation)h(op)s(eration)f(is)630
-3327 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g
+3598 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g
(in)g(turn,)g(and)f(the)h(expansion)f(is)h(the)g(resultan)m(t)630
-3437 y(list.)150 3656 y Fj(3.5.4)63 b(Command)41 b(Substitution)150
-3803 y Ft(Command)f(substitution)h(allo)m(ws)i(the)e(output)g(of)h(a)f
+3708 y(list.)150 3918 y Fj(3.5.4)63 b(Command)41 b(Substitution)150
+4065 y Ft(Command)f(substitution)h(allo)m(ws)i(the)e(output)g(of)h(a)f
(command)g(to)h(replace)g(the)g(command)f(itself.)150
-3912 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)
-g(enclosed)h(as)g(follo)m(ws:)390 4066 y Fs($\()p Fi(command)11
-b Fs(\))150 4220 y Ft(or)390 4374 y Fs(`)p Fi(command)g
-Fs(`)150 4528 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h
+4175 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)
+g(enclosed)h(as)g(follo)m(ws:)390 4320 y Fs($\()p Fi(command)11
+b Fs(\))150 4465 y Ft(or)390 4611 y Fs(`)p Fi(command)g
+Fs(`)150 4756 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h
(executing)i Fq(command)h Ft(and)c(replacing)i(the)f(command)g(sub-)150
-4638 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
+4866 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
(command,)j(with)d(an)m(y)h(trailing)g(newlines)f(deleted.)150
-4748 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e
+4975 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e
(they)g(ma)m(y)h(b)s(e)f(remo)m(v)m(ed)i(during)d(w)m(ord)h(splitting.)
-44 b(The)150 4857 y(command)21 b(substitution)g Fs($\(cat)29
+44 b(The)150 5085 y(command)21 b(substitution)g Fs($\(cat)29
b Fi(file)11 b Fs(\))20 b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g
(equiv)-5 b(alen)m(t)22 b(but)f(faster)h Fs($\(<)30 b
-Fi(file)11 b Fs(\))p Ft(.)275 5011 y(When)33 b(the)i(old-st)m(yle)h
+Fi(file)11 b Fs(\))p Ft(.)275 5230 y(When)33 b(the)i(old-st)m(yle)h
(bac)m(kquote)f(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f
-(retains)h(its)f(literal)150 5121 y(meaning)k(except)h(when)e(follo)m
+(retains)h(its)f(literal)150 5340 y(meaning)k(except)h(when)e(follo)m
(w)m(ed)j(b)m(y)e(`)p Fs($)p Ft(',)j(`)p Fs(`)p Ft(',)f(or)e(`)p
Fs(\\)p Ft('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g
-(b)m(y)g(a)150 5230 y(bac)m(kslash)j(terminates)g(the)f(command)g
-(substitution.)69 b(When)40 b(using)g(the)g Fs($\()p
-Fi(command)11 b Fs(\))37 b Ft(form,)42 b(all)150 5340
-y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e)
-g(up)f(the)g(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8
-b(.)p eop end
+(b)m(y)g(a)p eop end
%%Page: 23 29
TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)275 299
-y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
-b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g
-(escap)s(e)150 408 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
-(kslashes.)275 538 y(If)e(the)i(substitution)e(app)s(ears)h(within)g
-(double)f(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)
-150 647 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
-836 y Fj(3.5.5)63 b(Arithmetic)40 b(Expansion)150 983
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
+y(bac)m(kslash)41 b(terminates)g(the)f(command)g(substitution.)69
+b(When)40 b(using)g(the)g Fs($\()p Fi(command)11 b Fs(\))37
+b Ft(form,)42 b(all)150 408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f
+(the)f(paren)m(theses)h(mak)m(e)g(up)f(the)g(command;)h(none)f(are)h
+(treated)g(sp)s(ecially)-8 b(.)275 543 y(Command)22 b(substitutions)g
+(ma)m(y)i(b)s(e)e(nested.)39 b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)
+g(bac)m(kquoted)h(form,)g(escap)s(e)150 653 y(the)31
+b(inner)e(bac)m(kquotes)j(with)e(bac)m(kslashes.)275
+787 y(If)e(the)i(substitution)e(app)s(ears)h(within)g(double)f(quotes,)
+i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)150
+897 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
+1096 y Fj(3.5.5)63 b(Arithmetic)40 b(Expansion)150 1243
y Ft(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5
b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g
-(substitution)150 1093 y(of)31 b(the)f(result.)41 b(The)30
-b(format)g(for)g(arithmetic)i(expansion)e(is:)390 1222
-y Fs($\(\()47 b Fi(expression)55 b Fs(\)\))275 1352 y
+(substitution)150 1353 y(of)31 b(the)f(result.)41 b(The)30
+b(format)g(for)g(arithmetic)i(expansion)e(is:)390 1488
+y Fs($\(\()47 b Fi(expression)55 b Fs(\)\))275 1622 y
Ft(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g
(within)f(double)h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150
-1461 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
+1732 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
b(.)41 b(All)27 b(tok)m(ens)h(in)e(the)h(expression)g(undergo)f
-(parameter)h(ex-)150 1571 y(pansion,)h(command)f(substitution,)h(and)f
+(parameter)h(ex-)150 1841 y(pansion,)h(command)f(substitution,)h(and)f
(quote)i(remo)m(v)-5 b(al.)41 b(Arithmetic)28 b(expansions)g(ma)m(y)g
-(b)s(e)f(nested.)275 1700 y(The)34 b(ev)-5 b(aluation)37
+(b)s(e)f(nested.)275 1976 y(The)34 b(ev)-5 b(aluation)37
b(is)f(p)s(erformed)e(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m
-(w)g(\(see)g(Section)g(6.5)h([Shell)150 1810 y(Arithmetic],)32
+(w)g(\(see)g(Section)g(6.5)h([Shell)150 2086 y(Arithmetic],)32
b(page)f(78\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5
b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150
-1919 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
-(ccurs.)150 2108 y Fj(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
-2255 y Ft(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems)
+2195 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
+(ccurs.)150 2395 y Fj(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
+2542 y Ft(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems)
g(that)h(supp)s(ort)d(named)i(pip)s(es)f(\()p Fl(fif)n(o)p
-Ft(s\))i(or)f(the)150 2365 y(`)p Fs(/dev/fd)p Ft(')29
+Ft(s\))i(or)f(the)150 2651 y(`)p Fs(/dev/fd)p Ft(')29
b(metho)s(d)h(of)g(naming)g(op)s(en)g(\014les.)41 b(It)30
-b(tak)m(es)i(the)f(form)f(of)390 2494 y Fs(<\()p Fi(list)11
-b Fs(\))150 2624 y Ft(or)390 2753 y Fs(>\()p Fi(list)g
-Fs(\))150 2882 y Ft(The)23 b(pro)s(cess)g Fq(list)j Ft(is)d(run)f(with)
+b(tak)m(es)i(the)f(form)f(of)390 2786 y Fs(<\()p Fi(list)11
+b Fs(\))150 2921 y Ft(or)390 3055 y Fs(>\()p Fi(list)g
+Fs(\))150 3190 y Ft(The)23 b(pro)s(cess)g Fq(list)j Ft(is)d(run)f(with)
h(its)h(input)f(or)g(output)g(connected)h(to)h(a)e Fl(fif)n(o)g
Ft(or)h(some)g(\014le)f(in)g(`)p Fs(/dev/fd)p Ft('.)150
-2992 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)h(an)f
+3300 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)h(an)f
(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)f(the)h(result)g
-(of)g(the)150 3101 y(expansion.)40 b(If)28 b(the)h Fs(>\()p
+(of)g(the)150 3409 y(expansion.)40 b(If)28 b(the)h Fs(>\()p
Fi(list)11 b Fs(\))26 b Ft(form)h(is)i(used,)f(writing)h(to)g(the)f
(\014le)h(will)g(pro)m(vide)f(input)g(for)g Fq(list)r
-Ft(.)41 b(If)28 b(the)150 3211 y Fs(<\()p Fi(list)11
+Ft(.)41 b(If)28 b(the)150 3519 y Fs(<\()p Fi(list)11
b Fs(\))23 b Ft(form)h(is)i(used,)f(the)h(\014le)f(passed)g(as)g(an)g
(argumen)m(t)h(should)e(b)s(e)h(read)g(to)h(obtain)g(the)f(output)g(of)
-150 3321 y Fq(list)r Ft(.)41 b(Note)31 b(that)f(no)f(space)h(ma)m(y)g
+150 3628 y Fq(list)r Ft(.)41 b(Note)31 b(that)f(no)f(space)h(ma)m(y)g
(app)s(ear)f(b)s(et)m(w)m(een)h(the)g Fs(<)f Ft(or)h
Fs(>)f Ft(and)g(the)g(left)h(paren)m(thesis,)h(otherwise)150
-3430 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h
-(redirection.)275 3560 y(When)36 b(a)m(v)-5 b(ailable,)40
+3738 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h
+(redirection.)275 3873 y(When)36 b(a)m(v)-5 b(ailable,)40
b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m(ultaneously)i
-(with)g(parameter)g(and)150 3669 y(v)-5 b(ariable)31
+(with)g(parameter)g(and)150 3982 y(v)-5 b(ariable)31
b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.)
-150 3858 y Fj(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
-4005 y Ft(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
+150 4182 y Fj(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
+4329 y Ft(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
(expansion,)g(command)g(substitution,)g(and)f(arithmetic)150
-4115 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
-(quotes)h(for)f(w)m(ord)g(splitting.)275 4244 y(The)43
+4438 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
+(quotes)h(for)f(w)m(ord)g(splitting.)275 4573 y(The)43
b(shell)h(treats)h(eac)m(h)h(c)m(haracter)f(of)g Fs($IFS)e
Ft(as)h(a)g(delimiter,)49 b(and)43 b(splits)h(the)h(results)e(of)i(the)
-150 4354 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h(these)g(c)
+150 4682 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h(these)g(c)
m(haracters.)70 b(If)39 b Fs(IFS)g Ft(is)h(unset,)i(or)d(its)h(v)-5
-b(alue)40 b(is)g(exactly)150 4463 y Fs(<space><tab><newline>)p
+b(alue)40 b(is)g(exactly)150 4792 y Fs(<space><tab><newline>)p
Ft(,)26 b(the)32 b(default,)g(then)f(sequences)h(of)62
b Fs(<space>)p Ft(,)30 b Fs(<tab>)p Ft(,)h(and)f Fs(<newline>)150
-4573 y Ft(at)39 b(the)f(b)s(eginning)g(and)f(end)h(of)g(the)h(results)f
+4902 y Ft(at)39 b(the)f(b)s(eginning)g(and)f(end)h(of)g(the)h(results)f
(of)g(the)g(previous)g(expansions)g(are)g(ignored,)j(and)d(an)m(y)150
-4682 y(sequence)31 b(of)g Fs(IFS)f Ft(c)m(haracters)j(not)e(at)g(the)g
+5011 y(sequence)31 b(of)g Fs(IFS)f Ft(c)m(haracters)j(not)e(at)g(the)g
(b)s(eginning)g(or)f(end)h(serv)m(es)g(to)h(delimit)f(w)m(ords.)42
-b(If)30 b Fs(IFS)g Ft(has)150 4792 y(a)g(v)-5 b(alue)30
+b(If)30 b Fs(IFS)g Ft(has)150 5121 y(a)g(v)-5 b(alue)30
b(other)g(than)g(the)g(default,)g(then)f(sequences)h(of)g(the)g
(whitespace)g(c)m(haracters)h Fs(space)e Ft(and)g Fs(tab)150
-4902 y Ft(are)36 b(ignored)g(at)g(the)g(b)s(eginning)f(and)g(end)g(of)h
+5230 y Ft(are)36 b(ignored)g(at)g(the)g(b)s(eginning)f(and)g(end)g(of)h
(the)g(w)m(ord,)h(as)f(long)g(as)g(the)g(whitespace)h(c)m(haracter)g
-(is)150 5011 y(in)f(the)g(v)-5 b(alue)36 b(of)g Fs(IFS)f
+(is)150 5340 y(in)f(the)g(v)-5 b(alue)36 b(of)g Fs(IFS)f
Ft(\(an)h Fs(IFS)f Ft(whitespace)h(c)m(haracter\).)60
b(An)m(y)35 b(c)m(haracter)j(in)d Fs(IFS)g Ft(that)i(is)f(not)g
-Fs(IFS)150 5121 y Ft(whitespace,)27 b(along)f(with)f(an)m(y)g(adjacen)m
-(t)h Fs(IFS)e Ft(whitespace)i(c)m(haracters,)i(delimits)e(a)f(\014eld.)
-38 b(A)26 b(sequence)150 5230 y(of)35 b Fs(IFS)f Ft(whitespace)h(c)m
-(haracters)i(is)d(also)i(treated)g(as)f(a)g(delimiter.)55
-b(If)34 b(the)h(v)-5 b(alue)35 b(of)g Fs(IFS)f Ft(is)h(n)m(ull,)h(no)
-150 5340 y(w)m(ord)30 b(splitting)h(o)s(ccurs.)p eop
-end
+Fs(IFS)p eop end
%%Page: 24 30
TeXDict begin 24 29 bop 150 -116 a Ft(24)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(Explicit)44 b(n)m(ull)f(argumen)m(ts)
-g(\()p Fs("")g Ft(or)h Fs('')p Ft(\))f(are)g(retained.)80
-b(Unquoted)43 b(implicit)h(n)m(ull)f(argumen)m(ts,)150
-408 y(resulting)24 b(from)f(the)g(expansion)g(of)h(parameters)g(that)g
-(ha)m(v)m(e)h(no)e(v)-5 b(alues,)25 b(are)f(remo)m(v)m(ed.)40
-b(If)23 b(a)g(parameter)150 518 y(with)30 b(no)g(v)-5
-b(alue)31 b(is)g(expanded)e(within)h(double)g(quotes,)h(a)g(n)m(ull)f
-(argumen)m(t)h(results)f(and)g(is)g(retained.)275 654
-y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h(splitting)g(is)
-f(p)s(erformed.)150 856 y Fj(3.5.8)63 b(Filename)41 b(Expansion)150
-1003 y Ft(After)26 b(w)m(ord)g(splitting,)i(unless)d(the)i(`)p
-Fs(-f)p Ft(')f(option)g(has)g(b)s(een)f(set)i(\(see)g(Section)g(4.3.1)h
-([The)e(Set)g(Builtin],)150 1112 y(page)h(51\),)i(Bash)d(scans)h(eac)m
-(h)h(w)m(ord)e(for)g(the)h(c)m(haracters)g(`)p Fs(*)p
-Ft(',)h(`)p Fs(?)p Ft(',)g(and)e(`)p Fs([)p Ft('.)39
-b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 1222 y(app)s(ears,)h
-(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g Fq(pattern)p
-Ft(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h(sorted)150
-1331 y(list)k(of)g(\014le)g(names)g(matc)m(hing)h(the)f(pattern.)45
-b(If)32 b(no)f(matc)m(hing)i(\014le)f(names)g(are)g(found,)f(and)h(the)
-g(shell)150 1441 y(option)c Fs(nullglob)e Ft(is)i(disabled,)h(the)f(w)m
-(ord)g(is)g(left)g(unc)m(hanged.)40 b(If)28 b(the)g Fs(nullglob)e
-Ft(option)i(is)g(set,)i(and)150 1550 y(no)38 b(matc)m(hes)h(are)f
-(found,)h(the)f(w)m(ord)f(is)h(remo)m(v)m(ed.)65 b(If)37
-b(the)h Fs(failglob)e Ft(shell)i(option)g(is)g(set,)j(and)c(no)150
-1660 y(matc)m(hes)f(are)g(found,)f(an)g(error)f(message)j(is)e(prin)m
-(ted)f(and)h(the)g(command)g(is)g(not)g(executed.)56
-b(If)35 b(the)150 1770 y(shell)e(option)h Fs(nocaseglob)c
-Ft(is)j(enabled,)h(the)g(matc)m(h)g(is)f(p)s(erformed)e(without)i
-(regard)g(to)h(the)g(case)g(of)150 1879 y(alphab)s(etic)d(c)m
-(haracters.)275 2016 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g
+b(Reference)g(Man)m(ual)150 299 y(whitespace,)c(along)f(with)f(an)m(y)g
+(adjacen)m(t)h Fs(IFS)e Ft(whitespace)i(c)m(haracters,)i(delimits)e(a)f
+(\014eld.)38 b(A)26 b(sequence)150 408 y(of)35 b Fs(IFS)f
+Ft(whitespace)h(c)m(haracters)i(is)d(also)i(treated)g(as)f(a)g
+(delimiter.)55 b(If)34 b(the)h(v)-5 b(alue)35 b(of)g
+Fs(IFS)f Ft(is)h(n)m(ull,)h(no)150 518 y(w)m(ord)30 b(splitting)h(o)s
+(ccurs.)275 648 y(Explicit)44 b(n)m(ull)f(argumen)m(ts)g(\()p
+Fs("")g Ft(or)h Fs('')p Ft(\))f(are)g(retained.)80 b(Unquoted)43
+b(implicit)h(n)m(ull)f(argumen)m(ts,)150 758 y(resulting)24
+b(from)f(the)g(expansion)g(of)h(parameters)g(that)g(ha)m(v)m(e)h(no)e
+(v)-5 b(alues,)25 b(are)f(remo)m(v)m(ed.)40 b(If)23 b(a)g(parameter)150
+867 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)g
+(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.)
+275 997 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h
+(splitting)g(is)f(p)s(erformed.)150 1187 y Fj(3.5.8)63
+b(Filename)41 b(Expansion)150 1334 y Ft(After)26 b(w)m(ord)g
+(splitting,)i(unless)d(the)i(`)p Fs(-f)p Ft(')f(option)g(has)g(b)s(een)
+f(set)i(\(see)g(Section)g(4.3.1)h([The)e(Set)g(Builtin],)150
+1444 y(page)h(51\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c)
+m(haracters)g(`)p Fs(*)p Ft(',)h(`)p Fs(?)p Ft(',)g(and)e(`)p
+Fs([)p Ft('.)39 b(If)26 b(one)h(of)g(these)f(c)m(haracters)150
+1553 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g
+Fq(pattern)p Ft(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h
+(sorted)150 1663 y(list)k(of)g(\014le)g(names)g(matc)m(hing)h(the)f
+(pattern.)45 b(If)32 b(no)f(matc)m(hing)i(\014le)f(names)g(are)g
+(found,)f(and)h(the)g(shell)150 1772 y(option)c Fs(nullglob)e
+Ft(is)i(disabled,)h(the)f(w)m(ord)g(is)g(left)g(unc)m(hanged.)40
+b(If)28 b(the)g Fs(nullglob)e Ft(option)i(is)g(set,)i(and)150
+1882 y(no)38 b(matc)m(hes)h(are)f(found,)h(the)f(w)m(ord)f(is)h(remo)m
+(v)m(ed.)65 b(If)37 b(the)h Fs(failglob)e Ft(shell)i(option)g(is)g
+(set,)j(and)c(no)150 1991 y(matc)m(hes)f(are)g(found,)f(an)g(error)f
+(message)j(is)e(prin)m(ted)f(and)h(the)g(command)g(is)g(not)g
+(executed.)56 b(If)35 b(the)150 2101 y(shell)e(option)h
+Fs(nocaseglob)c Ft(is)j(enabled,)h(the)g(matc)m(h)g(is)f(p)s(erformed)e
+(without)i(regard)g(to)h(the)g(case)g(of)150 2211 y(alphab)s(etic)d(c)m
+(haracters.)275 2341 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g
(\014lename)h(expansion,)h(the)e(c)m(haracter)i(`)p Fs(.)p
-Ft(')f(at)g(the)g(start)g(of)g(a)g(\014lename)150 2125
+Ft(')f(at)g(the)g(start)g(of)g(a)g(\014lename)150 2450
y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f(matc)
m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g
-Fs(dotglob)150 2235 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
+Fs(dotglob)150 2560 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
(\014le)f(name,)h(the)g(slash)f(c)m(haracter)i(m)m(ust)e(alw)m(a)m(ys)i
-(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 2344 y(In)30
+(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 2669 y(In)30
b(other)g(cases,)i(the)e(`)p Fs(.)p Ft(')h(c)m(haracter)h(is)e(not)h
-(treated)g(sp)s(ecially)-8 b(.)275 2481 y(See)28 b(the)g(description)g
+(treated)g(sp)s(ecially)-8 b(.)275 2799 y(See)28 b(the)g(description)g
(of)g Fs(shopt)e Ft(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i
-(page)g(55,)g(for)f(a)g(descrip-)150 2590 y(tion)j(of)f(the)h
+(page)g(55,)g(for)f(a)g(descrip-)150 2909 y(tion)j(of)f(the)h
Fs(nocaseglob)p Ft(,)d Fs(nullglob)p Ft(,)g Fs(failglob)p
-Ft(,)h(and)g Fs(dotglob)g Ft(options.)275 2727 y(The)j
+Ft(,)h(and)g Fs(dotglob)g Ft(options.)275 3039 y(The)j
Fs(GLOBIGNORE)f Ft(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f
(to)i(restrict)g(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150
-2836 y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g
+3148 y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g
(matc)m(hing)g(\014lename)f(that)g(also)h(matc)m(hes)f(one)g(of)g(the)g
-(patterns)150 2946 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h
+(patterns)150 3258 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h
(from)e(the)i(list)f(of)g(matc)m(hes.)50 b(The)33 b(\014lenames)g(`)p
Fs(.)p Ft(')g(and)f(`)p Fs(..)p Ft(')h(are)g(alw)m(a)m(ys)150
-3056 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m
+3367 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m
(ull.)48 b(Ho)m(w)m(ev)m(er,)35 b(setting)f Fs(GLOBIGNORE)c
-Ft(to)j(a)g(non-n)m(ull)150 3165 y(v)-5 b(alue)34 b(has)f(the)h
+Ft(to)j(a)g(non-n)m(ull)150 3477 y(v)-5 b(alue)34 b(has)f(the)h
(e\013ect)h(of)f(enabling)g(the)g Fs(dotglob)e Ft(shell)h(option,)j(so)
-e(all)g(other)g(\014lenames)g(b)s(eginning)150 3275 y(with)43
+e(all)g(other)g(\014lenames)g(b)s(eginning)150 3587 y(with)43
b(a)h(`)p Fs(.)p Ft(')f(will)h(matc)m(h.)80 b(T)-8 b(o)44
b(get)h(the)e(old)h(b)s(eha)m(vior)f(of)h(ignoring)f(\014lenames)h(b)s
-(eginning)f(with)g(a)150 3384 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p
+(eginning)f(with)g(a)150 3696 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p
Fs(.*)p Ft(')e(one)g(of)g(the)h(patterns)f(in)g Fs(GLOBIGNORE)p
Ft(.)58 b(The)37 b Fs(dotglob)e Ft(option)j(is)f(disabled)g(when)150
-3494 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 3695 y Fj(3.5.8.1)63
-b(P)m(attern)40 b(Matc)m(hing)150 3842 y Ft(An)m(y)24
+3806 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 3996 y Fj(3.5.8.1)63
+b(P)m(attern)40 b(Matc)m(hing)150 4143 y Ft(An)m(y)24
b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h(pattern,)i(other)e(than)f
(the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h(describ)s(ed)150
-3952 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29
+4252 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29
b Fl(nul)h Ft(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)h
-(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 4061
+(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 4362
y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37 b(escaping)i(bac)m
(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63 b(The)36
-b(sp)s(ecial)150 4171 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e
+b(sp)s(ecial)150 4471 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e
(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8
-b(.)275 4307 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
-(e)f(the)g(follo)m(wing)h(meanings:)150 4469 y Fs(*)432
+b(.)275 4601 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
+(e)f(the)g(follo)m(wing)h(meanings:)150 4751 y Fs(*)432
b Ft(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g
(string.)41 b(When)29 b(the)g Fs(globstar)e Ft(shell)i(option)630
-4579 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h
+4861 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h
(\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p
-Fs(*)p Ft('s)630 4689 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
+Fs(*)p Ft('s)630 4971 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630
-4798 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
+5080 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
Fs(/)p Ft(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Fs(*)p Ft('s)e(will)g
-(matc)m(h)h(only)f(directories)630 4908 y(and)k(sub)s(directories.)150
-5069 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
-150 5230 y Fs([...)o(])241 b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
-(the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)
-i(separated)e(b)m(y)g(a)630 5340 y(h)m(yphen)i(denotes)h(a)g
-Fq(range)g(expression)p Ft(;)g(an)m(y)h(c)m(haracter)g(that)f(sorts)g
-(b)s(et)m(w)m(een)g(those)h(t)m(w)m(o)p eop end
+(matc)m(h)h(only)f(directories)630 5190 y(and)k(sub)s(directories.)150
+5340 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)p
+eop end
%%Page: 25 31
TeXDict begin 25 30 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)630 299
-y(c)m(haracters,)28 b(inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s
-(cale's)j(collating)g(sequence)e(and)f(c)m(haracter)630
-408 y(set,)31 b(is)f(matc)m(hed.)42 b(If)30 b(the)g(\014rst)g(c)m
-(haracter)i(follo)m(wing)g(the)e(`)p Fs([)p Ft(')h(is)f(a)h(`)p
-Fs(!)p Ft(')f(or)g(a)h(`)p Fs(^)p Ft(')g(then)f(an)m(y)630
-518 y(c)m(haracter)c(not)f(enclosed)g(is)g(matc)m(hed.)40
-b(A)25 b(`)p Fp(\000)p Ft(')f(ma)m(y)i(b)s(e)e(matc)m(hed)h(b)m(y)f
-(including)h(it)g(as)g(the)630 628 y(\014rst)32 b(or)h(last)h(c)m
-(haracter)h(in)e(the)g(set.)50 b(A)33 b(`)p Fs(])p Ft(')g(ma)m(y)h(b)s
-(e)e(matc)m(hed)i(b)m(y)f(including)g(it)g(as)h(the)630
-737 y(\014rst)25 b(c)m(haracter)i(in)e(the)h(set.)40
-b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f(range)g
-(expressions)f(is)630 847 y(determined)e(b)m(y)g(the)g(curren)m(t)f(lo)
-s(cale)j(and)e(the)g(v)-5 b(alue)23 b(of)g(the)h Fs(LC_COLLATE)c
-Ft(shell)j(v)-5 b(ariable,)630 956 y(if)30 b(set.)630
-1100 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f(lo)s(cale,)k
-(`)p Fs([a-dx-z])p Ft(')31 b(is)i(equiv)-5 b(alen)m(t)34
-b(to)g(`)p Fs([abcdxyz])p Ft('.)630 1209 y(Man)m(y)68
-b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i(order,)76
-b(and)67 b(in)g(these)h(lo)s(cales)630 1319 y(`)p Fs([a-dx-z])p
-Ft(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5 b(alen)m(t)39
-b(to)g(`)p Fs([abcdxyz])p Ft(';)g(it)g(migh)m(t)f(b)s(e)f(equiv)-5
-b(alen)m(t)630 1428 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299
+y Fs([...)o(])241 b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g(the)g
+(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)i
+(separated)e(b)m(y)g(a)630 408 y(h)m(yphen)i(denotes)h(a)g
+Fq(range)g(expression)p Ft(;)g(an)m(y)h(c)m(haracter)g(that)f(sorts)g
+(b)s(et)m(w)m(een)g(those)h(t)m(w)m(o)630 518 y(c)m(haracters,)f
+(inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g
+(sequence)e(and)f(c)m(haracter)630 628 y(set,)31 b(is)f(matc)m(hed.)42
+b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p
+Fs([)p Ft(')h(is)f(a)h(`)p Fs(!)p Ft(')f(or)g(a)h(`)p
+Fs(^)p Ft(')g(then)f(an)m(y)630 737 y(c)m(haracter)c(not)f(enclosed)g
+(is)g(matc)m(hed.)40 b(A)25 b(`)p Fp(\000)p Ft(')f(ma)m(y)i(b)s(e)e
+(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 847
+y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50
+b(A)33 b(`)p Fs(])p Ft(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
+(including)g(it)g(as)h(the)630 956 y(\014rst)25 b(c)m(haracter)i(in)e
+(the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f
+(range)g(expressions)f(is)630 1066 y(determined)e(b)m(y)g(the)g(curren)
+m(t)f(lo)s(cale)j(and)e(the)g(v)-5 b(alue)23 b(of)g(the)h
+Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 1176 y(if)30
+b(set.)630 1309 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f
+(lo)s(cale,)k(`)p Fs([a-dx-z])p Ft(')31 b(is)i(equiv)-5
+b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 1418
+y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i
+(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 1528
+y(`)p Fs([a-dx-z])p Ft(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
+b(alen)m(t)39 b(to)g(`)p Fs([abcdxyz])p Ft(';)g(it)g(migh)m(t)f(b)s(e)f
+(equiv)-5 b(alen)m(t)630 1637 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p
Ft(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
-(in)m(terpretation)h(of)630 1538 y(ranges)e(in)f(brac)m(k)m(et)i
+(in)m(terpretation)h(of)630 1747 y(ranges)e(in)f(brac)m(k)m(et)i
(expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
-(cale)i(b)m(y)f(setting)630 1648 y(the)e Fs(LC_COLLATE)c
+(cale)i(b)m(y)f(setting)630 1857 y(the)e Fs(LC_COLLATE)c
Ft(or)k Fs(LC_ALL)d Ft(en)m(vironmen)m(t)j(v)-5 b(ariable)31
-b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 1791
+b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 1990
y(Within)23 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j
Fq(c)m(haracter)g(classes)j Ft(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f
(the)i(syn)m(tax)f Fs([:)p Fq(class)t Fs(:])p Ft(,)630
-1900 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m
+2099 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m
(wing)h(classes)f(de\014ned)e(in)h(the)h Fl(posix)f Ft(standard:)870
-2044 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g
-(lower)870 2153 y(print)g(punct)g(space)f(upper)h(word)190
-b(xdigit)630 2296 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m
+2233 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g
+(lower)870 2342 y(print)g(punct)g(space)f(upper)h(word)190
+b(xdigit)630 2475 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m
(y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75
-b(The)41 b Fs(word)630 2406 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h
+b(The)41 b Fs(word)630 2585 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h
(letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
-Fs(_)p Ft('.)630 2549 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p
+Fs(_)p Ft('.)630 2718 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p
Fs(])p Ft(',)i(an)e Fq(equiv)-5 b(alence)26 b(class)j
Ft(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
-Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 2659 y(whic)m(h)29
+Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 2828 y(whic)m(h)29
b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)
-m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 2768
+m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 2937
y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h
-Fq(c)6 b Ft(.)630 2912 y(Within)21 b(`)p Fs([)p Ft(')h(and)e(`)p
+Fq(c)6 b Ft(.)630 3070 y(Within)21 b(`)p Fs([)p Ft(')h(and)e(`)p
Fs(])p Ft(',)j(the)f(syn)m(tax)f Fs([.)p Fq(sym)m(b)s(ol)t
Fs(.])f Ft(matc)m(hes)i(the)f(collating)j(sym)m(b)s(ol)c
-Fq(sym)m(b)s(ol)t Ft(.)275 3097 y(If)29 b(the)g Fs(extglob)f
+Fq(sym)m(b)s(ol)t Ft(.)275 3227 y(If)29 b(the)g Fs(extglob)f
Ft(shell)h(option)h(is)g(enabled)f(using)g(the)h Fs(shopt)e
-Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 3207
+Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 3336
y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fq(pattern-list)j
-Ft(is)d(a)g(list)g(of)150 3316 y(one)d(or)f(more)h(patterns)f
+Ft(is)d(a)g(list)g(of)150 3446 y(one)d(or)f(more)h(patterns)f
(separated)h(b)m(y)f(a)h(`)p Fs(|)p Ft('.)47 b(Comp)s(osite)33
b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150
-3426 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
-3611 y Fs(?\()p Fi(pattern-list)11 b Fs(\))630 3721 y
+3556 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
+3712 y Fs(?\()p Fi(pattern-list)11 b Fs(\))630 3822 y
Ft(Matc)m(hes)32 b(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m
-(en)g(patterns.)150 3898 y Fs(*\()p Fi(pattern-list)11
-b Fs(\))630 4007 y Ft(Matc)m(hes)32 b(zero)f(or)g(more)f(o)s
-(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)150 4184
-y Fs(+\()p Fi(pattern-list)11 b Fs(\))630 4294 y Ft(Matc)m(hes)32
+(en)g(patterns.)150 3979 y Fs(*\()p Fi(pattern-list)11
+b Fs(\))630 4088 y Ft(Matc)m(hes)32 b(zero)f(or)g(more)f(o)s
+(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)150 4245
+y Fs(+\()p Fi(pattern-list)11 b Fs(\))630 4354 y Ft(Matc)m(hes)32
b(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m(en)i(patterns.)
-150 4471 y Fs(@\()p Fi(pattern-list)11 b Fs(\))630 4580
+150 4511 y Fs(@\()p Fi(pattern-list)11 b Fs(\))630 4621
y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g(patterns.)150
-4757 y Fs(!\()p Fi(pattern-list)11 b Fs(\))630 4867 y
+4777 y Fs(!\()p Fi(pattern-list)11 b Fs(\))630 4887 y
Ft(Matc)m(hes)32 b(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g
(patterns.)150 5083 y Fj(3.5.9)63 b(Quote)41 b(Remo)m(v)-7
b(al)150 5230 y Ft(After)32 b(the)g(preceding)g(expansions,)h(all)f
@@ -6748,10 +6752,10 @@ Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(.)72 b(In)40 b(this)h(case,)k
b Fs(>)p Ft(&-)f(and)f Fs(<)p Ft(&-,)h(the)g(shell)g(will)h(allo)s
(cate)h(a)e(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i
(it)f(to)150 1377 y Fs({)p Fq(v)-5 b(arname)5 b Fs(})p
-Ft(.)52 b(If)33 b Fs(>)p Ft(&-)h(or)g Fs(<)p Ft(&-)g(is)g(preceded)g(b)
-m(y)g Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(,)35 b(the)g(v)-5
-b(alue)34 b(of)h Fs({)p Fq(v)-5 b(arname)5 b Fs(})33
-b Ft(de\014nes)h(the)150 1486 y(\014le)c(descriptor)h(to)g(close.)275
+Ft(.)42 b(If)31 b Fs(>)p Ft(&-)f(or)h Fs(<)p Ft(&-)g(is)g(preceded)g(b)
+m(y)g Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(,)31 b(the)g(v)-5
+b(alue)31 b(of)g Fq(v)-5 b(arname)37 b Ft(de\014nes)30
+b(the)h(\014le)150 1486 y(descriptor)f(to)h(close.)275
1638 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
(descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
(c)m(har-)150 1747 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
@@ -7232,7 +7236,7 @@ h(that)h(the)f Fs(wait)150 4542 y Ft(builtin)24 b(is)h(in)m
Fs(SIGINT)p Ft(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
(ops.)150 4651 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
Fs(SIGQUIT)p Ft(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
-(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 4761 y(page)f(87\),)h
+(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 4761 y(page)f(89\),)h
(Bash)e(ignores)h Fs(SIGTTIN)p Ft(,)e Fs(SIGTTOU)p Ft(,)g(and)g
Fs(SIGTSTP)p Ft(.)275 4902 y(Non-builtin)i(commands)g(started)g(b)m(y)g
(Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5
@@ -7258,7 +7262,7 @@ b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)g(from)g(sending)f(the)h
Fs(SIGHUP)e Ft(signal)150 628 y(to)i(a)g(particular)g(job,)g(it)g
(should)f(b)s(e)g(remo)m(v)m(ed)h(from)g(the)f(jobs)g(table)i(with)e
(the)h Fs(disown)e Ft(builtin)h(\(see)150 737 y(Section)f(7.2)g([Job)f
-(Con)m(trol)h(Builtins],)g(page)g(88\))h(or)e(mark)m(ed)g(to)h(not)f
+(Con)m(trol)h(Builtins],)g(page)g(90\))h(or)e(mark)m(ed)g(to)h(not)f
(receiv)m(e)i Fs(SIGHUP)d Ft(using)h Fs(disown)150 847
y(-h)p Ft(.)275 992 y(If)38 b(the)h Fs(huponexit)e Ft(shell)i(option)g
(has)g(b)s(een)f(set)i(with)f Fs(shopt)e Ft(\(see)j(Section)g(4.3.2)h
@@ -7360,12 +7364,12 @@ b(Builtin)150 870 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
(other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150
1473 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
(con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h
-(Builtins],)150 1583 y(page)40 b(88\),)j(the)c(directory)h(stac)m(k)g
+(Builtins],)150 1583 y(page)40 b(90\),)j(the)c(directory)h(stac)m(k)g
(\(see)g(Section)g(6.8.1)h([Directory)g(Stac)m(k)f(Builtins],)i(page)e
(81\),)j(the)150 1692 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
-([Bash)f(History)g(Builtins],)h(page)g(119\),)h(and)d(the)h
+([Bash)f(History)g(Builtins],)h(page)g(121\),)h(and)d(the)h
(programmable)150 1802 y(completion)32 b(facilities)g(\(see)g(Section)f
-(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(115\).)275
+(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(117\).)275
1939 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2076 y(Unless)39
b(otherwise)h(noted,)i(eac)m(h)f(builtin)e(command)g(do)s(cumen)m(ted)g
@@ -7894,13 +7898,13 @@ b(Reference)g(Man)m(ual)870 299 y Fs(bind)47 b([-m)g
Fi(keymap)11 b Fs(])45 b Fi(keyseq:function-name)870
408 y Fs(bind)i Fi(readline-command)630 545 y Ft(Displa)m(y)26
b(curren)m(t)f(Readline)h(\(see)g(Chapter)f(8)g([Command)g(Line)g
-(Editing],)i(page)f(91\))g(k)m(ey)630 655 y(and)36 b(function)g
+(Editing],)i(page)f(93\))g(k)m(ey)630 655 y(and)36 b(function)g
(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g(to)h(a)f(Readline)g
(function)f(or)h(macro,)630 765 y(or)44 b(set)h(a)g(Readline)f(v)-5
b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t)f(is)g(a)h
(command)f(as)g(it)630 874 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g
(initialization)i(\014le)d(\(see)h(Section)g(8.3)g([Readline)g(Init)630
-984 y(File],)g(page)c(94\),)k(but)38 b(eac)m(h)i(binding)e(or)h
+984 y(File],)g(page)c(96\),)k(but)38 b(eac)m(h)i(binding)e(or)h
(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a)f(separate)630
1093 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs("\\C-x\\C-r":re-read-init-f)o
(ile)p Ft('.)630 1230 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g
@@ -8310,21 +8314,22 @@ s(een)g(supplied.)38 b(The)630 4254 y(return)29 b(v)-5
b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
4413 y Fs(read)870 4548 y(read)47 b([-ers])f([-a)h Fi(aname)11
b Fs(])45 b([-d)i Fi(delim)11 b Fs(])46 b([-i)h Fi(text)11
-b Fs(])46 b([-n)g Fi(nchars)11 b Fs(])46 b([-p)h Fi(prompt)11
-b Fs(])45 b([-t)i Fi(time-)870 4658 y(out)11 b Fs(])46
-b([-u)h Fi(fd)11 b Fs(])46 b([)p Fi(name)57 b Fs(...])630
-4792 y Ft(One)26 b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h
-(or)g(from)f(the)h(\014le)f(descriptor)h Fq(fd)i Ft(supplied)630
-4902 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)p Fs(-u)p
-Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h(assigned)h(to)f
-(the)h(\014rst)630 5011 y Fq(name)5 b Ft(,)28 b(the)g(second)g(w)m(ord)
-f(to)h(the)f(second)h Fq(name)5 b Ft(,)28 b(and)f(so)h(on,)g(with)f
-(lefto)m(v)m(er)j(w)m(ords)d(and)630 5121 y(their)h(in)m(terv)m(ening)g
-(separators)g(assigned)g(to)h(the)e(last)i Fq(name)5
-b Ft(.)40 b(If)27 b(there)h(are)g(few)m(er)f(w)m(ords)630
-5230 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c
-(remaining)h(names)g(are)g(assigned)630 5340 y(empt)m(y)31
-b(v)-5 b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5
+b Fs(])46 b([-n)g Fi(nchars)11 b Fs(])46 b([-N)h Fi(nchars)11
+b Fs(])45 b([-p)i Fi(prompt)11 b Fs(])45 b([-t)i Fi(time-)870
+4658 y(out)11 b Fs(])46 b([-u)h Fi(fd)11 b Fs(])46 b([)p
+Fi(name)57 b Fs(...])630 4792 y Ft(One)26 b(line)h(is)g(read)f(from)h
+(the)f(standard)g(input,)h(or)g(from)f(the)h(\014le)f(descriptor)h
+Fq(fd)i Ft(supplied)630 4902 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)
+p Fs(-u)p Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h
+(assigned)h(to)f(the)h(\014rst)630 5011 y Fq(name)5 b
+Ft(,)28 b(the)g(second)g(w)m(ord)f(to)h(the)f(second)h
+Fq(name)5 b Ft(,)28 b(and)f(so)h(on,)g(with)f(lefto)m(v)m(er)j(w)m
+(ords)d(and)630 5121 y(their)h(in)m(terv)m(ening)g(separators)g
+(assigned)g(to)h(the)e(last)i Fq(name)5 b Ft(.)40 b(If)27
+b(there)h(are)g(few)m(er)f(w)m(ords)630 5230 y(read)44
+b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c(remaining)h
+(names)g(are)g(assigned)630 5340 y(empt)m(y)31 b(v)-5
+b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5
b(alue)31 b(of)g(the)f Fs(IFS)g Ft(v)-5 b(ariable)31
b(are)g(used)f(to)h(split)p eop end
%%Page: 48 54
@@ -8341,185 +8346,193 @@ b(return)630 628 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is)g
(the)630 737 y(return)i(co)s(de)i(is)g(greater)g(than)g(128\),)h(or)f
(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f(is)h(supplied)e(as)i
(the)630 847 y(argumen)m(t)g(to)g(`)p Fs(-u)p Ft('.)630
-980 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
-(meanings:)630 1137 y Fs(-a)e Fi(aname)114 b Ft(The)34
+977 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
+(meanings:)630 1129 y Fs(-a)e Fi(aname)114 b Ft(The)34
b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)e(of)g(the)g
-(arra)m(y)h(v)-5 b(ariable)1110 1247 y Fq(aname)5 b Ft(,)29
+(arra)m(y)h(v)-5 b(ariable)1110 1238 y Fq(aname)5 b Ft(,)29
b(starting)g(at)f(0.)40 b(All)29 b(elemen)m(ts)g(are)f(remo)m(v)m(ed)h
-(from)e Fq(aname)33 b Ft(b)s(efore)1110 1357 y(the)e(assignmen)m(t.)41
+(from)e Fq(aname)33 b Ft(b)s(efore)1110 1348 y(the)e(assignmen)m(t.)41
b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 b(are)h(ignored.)630
-1514 y Fs(-d)f Fi(delim)114 b Ft(The)41 b(\014rst)h(c)m(haracter)h(of)f
+1499 y Fs(-d)f Fi(delim)114 b Ft(The)41 b(\014rst)h(c)m(haracter)h(of)f
Fq(delim)g Ft(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
-1623 y(rather)30 b(than)g(newline.)630 1781 y Fs(-e)384
+1609 y(rather)30 b(than)g(newline.)630 1760 y Fs(-e)384
b Ft(Readline)28 b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i
-(page)f(91\))h(is)f(used)1110 1890 y(to)42 b(obtain)f(the)g(line.)73
+(page)f(93\))h(is)f(used)1110 1870 y(to)42 b(obtain)f(the)g(line.)73
b(Readline)41 b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line)
-1110 2000 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j
-(editing)f(settings.)630 2157 y Fs(-i)e Fi(text)162 b
+1110 1979 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j
+(editing)f(settings.)630 2131 y Fs(-i)e Fi(text)162 b
Ft(If)36 b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j
-Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 2267 y(editing)31
-b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2424
-y Fs(-n)f Fi(nchars)1110 2534 y Fs(read)38 b Ft(returns)f(after)j
+Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 2240 y(editing)31
+b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2392
+y Fs(-n)f Fi(nchars)1110 2501 y Fs(read)38 b Ft(returns)f(after)j
(reading)f Fq(nc)m(hars)j Ft(c)m(haracters)e(rather)f(than)g(w)m
-(aiting)1110 2643 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630
-2800 y Fs(-p)f Fi(prompt)1110 2910 y Ft(Displa)m(y)38
+(aiting)1110 2611 y(for)g(a)h(complete)h(line)f(of)f(input,)i(but)e
+(honor)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 2720
+y Fq(nc)m(hars)34 b Ft(c)m(haracters)e(are)e(read)h(b)s(efore)f(the)g
+(delimiter.)630 2872 y Fs(-N)g Fi(nchars)1110 2981 y
+Fs(read)39 b Ft(returns)f(after)j(reading)e(exactly)j
+Fq(nc)m(hars)h Ft(c)m(haracters)f(rather)d(than)1110
+3091 y(w)m(aiting)32 b(for)f(a)g(complete)i(line)e(of)g(input,)g
+(unless)f(EOF)h(is)g(encoun)m(tered)g(or)1110 3200 y
+Fs(read)e Ft(times)i(out.)41 b(An)m(y)31 b(delimiter)g(is)f(ignored.)
+630 3352 y Fs(-p)g Fi(prompt)1110 3461 y Ft(Displa)m(y)38
b Fq(prompt)r Ft(,)f(without)g(a)f(trailing)i(newline,)g(b)s(efore)e
-(attempting)i(to)1110 3020 y(read)f(an)m(y)h(input.)60
+(attempting)i(to)1110 3571 y(read)f(an)m(y)h(input.)60
b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g(input)g(is)g
-(coming)1110 3129 y(from)30 b(a)h(terminal.)630 3286
+(coming)1110 3680 y(from)30 b(a)h(terminal.)630 3832
y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)
d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110
-3396 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
-(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 3506
+3941 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
+(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 4051
y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i(a)g
-(line)f(con)m(tin)m(uation.)630 3663 y Fs(-s)384 b Ft(Silen)m(t)28
+(line)f(con)m(tin)m(uation.)630 4202 y Fs(-s)384 b Ft(Silen)m(t)28
b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)h(terminal,)h(c)
-m(haracters)g(are)f(not)1110 3772 y(ec)m(ho)s(ed.)630
-3930 y Fs(-t)i Fi(timeout)1110 4039 y Ft(Cause)23 b Fs(read)f
+m(haracters)g(are)f(not)1110 4312 y(ec)m(ho)s(ed.)630
+4463 y Fs(-t)i Fi(timeout)1110 4573 y Ft(Cause)23 b Fs(read)f
Ft(to)i(time)f(out)h(and)e(return)g(failure)h(if)g(a)h(complete)g(line)
-g(of)f(input)1110 4149 y(is)44 b(not)f(read)h(within)e
+g(of)f(input)1110 4682 y(is)44 b(not)f(read)h(within)e
Fq(timeout)47 b Ft(seconds.)80 b Fq(timeout)46 b Ft(ma)m(y)e(b)s(e)f(a)
-h(decimal)1110 4258 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s
+h(decimal)1110 4792 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s
(ortion)d(follo)m(wing)j(the)f(decimal)g(p)s(oin)m(t.)40
-b(This)1110 4368 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c
+b(This)1110 4902 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c
Fs(read)g Ft(is)h(reading)g(input)f(from)g(a)h(terminal,)1110
-4478 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no)
-h(e\013ect)h(when)e(reading)h(from)g(regular)1110 4587
+5011 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no)
+h(e\013ect)h(when)e(reading)h(from)g(regular)1110 5121
y(\014les.)55 b(If)34 b Fq(timeout)k Ft(is)d(0,)i Fs(read)d
Ft(returns)g(success)h(if)g(input)g(is)g(a)m(v)-5 b(ailable)37
-b(on)1110 4697 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)
-e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 4806
-y(greater)32 b(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)630
-4964 y Fs(-u)g Fi(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g
-(descriptor)h Fq(fd)t Ft(.)150 5121 y Fs(readarray)870
-5230 y(readarray)45 b([-n)i Fi(count)11 b Fs(])46 b([-O)h
-Fi(origin)11 b Fs(])45 b([-s)i Fi(count)11 b Fs(])46
-b([-t])g([-u)h Fi(fd)11 b Fs(])47 b([)870 5340 y(-C)g
-Fi(callback)11 b Fs(])45 b([-c)i Fi(quantum)11 b Fs(])45
-b([)p Fi(array)11 b Fs(])p eop end
+b(on)1110 5230 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)
+e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 5340
+y(greater)32 b(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)p
+eop end
%%Page: 49 55
TeXDict begin 49 54 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(49)630 299 y(Read)35
-b(lines)g(from)f(the)h(standard)f(input)f(in)m(to)j(arra)m(y)f(v)-5
-b(ariable)36 b Fq(arra)m(y)8 b Ft(,)36 b(or)f(from)f(\014le)h(de-)630
-408 y(scriptor)30 b Fq(fd)k Ft(if)c(the)g(`)p Fs(-u)p
-Ft(')h(option)f(is)h(supplied.)630 542 y(A)f(synon)m(ym)g(for)g
-Fs(mapfile)p Ft(.)150 700 y Fs(source)870 833 y(source)46
-b Fi(filename)630 967 y Ft(A)30 b(synon)m(ym)g(for)g
-Fs(.)g Ft(\(see)i(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g
-(35\).)150 1124 y Fs(type)870 1258 y(type)47 b([-afptP])e([)p
-Fi(name)57 b Fs(...)o(])630 1391 y Ft(F)-8 b(or)41 b(eac)m(h)h
-Fq(name)5 b Ft(,)44 b(indicate)e(ho)m(w)f(it)g(w)m(ould)f(b)s(e)g(in)m
-(terpreted)h(if)g(used)f(as)h(a)g(command)630 1501 y(name.)630
-1634 y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
+b(Shell)30 b(Builtin)h(Commands)2069 b(49)630 299 y Fs(-u)30
+b Fi(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g(descriptor)h
+Fq(fd)t Ft(.)150 454 y Fs(readarray)870 563 y(readarray)45
+b([-n)i Fi(count)11 b Fs(])46 b([-O)h Fi(origin)11 b
+Fs(])45 b([-s)i Fi(count)11 b Fs(])46 b([-t])g([-u)h
+Fi(fd)11 b Fs(])47 b([)870 673 y(-C)g Fi(callback)11
+b Fs(])45 b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11
+b Fs(])630 805 y Ft(Read)35 b(lines)g(from)f(the)h(standard)f(input)f
+(in)m(to)j(arra)m(y)f(v)-5 b(ariable)36 b Fq(arra)m(y)8
+b Ft(,)36 b(or)f(from)f(\014le)h(de-)630 915 y(scriptor)30
+b Fq(fd)k Ft(if)c(the)g(`)p Fs(-u)p Ft(')h(option)f(is)h(supplied.)630
+1047 y(A)f(synon)m(ym)g(for)g Fs(mapfile)p Ft(.)150 1202
+y Fs(source)870 1334 y(source)46 b Fi(filename)630 1467
+y Ft(A)30 b(synon)m(ym)g(for)g Fs(.)g Ft(\(see)i(Section)f(4.1)g
+([Bourne)g(Shell)f(Builtins],)h(page)g(35\).)150 1622
+y Fs(type)870 1754 y(type)47 b([-afptP])e([)p Fi(name)57
+b Fs(...)o(])630 1886 y Ft(F)-8 b(or)41 b(eac)m(h)h Fq(name)5
+b Ft(,)44 b(indicate)e(ho)m(w)f(it)g(w)m(ould)f(b)s(e)g(in)m(terpreted)
+h(if)g(used)f(as)h(a)g(command)630 1996 y(name.)630 2128
+y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
Fs(type)d Ft(prin)m(ts)g(a)i(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g
-(of)h(`)p Fs(alias)p Ft(',)630 1744 y(`)p Fs(function)p
+(of)h(`)p Fs(alias)p Ft(',)630 2237 y(`)p Fs(function)p
Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p
Fs(keyword)p Ft(',)f(if)h Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e
-(function,)630 1854 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
+(function,)630 2347 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
(reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55
-b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 1963
+b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 2457
y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g
-Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 2097
+Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 2589
y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i
Fs(type)d Ft(either)h(returns)f(the)i(name)f(of)g(the)g(disk)g(\014le)g
-(that)630 2206 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
+(that)630 2699 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
(`)p Fs(-t)p Ft(')h(w)m(ould)f(not)g(return)g(`)p Fs(file)p
-Ft('.)630 2340 y(The)23 b(`)p Fs(-P)p Ft(')g(option)h(forces)g(a)g
+Ft('.)630 2831 y(The)23 b(`)p Fs(-P)p Ft(')g(option)h(forces)g(a)g
(path)f(searc)m(h)h(for)f(eac)m(h)h Fq(name)5 b Ft(,)26
b(ev)m(en)e(if)f(`)p Fs(-t)p Ft(')g(w)m(ould)g(not)h(return)630
-2450 y(`)p Fs(file)p Ft('.)630 2583 y(If)34 b(a)i(command)e(is)h
+2940 y(`)p Fs(file)p Ft('.)630 3073 y(If)34 b(a)i(command)e(is)h
(hashed,)g(`)p Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h
-(hashed)f(v)-5 b(alue,)37 b(not)e(necessarily)630 2693
+(hashed)f(v)-5 b(alue,)37 b(not)e(necessarily)630 3182
y(the)c(\014le)f(that)h(app)s(ears)f(\014rst)f(in)h Fs($PATH)p
-Ft(.)630 2826 y(If)36 b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g
+Ft(.)630 3314 y(If)36 b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g
Fs(type)f Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h
-(an)f(exe-)630 2936 y(cutable)d(named)f Fq(\014le)5 b
+(an)f(exe-)630 3424 y(cutable)d(named)f Fq(\014le)5 b
Ft(.)49 b(This)32 b(includes)h(aliases)i(and)d(functions,)i(if)f(and)f
-(only)i(if)f(the)g(`)p Fs(-p)p Ft(')630 3045 y(option)e(is)f(not)h
-(also)g(used.)630 3179 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g
+(only)i(if)f(the)g(`)p Fs(-p)p Ft(')630 3534 y(option)e(is)f(not)h
+(also)g(used.)630 3666 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g
(used,)g Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i
-(functions,)g(as)g(with)630 3289 y(the)k Fs(command)d
-Ft(builtin.)630 3422 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
+(functions,)g(as)g(with)630 3775 y(the)k Fs(command)d
+Ft(builtin.)630 3908 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
(of)f(the)h Fq(names)i Ft(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h
-(not)630 3532 y(found.)150 3689 y Fs(typeset)870 3823
+(not)630 4017 y(found.)150 4172 y Fs(typeset)870 4305
y(typeset)46 b([-afFrxi])f([-p])i([)p Fi(name)11 b Fs([=)p
-Fi(value)g Fs(])43 b(...)o(])630 3956 y Ft(The)29 b Fs(typeset)f
+Fi(value)g Fs(])43 b(...)o(])630 4437 y Ft(The)29 b Fs(typeset)f
Ft(command)h(is)g(supplied)g(for)g(compatibilit)m(y)j(with)d(the)h
-(Korn)e(shell;)j(ho)m(w-)630 4066 y(ev)m(er,)g(it)g(has)f(b)s(een)g
+(Korn)e(shell;)j(ho)m(w-)630 4546 y(ev)m(er,)g(it)g(has)f(b)s(een)g
(deprecated)h(in)f(fa)m(v)m(or)i(of)e(the)h Fs(declare)d
-Ft(builtin)i(command.)150 4224 y Fs(ulimit)870 4357 y(ulimit)46
+Ft(builtin)i(command.)150 4701 y Fs(ulimit)870 4834 y(ulimit)46
b([-abcdefilmnpqrstuvxHST])41 b([)p Fi(limit)11 b Fs(])630
-4491 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f
+4966 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f
(resources)f(a)m(v)-5 b(ailable)29 b(to)e(pro)s(cesses)f(started)h(b)m
-(y)g(the)630 4600 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e
+(y)g(the)630 5075 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e
(con)m(trol.)41 b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m
-(terpreted)630 4710 y(as)i(follo)m(ws:)630 4867 y Fs(-S)384
+(terpreted)630 5185 y(as)i(follo)m(ws:)630 5340 y Fs(-S)384
b Ft(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h
-(with)e(a)h(resource.)630 5025 y Fs(-H)384 b Ft(Change)30
-b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h
-(resource.)630 5182 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h
-(are)g(rep)s(orted.)630 5340 y Fs(-b)384 b Ft(The)30
-b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)p eop
-end
+(with)e(a)h(resource.)p eop end
%%Page: 50 56
TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(-c)384 b Ft(The)30
+b(Reference)g(Man)m(ual)630 299 y Fs(-H)384 b Ft(Change)30
+b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h
+(resource.)630 451 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h(are)
+g(rep)s(orted.)630 604 y Fs(-b)384 b Ft(The)30 b(maxim)m(um)g(so)s(c)m
+(k)m(et)i(bu\013er)e(size.)630 756 y Fs(-c)384 b Ft(The)30
b(maxim)m(um)g(size)h(of)g(core)g(\014les)f(created.)630
-475 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s
-(cess's)f(data)h(segmen)m(t.)630 651 y Fs(-e)384 b Ft(The)30
+909 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s
+(cess's)f(data)h(segmen)m(t.)630 1061 y Fs(-e)384 b Ft(The)30
b(maxim)m(um)g(sc)m(heduling)h(priorit)m(y)f(\()p Fs(")p
-Ft(nice)p Fs(")p Ft(\).)630 826 y Fs(-f)384 b Ft(The)30
+Ft(nice)p Fs(")p Ft(\).)630 1213 y Fs(-f)384 b Ft(The)30
b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)g(shell)h
-(and)f(its)h(c)m(hildren.)630 1002 y Fs(-i)384 b Ft(The)30
+(and)f(its)h(c)m(hildren.)630 1366 y Fs(-i)384 b Ft(The)30
b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e(signals.)630
-1178 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
-(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1354
+1518 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
+(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1671
y Fs(-m)384 b Ft(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g
-(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 1464
-y(limit\).)630 1640 y Fs(-n)384 b Ft(The)38 b(maxim)m(um)h(n)m(um)m(b)s
+(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 1780
+y(limit\).)630 1933 y Fs(-n)384 b Ft(The)38 b(maxim)m(um)h(n)m(um)m(b)s
(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do)1110
-1749 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)
-630 1925 y Fs(-p)384 b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630
-2101 y Fs(-q)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
-(ytes)g(in)f(POSIX)f(message)j(queues.)630 2277 y Fs(-r)384
+2042 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)
+630 2195 y Fs(-p)384 b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630
+2347 y Fs(-q)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
+(ytes)g(in)f(POSIX)f(message)j(queues.)630 2499 y Fs(-r)384
b Ft(The)30 b(maxim)m(um)g(real-time)i(sc)m(heduling)f(priorit)m(y)-8
-b(.)630 2453 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)
-630 2628 y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g
-(time)h(in)f(seconds.)630 2804 y Fs(-u)384 b Ft(The)30
+b(.)630 2652 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)
+630 2804 y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g
+(time)h(in)f(seconds.)630 2957 y Fs(-u)384 b Ft(The)30
b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5
-b(ailable)33 b(to)e(a)f(single)i(user.)630 2980 y Fs(-v)384
+b(ailable)33 b(to)e(a)f(single)i(user.)630 3109 y Fs(-v)384
b Ft(The)29 b(maxim)m(um)h(amoun)m(t)g(of)g(virtual)g(memory)g(a)m(v)-5
-b(ailable)32 b(to)e(the)g(pro)s(cess.)630 3156 y Fs(-x)384
+b(ailable)32 b(to)e(the)g(pro)s(cess.)630 3262 y Fs(-x)384
b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(\014le)f(lo)s(c)m
-(ks.)630 3332 y Fs(-T)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f
-(of)i(threads.)630 3508 y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g
+(ks.)630 3414 y Fs(-T)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f
+(of)i(threads.)630 3566 y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g
(the)g(new)f(v)-5 b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i
-(the)f(sp)s(ecial)g Fq(limit)630 3617 y Ft(v)-5 b(alues)27
+(the)f(sp)s(ecial)g Fq(limit)630 3676 y Ft(v)-5 b(alues)27
b Fs(hard)p Ft(,)g Fs(soft)p Ft(,)g(and)g Fs(unlimited)d
Ft(stand)j(for)g(the)g(curren)m(t)g(hard)f(limit,)j(the)e(curren)m(t)
-630 3727 y(soft)38 b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
+630 3786 y(soft)38 b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
b(.)66 b(A)38 b(hard)f(limit)h(cannot)h(b)s(e)e(increased)i(b)m(y)f(a)
-630 3836 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
+630 3895 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
(limit)h(ma)m(y)g(b)s(e)e(increased)h(up)f(to)i(the)f(v)-5
-b(alue)38 b(of)630 3946 y(the)c(hard)f(limit.)51 b(Otherwise,)35
+b(alue)38 b(of)630 4005 y(the)c(hard)f(limit.)51 b(Otherwise,)35
b(the)f(curren)m(t)f(v)-5 b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g
-(the)g(sp)s(eci\014ed)630 4056 y(resource)27 b(is)h(prin)m(ted,)f
+(the)g(sp)s(eci\014ed)630 4114 y(resource)27 b(is)h(prin)m(ted,)f
(unless)g(the)g(`)p Fs(-H)p Ft(')g(option)h(is)f(supplied.)38
-b(When)27 b(setting)h(new)f(limits,)630 4165 y(if)40
+b(When)27 b(setting)h(new)f(limits,)630 4224 y(if)40
b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p Fs(-S)p Ft(')h(is)f(supplied,)
i(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)g(are)g(set.)69
-b(If)630 4275 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
+b(If)630 4333 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36 b(are)f(in)g(1024-b)m
-(yte)j(incremen)m(ts,)630 4384 y(except)d(for)f(`)p Fs(-t)p
+(yte)j(incremen)m(ts,)630 4443 y(except)d(for)f(`)p Fs(-t)p
Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p Ft(',)g(whic)m(h)e
(is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)630
-4494 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
+4553 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
Ft(',)g(whic)m(h)g(are)h(unscaled)f(v)-5 b(alues.)630
-4637 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
+4684 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h(or)630
-4746 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
-150 4922 y Fs(unalias)870 5065 y(unalias)46 b([-a])g([)p
+4793 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
+150 4946 y Fs(unalias)870 5077 y(unalias)46 b([-a])g([)p
Fi(name)57 b Fs(...)47 b(])630 5208 y Ft(Remo)m(v)m(e)39
b(eac)m(h)f Fq(name)k Ft(from)36 b(the)h(list)h(of)f(aliases.)61
b(If)36 b(`)p Fs(-a)p Ft(')h(is)g(supplied,)h(all)f(aliases)i(are)630
@@ -8600,7 +8613,7 @@ b(argumen)m(ts)g(in)f(the)h(form)f(of)g(assignmen)m(t)h(statemen)m(ts)i
(command,)h(not)f(just)f(those)i(that)f(precede)g(the)1110
518 y(command)30 b(name.)630 680 y Fs(-m)384 b Ft(Job)30
b(con)m(trol)i(is)e(enabled)h(\(see)g(Chapter)f(7)g([Job)h(Con)m
-(trol],)g(page)g(87\).)630 842 y Fs(-n)384 b Ft(Read)21
+(trol],)g(page)g(89\).)630 842 y Fs(-n)384 b Ft(Read)21
b(commands)f(but)g(do)h(not)g(execute)h(them;)i(this)d(ma)m(y)g(b)s(e)f
(used)g(to)h(c)m(hec)m(k)1110 951 y(a)42 b(script)g(for)g(syn)m(tax)g
(errors.)75 b(This)41 b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m
@@ -8611,7 +8624,7 @@ Fq(option-name)5 b Ft(:)1110 1494 y Fs(allexport)1590
1875 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 2037 y Fs(emacs)240
b Ft(Use)25 b(an)f Fs(emacs)p Ft(-st)m(yle)h(line)f(editing)h(in)m
(terface)h(\(see)g(Chapter)e(8)1590 2146 y([Command)38
-b(Line)g(Editing],)i(page)f(91\).)66 b(This)37 b(also)i(a\013ects)1590
+b(Line)g(Editing],)i(page)f(93\).)66 b(This)37 b(also)i(a\013ects)1590
2256 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
Fs(read)f(-e)p Ft(.)1110 2418 y Fs(errexit)144 b Ft(Same)30
b(as)h Fs(-e)p Ft(.)1110 2579 y Fs(errtrace)96 b Ft(Same)30
@@ -8621,7 +8634,7 @@ b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 3174 y Fs(histexpand)1590
3284 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 3446 y Fs(history)144
b Ft(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h
(Section)h(9.1)1590 3555 y([Bash)d(History)g(F)-8 b(acilities],)41
-b(page)c(119.)60 b(This)36 b(option)h(is)f(on)1590 3665
+b(page)c(121.)60 b(This)36 b(option)h(is)f(on)1590 3665
y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
3827 y Fs(ignoreeof)1590 3936 y Ft(An)d(in)m(teractiv)m(e)j(shell)e
(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 4098
@@ -8714,7 +8727,7 @@ b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.)
(in)g(suc)m(h)g(cases.)630 975 y Fs(-H)384 b Ft(Enable)38
b(`)p Fs(!)p Ft(')h(st)m(yle)h(history)e(substitution)g(\(see)h
(Section)h(9.3)f([History)g(In-)1110 1084 y(teraction],)g(page)d
-(121\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
+(123\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
(teractiv)m(e)1110 1194 y(shells.)630 1368 y Fs(-P)384
b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s(olic)g(links)e
(when)g(p)s(erforming)g(commands)1110 1477 y(suc)m(h)29
@@ -8839,7 +8852,7 @@ b(an)f(in)m(teractiv)m(e)j(shell.)72 b(If)41 b(an)m(y)g(jobs)f(are)i
(running,)g(this)f(causes)1110 628 y(the)30 b(exit)g(to)g(b)s(e)f
(deferred)g(un)m(til)h(a)f(second)h(exit)g(is)g(attempted)h(without)e
(an)1110 737 y(in)m(terv)m(ening)j(command)e(\(see)h(Chapter)f(7)h
-([Job)f(Con)m(trol],)i(page)f(87\).)42 b(The)1110 847
+([Job)f(Con)m(trol],)i(page)f(89\).)42 b(The)1110 847
y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h(if)g(an)m(y)f
(jobs)g(are)h(stopp)s(ed.)630 1009 y Fs(checkwinsize)1110
1118 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j
@@ -8950,7 +8963,7 @@ y Fs(hostcomplete)1110 4643 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f
4752 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 4862 y(pleted)g(\(see)h
(Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
-(108\).)1110 4971 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+(110\).)1110 4971 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
630 5121 y Fs(huponexit)1110 5230 y Ft(If)i(set,)i(Bash)f(will)h(send)d
Fs(SIGHUP)h Ft(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
1110 5340 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
@@ -8995,7 +9008,7 @@ Fs([[)g Ft(conditional)h(com-)1110 3059 y(mands.)630
(themselv)m(es.)630 3467 y Fs(progcomp)96 b Ft(If)25
b(set,)i(the)f(programmable)g(completion)g(facilities)i(\(see)f
(Section)f(8.6)h([Pro-)1110 3577 y(grammable)45 b(Completion],)k(page)c
-(113\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
+(115\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
3686 y(enabled)30 b(b)m(y)h(default.)630 3836 y Fs(promptvars)1110
3945 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i
(expansion,)g(command)f(sub-)1110 4055 y(stitution,)34
@@ -9075,7 +9088,7 @@ b Ft(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g
(for)f(the)h Fs(cd)f Ft(builtin)g(command.)38 b(The)630
1742 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37
b(is)g(also)g(used)e(b)m(y)h(tilde)h(expansion)f(\(see)i(Section)f
-(3.5.2)h([Tilde)630 1852 y(Expansion],)30 b(page)h(18\).)150
+(3.5.2)h([Tilde)630 1852 y(Expansion],)30 b(page)h(19\).)150
2020 y Fs(IFS)336 b Ft(A)25 b(list)i(of)e(c)m(haracters)i(that)f
(separate)g(\014elds;)h(used)e(when)f(the)i(shell)f(splits)h(w)m(ords)e
(as)i(part)630 2129 y(of)31 b(expansion.)150 2297 y Fs(MAIL)288
@@ -9119,7 +9132,7 @@ b(few)g(v)-5 b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f
(in)h(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25
b(for)f(con)m(trolling)150 5168 y(the)31 b(job)f(con)m(trol)h
(facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8
-b(ariables],)32 b(page)g(90\).)150 5340 y Fs(BASH)288
+b(ariables],)32 b(page)g(92\).)150 5340 y Fs(BASH)288
b Ft(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t)
g(instance)h(of)g(Bash.)p eop end
%%Page: 62 68
@@ -9278,13 +9291,13 @@ Fs(${COMP_WORDS})c Ft(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h
(functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630
1450 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
-([Programmable)g(Completion],)630 1559 y(page)31 b(113\).)150
+([Programmable)g(Completion],)630 1559 y(page)31 b(115\).)150
1751 y Fs(COMP_LINE)630 1861 y Ft(The)38 b(curren)m(t)h(command)f
(line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5
b(ailable)41 b(only)d(in)h(shell)f(functions)630 1970
y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h
(programmable)f(completion)i(facilities)g(\(see)630 2080
-y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(113\).)150
+y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(115\).)150
2271 y Fs(COMP_POINT)630 2381 y Ft(The)25 b(index)g(of)h(the)g(curren)m
(t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of)
g(the)h(curren)m(t)630 2491 y(command.)40 b(If)27 b(the)h(curren)m(t)g
@@ -9295,7 +9308,7 @@ b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630
2710 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 2819
y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g
-(Completion],)h(page)f(113\).)150 3011 y Fs(COMP_TYPE)630
+(Completion],)h(page)f(115\).)150 3011 y Fs(COMP_TYPE)630
3121 y Ft(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h
(attempted)g(that)630 3230 y(caused)e(a)g(completion)i(function)d(to)i
@@ -9310,7 +9323,7 @@ b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28
b(only)f(in)f(shell)g(functions)g(and)g(external)630
3669 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
(completion)g(facilities)i(\(see)e(Section)g(8.6)630
-3778 y([Programmable)e(Completion],)h(page)f(113\).)150
+3778 y([Programmable)e(Completion],)h(page)f(115\).)150
3970 y Fs(COMP_KEY)96 b Ft(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
(of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e
(curren)m(t)g(completion)630 4080 y(function.)150 4271
@@ -9328,7 +9341,7 @@ h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Fs(COMP_)630
b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39
b(only)e(in)f(shell)h(func-)630 5230 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)
m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g
-(8.6)g([Pro-)630 5340 y(grammable)e(Completion],)g(page)g(113\).)p
+(8.6)g([Pro-)630 5340 y(grammable)e(Completion],)g(page)g(115\).)p
eop end
%%Page: 65 71
TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(5:)41
@@ -9337,7 +9350,7 @@ b(Shell)30 b(V)-8 b(ariables)2459 b(65)150 299 y Fs(COMPREPLY)630
g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630
518 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)
g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630
-628 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(113\).)150
+628 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(115\).)150
774 y Fs(DIRSTACK)96 b Ft(An)26 b(arra)m(y)h(v)-5 b(ariable)28
b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f
(directory)i(stac)m(k.)41 b(Direc-)630 883 y(tories)33
@@ -9398,7 +9411,7 @@ b(If)630 4098 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s
(reset.)150 4244 y Fs(histchars)630 4354 y Ft(Up)c(to)g(three)g(c)m
(haracters)i(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
(substitution,)g(and)630 4463 y(tok)m(enization)k(\(see)f(Section)f
-(9.3)h([History)f(In)m(teraction],)i(page)f(121\).)41
+(9.3)h([History)f(In)m(teraction],)i(page)f(123\).)41
b(The)29 b(\014rst)e(c)m(harac-)630 4573 y(ter)j(is)f(the)g
Fq(history)g(expansion)g Ft(c)m(haracter,)j(that)e(is,)f(the)h(c)m
(haracter)h(whic)m(h)d(signi\014es)i(the)630 4682 y(start)25
@@ -9794,7 +9807,7 @@ b Ft(\(instead)42 b(of)f(`)p Fs(~/.bashrc)p Ft('\))e(in)i(an)g(in)m
b Ft(Equiv)-5 b(alen)m(t)31 b(to)g(`)p Fs(-l)p Ft('.)150
4349 y Fs(--noediting)630 4459 y Ft(Do)h(not)e(use)h(the)g
Fl(gnu)f Ft(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)f(Line)
-g(Editing],)630 4569 y(page)h(91\))h(to)f(read)f(command)g(lines)h
+g(Editing],)630 4569 y(page)h(93\))h(to)f(read)f(command)g(lines)h
(when)e(the)i(shell)f(is)h(in)m(teractiv)m(e.)150 4735
y Fs(--noprofile)630 4845 y Ft(Don't)h(load)f(the)g(system-wide)g
(startup)f(\014le)g(`)p Fs(/etc/profile)p Ft(')e(or)j(an)m(y)g(of)g
@@ -9921,7 +9934,7 @@ b(If)26 b(no)g(commands)g(are)h(executed,)150 1930 y(the)k(exit)g
(an)h(error.)39 b(Tildes)28 b(are)g(expanded)f(in)h(\014le)g(names)g
(as)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(under)150 2540
y(Tilde)h(Expansion)g(\(see)h(Section)h(3.5.2)g([Tilde)e(Expansion],)h
-(page)g(18\).)275 2674 y(In)m(teractiv)m(e)h(shells)f(are)g(describ)s
+(page)g(19\).)275 2674 y(In)m(teractiv)m(e)h(shells)f(are)g(describ)s
(ed)e(in)h(Section)h(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(75.)
150 2872 y Fj(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f
(login)j(shell,)g(or)g(with)e(`)p Fh(--login)p Fj(')150
@@ -10083,7 +10096,7 @@ b(Shell)k(Beha)m(vior)150 3322 y Ft(When)30 b(the)h(shell)f(is)h
y(1.)61 b(Startup)37 b(\014les)g(are)h(read)f(and)g(executed)h(as)f
(describ)s(ed)g(in)g(Section)h(6.2)g([Bash)g(Startup)e(Files],)330
3563 y(page)31 b(73.)199 3695 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h
-(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(87\))g(is)f(enabled)g(b)m
+(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(89\))g(is)f(enabled)g(b)m
(y)g(default.)55 b(When)34 b(job)330 3805 y(con)m(trol)h(is)f(in)f
(e\013ect,)k(Bash)d(ignores)g(the)g(k)m(eyb)s(oard-generated)h(job)e
(con)m(trol)i(signals)g Fs(SIGTTIN)p Ft(,)330 3914 y
@@ -10099,7 +10112,7 @@ b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 4506
y(the)31 b(primary)e(prompt,)h Fs($PS1)f Ft(\(see)i(Section)g(5.2)h
([Bash)f(V)-8 b(ariables],)32 b(page)f(61\).)199 4638
y(5.)61 b(Readline)30 b(\(see)h(Chapter)e(8)h([Command)e(Line)i
-(Editing],)g(page)g(91\))h(is)f(used)f(to)h(read)f(commands)330
+(Editing],)g(page)g(93\))h(is)f(used)f(to)h(read)f(commands)330
4748 y(from)h(the)g(user's)g(terminal.)199 4879 y(6.)61
b(Bash)36 b(insp)s(ects)g(the)h(v)-5 b(alue)37 b(of)f(the)g
Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f
@@ -10107,9 +10120,9 @@ Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f
Fs(EOF)f Ft(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command)
g(\(see)330 5099 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g
(51\).)199 5230 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1)
-g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(119\))h(and)d
+g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(121\))h(and)d
(history)330 5340 y(expansion)23 b(\(see)i(Section)f(9.3)h([History)f
-(In)m(teraction],)j(page)d(121\))h(are)f(enabled)g(b)m(y)f(default.)39
+(In)m(teraction],)j(page)d(123\))h(are)f(enabled)g(b)m(y)f(default.)39
b(Bash)p eop end
%%Page: 76 82
TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31
@@ -10696,7 +10709,7 @@ b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)g(a)630
y(of)h(a)f(command)h(is)f(its)h(p)s(osition)f(in)g(the)h(history)f
(list,)i(whic)m(h)f(ma)m(y)g(include)f(commands)g(restored)g(from)150
4773 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e
-(History)h(F)-8 b(acilities],)45 b(page)40 b(119\),)j(while)d(the)f
+(History)h(F)-8 b(acilities],)45 b(page)40 b(121\),)j(while)d(the)f
(command)150 4882 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g
(the)g(sequence)h(of)f(commands)g(executed)h(during)e(the)i(curren)m(t)
f(shell)150 4992 y(session.)275 5121 y(After)35 b(the)g(string)g(is)g
@@ -10883,87 +10896,98 @@ b(Reference)g(Man)m(ual)330 299 y(consists)e(solely)g(of)g(digits)g
b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
408 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
(osition,)f(they)g(should)f(use)h(`)p Fs(-)p Ft(')g(as)g(the)g(\014rst)
-f(argumen)m(t.)154 538 y(28.)61 b(The)21 b Fs(.)h Ft(and)f
+f(argumen)m(t.)154 540 y(28.)61 b(The)21 b Fs(.)h Ft(and)f
Fs(source)f Ft(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
(directory)h(for)g(the)g(\014lename)f(argumen)m(t)330
-647 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
-Fs(PATH)p Ft(.)154 777 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h
+650 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
+Fs(PATH)p Ft(.)154 781 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h
(execute)g(command)g(substitutions)f(inherit)g(the)g(v)-5
b(alue)22 b(of)g(the)f(`)p Fs(-e)p Ft(')g(option)330
-886 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34
+891 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34
b(not)i(in)e Fl(posix)g Ft(mo)s(de,)i(Bash)f(clears)h(the)f(`)p
-Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 996 y(subshells.)154
-1125 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e
-(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 1255
+Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 1000 y(subshells.)154
+1132 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e
+(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 1263
y(31.)61 b(When)43 b(the)g Fs(alias)f Ft(builtin)g(displa)m(ys)i(alias)
g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)
-330 1364 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p
-Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 1494 y(32.)61
+330 1373 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p
+Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 1504 y(32.)61
b(When)40 b(the)g Fs(set)f Ft(builtin)h(is)g(in)m(v)m(ok)m(ed)h
(without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g
-(function)330 1603 y(names)30 b(and)g(de\014nitions.)154
-1733 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok)
+(function)330 1614 y(names)30 b(and)g(de\014nitions.)154
+1745 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok)
m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
-b(v)-5 b(alues)37 b(without)330 1842 y(quotes,)26 b(unless)d(they)i
+b(v)-5 b(alues)37 b(without)330 1855 y(quotes,)26 b(unless)d(they)i
(con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
-g(con)m(tains)i(nonprin)m(ting)330 1952 y(c)m(haracters.)154
-2081 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m
+g(con)m(tains)i(nonprin)m(ting)330 1965 y(c)m(haracters.)154
+2096 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m
(ed)i(in)d Fq(logical)41 b Ft(mo)s(de,)36 b(and)f(the)g(pathname)g
-(constructed)g(from)330 2191 y Fs($PWD)i Ft(and)h(the)h(directory)f
+(constructed)g(from)330 2206 y Fs($PWD)i Ft(and)h(the)h(directory)f
(name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g
-(an)f(existing)330 2300 y(directory)-8 b(,)32 b Fs(cd)d
+(an)f(existing)330 2315 y(directory)-8 b(,)32 b Fs(cd)d
Ft(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
-Fq(ph)m(ysical)j Ft(mo)s(de.)154 2430 y(35.)61 b(When)20
+Fq(ph)m(ysical)j Ft(mo)s(de.)154 2447 y(35.)61 b(When)20
b(the)h Fs(pwd)e Ft(builtin)h(is)g(supplied)g(the)g(`)p
Fs(-P)p Ft(')g(option,)j(it)e(resets)g Fs($PWD)e Ft(to)i(a)g(pathname)f
-(con)m(taining)330 2539 y(no)30 b(symlinks.)154 2669
+(con)m(taining)330 2556 y(no)30 b(symlinks.)154 2688
y(36.)61 b(The)36 b Fs(pwd)f Ft(builtin)h(v)m(eri\014es)h(that)g(the)f
(v)-5 b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)
-m(t)f(directory)-8 b(,)330 2778 y(ev)m(en)31 b(if)f(it)h(is)g(not)f
+m(t)f(directory)-8 b(,)330 2798 y(ev)m(en)31 b(if)f(it)h(is)g(not)f
(ask)m(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h(`)p
-Fs(-P)p Ft(')f(option.)154 2908 y(37.)61 b(When)35 b(listing)g(the)g
+Fs(-P)p Ft(')f(option.)154 2929 y(37.)61 b(When)35 b(listing)g(the)g
(history)-8 b(,)36 b(the)f Fs(fc)g Ft(builtin)f(do)s(es)g(not)h
-(include)g(an)f(indication)i(of)f(whether)f(or)330 3017
+(include)g(an)f(indication)i(of)f(whether)f(or)330 3039
y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
-3147 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
-Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 3276 y(39.)61 b(The)37
+3170 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
+Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 3302 y(39.)61 b(The)37
b Fs(type)g Ft(and)g Fs(command)f Ft(builtins)i(will)g(not)g(rep)s(ort)
f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
-3386 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
+3411 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
(execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
-g(\014le)330 3495 y(found)i(in)h Fs($PATH)p Ft(.)154
-3625 y(40.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m
+g(\014le)330 3521 y(found)i(in)h Fs($PATH)p Ft(.)154
+3652 y(40.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m
(ok)m(e)i(the)e Fs(vi)g Ft(editor)h(directly)f(when)f(the)i(`)p
-Fs(v)p Ft(')f(command)g(is)g(run,)330 3734 y(instead)e(of)f(c)m(hec)m
-(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 3864
+Fs(v)p Ft(')f(command)g(is)g(run,)330 3762 y(instead)e(of)f(c)m(hec)m
+(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 3893
y(41.)61 b(When)41 b(the)g Fs(xpg_echo)e Ft(option)i(is)g(enabled,)j
(Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
-3973 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54
+4003 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54
b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
-g(c)m(haracters)h(are)330 4083 y(con)m(v)m(erted.)154
-4212 y(42.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m
+g(c)m(haracters)h(are)330 4113 y(con)m(v)m(erted.)154
+4244 y(42.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m
(k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h(`)p Fs(-c)p
-Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)275 4361 y(There)k(is)g(other)
-h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)g(do)s(es)f(not)h
-(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)150
-4471 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199
-4600 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i
+Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)154 4376 y(43.)61
+b(The)39 b(arriv)-5 b(al)41 b(of)f Fs(SIGCHLD)e Ft(when)h(a)h(trap)g
+(is)g(set)h(on)f Fs(SIGCHLD)e Ft(do)s(es)h(not)h(in)m(terrupt)g(the)g
+Fs(wait)330 4485 y Ft(builtin)c(and)h(cause)g(it)h(to)f(return)f
+(immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j
+(for)f(eac)m(h)330 4595 y(c)m(hild)31 b(that)g(exits.)275
+4748 y(There)j(is)g(other)h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)
+g(do)s(es)f(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)
+150 4858 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199
+4989 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i
Fs($EDITOR)c Ft(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
-(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 4710 y(rather)g(than)g(defaulting)
+(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 5099 y(rather)g(than)g(defaulting)
h(directly)g(to)g Fs(ed)p Ft(.)40 b Fs(fc)30 b Ft(uses)g
-Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 4839 y(2.)61
+Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 5230 y(2.)61
b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
Fs(xpg_echo)e Ft(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
-Fs(echo)f Ft(builtin)330 4949 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
-5098 y(Bash)66 b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e
-Fl(posix)p Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66
-b(sp)s(ecifying)h(the)150 5208 y(`)p Fs(--enable-strict-posix-def)o
-(ault)o Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i
-(Section)f(10.8)150 5317 y([Optional)31 b(F)-8 b(eatures],)32
-b(page)f(127\).)p eop end
+Fs(echo)f Ft(builtin)330 5340 y(to)j(b)s(e)f(fully)g(conforman)m(t.)p
+eop end
%%Page: 87 93
-TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2571 b(87)150 299 y Fo(7)80 b(Job)54
+TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(87)275 299 y(Bash)66
+b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e Fl(posix)p
+Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66 b(sp)s(ecifying)h
+(the)150 408 y(`)p Fs(--enable-strict-posix-def)o(ault)o
+Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i(Section)f
+(10.8)150 518 y([Optional)31 b(F)-8 b(eatures],)32 b(page)f(129\).)p
+eop end
+%%Page: 88 94
+TeXDict begin 88 93 bop eop end
+%%Page: 89 95
+TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(89)150 299 y Fo(7)80 b(Job)54
b(Con)l(trol)150 521 y Ft(This)25 b(c)m(hapter)i(discusses)f(what)g
(job)f(con)m(trol)j(is,)f(ho)m(w)f(it)h(w)m(orks,)g(and)f(ho)m(w)g
(Bash)g(allo)m(ws)h(y)m(ou)g(to)g(access)150 631 y(its)k(facilities.)
@@ -11055,8 +11079,8 @@ h Fs(jobs)e Ft(command\),)k(the)d(curren)m(t)h(job)f(is)g(alw)m(a)m(ys)
i(\015agged)f(with)f(a)h(`)p Fs(+)p Ft(',)i(and)d(the)150
5340 y(previous)30 b(job)g(with)g(a)h(`)p Fs(-)p Ft('.)p
eop end
-%%Page: 88 94
-TeXDict begin 88 93 bop 150 -116 a Ft(88)2572 b(Bash)31
+%%Page: 90 96
+TeXDict begin 90 95 bop 150 -116 a Ft(90)2572 b(Bash)31
b(Reference)g(Man)m(ual)275 299 y(A)38 b(job)g(ma)m(y)h(also)g(b)s(e)f
(referred)f(to)j(using)d(a)i(pre\014x)e(of)i(the)f(name)h(used)e(to)i
(start)g(it,)i(or)e(using)f(a)150 408 y(substring)29
@@ -11133,9 +11157,9 @@ Ft(s)g(in)g(addition)h(to)g(the)f(normal)h(information.)630
(status.)630 5340 y Fs(-p)384 b Ft(List)31 b(only)f(the)h(pro)s(cess)f
Fl(id)g Ft(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)p
eop end
-%%Page: 89 95
-TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2571 b(89)630 299 y Fs(-r)384 b
+%%Page: 91 97
+TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(91)630 299 y Fs(-r)384 b
Ft(Restrict)31 b(output)f(to)i(running)c(jobs.)630 461
y Fs(-s)384 b Ft(Restrict)31 b(output)f(to)i(stopp)s(ed)d(jobs.)630
622 y(If)23 b Fq(jobsp)s(ec)28 b Ft(is)c(giv)m(en,)i(output)d(is)h
@@ -11211,8 +11235,8 @@ Ft(signal.)50 b(A)33 b(login)630 5230 y(shell)24 b(cannot)h(b)s(e)e
(susp)s(ended;)h(the)g(`)p Fs(-f)p Ft(')g(option)g(can)h(b)s(e)e(used)g
(to)i(o)m(v)m(erride)g(this)f(and)f(force)630 5340 y(the)31
b(susp)s(ension.)p eop end
-%%Page: 90 96
-TeXDict begin 90 95 bop 150 -116 a Ft(90)2572 b(Bash)31
+%%Page: 92 98
+TeXDict begin 92 97 bop 150 -116 a Ft(92)2572 b(Bash)31
b(Reference)g(Man)m(ual)275 299 y(When)f(job)f(con)m(trol)j(is)e(not)h
(activ)m(e,)i(the)d Fs(kill)f Ft(and)h Fs(wait)f Ft(builtins)g(do)h
(not)h(accept)h Fq(jobsp)s(ec)j Ft(argu-)150 408 y(men)m(ts.)41
@@ -11239,15 +11263,15 @@ Ft(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f
62 b(The)37 b(`)p Fs(substring)p Ft(')e(v)-5 b(alue)38
b(pro)m(vides)f(functionalit)m(y)i(analogous)g(to)630
1921 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f
-(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(87\).)64
+(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(89\).)64
b(If)37 b(set)h(to)h(an)m(y)630 2031 y(other)32 b(v)-5
b(alue,)32 b(the)g(supplied)e(string)i(m)m(ust)f(b)s(e)g(a)h(pre\014x)f
(of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 2140
y(pro)m(vides)e(functionalit)m(y)i(analogous)g(to)f(the)g(`)p
Fs(\045)p Ft(')f(job)g Fl(id)p Ft(.)p eop end
-%%Page: 91 97
-TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(91)150 299 y Fo(8)80
+%%Page: 93 99
+TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(93)150 299 y Fo(8)80
b(Command)54 b(Line)f(Editing)150 640 y Ft(This)28 b(c)m(hapter)i
(describ)s(es)e(the)h(basic)g(features)h(of)f(the)g Fl(gnu)f
Ft(command)h(line)g(editing)h(in)m(terface.)42 b(Com-)150
@@ -11307,7 +11331,7 @@ b Fs(DEL)p Ft(,)f Fs(ESC)p Ft(,)g Fs(LFD)p Ft(,)g Fs(SPC)p
Ft(,)g Fs(RET)p Ft(,)150 3908 y(and)d Fs(TAB)f Ft(all)j(stand)e(for)g
(themselv)m(es)i(when)d(seen)i(in)f(this)g(text,)j(or)d(in)h(an)f(init)
h(\014le)f(\(see)i(Section)f(8.3)150 4018 y([Readline)27
-b(Init)g(File],)i(page)e(94\).)41 b(If)26 b(y)m(our)h(k)m(eyb)s(oard)f
+b(Init)g(File],)i(page)e(96\).)41 b(If)26 b(y)m(our)h(k)m(eyb)s(oard)f
(lac)m(ks)i(a)f Fs(LFD)f Ft(k)m(ey)-8 b(,)29 b(t)m(yping)e
Fs(C-j)e Ft(will)i(pro)s(duce)f(the)150 4128 y(desired)k(c)m(haracter.)
42 b(The)30 b Fs(RET)g Ft(k)m(ey)h(ma)m(y)g(b)s(e)e(lab)s(eled)i
@@ -11331,8 +11355,8 @@ Fs(RET)p Ft(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
Fs(RET)p Ft(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 5340
y(within)c(the)g(line.)p eop end
-%%Page: 92 98
-TeXDict begin 92 97 bop 150 -116 a Ft(92)2572 b(Bash)31
+%%Page: 94 100
+TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fj(8.2.1)63 b(Readline)40
b(Bare)h(Essen)m(tials)150 446 y Ft(In)31 b(order)h(to)h(en)m(ter)g(c)m
(haracters)g(in)m(to)g(the)g(line,)g(simply)e(t)m(yp)s(e)i(them.)46
@@ -11400,9 +11424,9 @@ b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
(haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
5340 y(w)m(ords.)p eop end
-%%Page: 93 99
-TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(93)150 299 y Fj(8.2.3)63
+%%Page: 95 101
+TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(95)150 299 y Fj(8.2.3)63
b(Readline)40 b(Killing)i(Commands)150 446 y Fq(Killing)35
b Ft(text)28 b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i
(but)e(to)h(sa)m(v)m(e)h(it)g(a)m(w)m(a)m(y)g(for)e(later)i(use,)f
@@ -11476,12 +11500,12 @@ b(on)e(the)h(input)e(line.)150 4974 y Fj(8.2.5)63 b(Searc)m(hing)40
b(for)i(Commands)g(in)f(the)g(History)150 5121 y Ft(Readline)35
b(pro)m(vides)f(commands)g(for)g(searc)m(hing)h(through)e(the)i
(command)f(history)g(\(see)h(Section)g(9.1)150 5230 y([Bash)i(History)h
-(F)-8 b(acilities],)42 b(page)37 b(119\))i(for)d(lines)h(con)m(taining)
+(F)-8 b(acilities],)42 b(page)37 b(121\))i(for)d(lines)h(con)m(taining)
i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36 b(are)i(t)m(w)m(o)150
5340 y(searc)m(h)31 b(mo)s(des:)40 b Fq(incremen)m(tal)35
b Ft(and)30 b Fq(non-incremen)m(tal)p Ft(.)p eop end
-%%Page: 94 100
-TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31
+%%Page: 96 102
+TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31
b(Reference)g(Man)m(ual)275 299 y(Incremen)m(tal)26 b(searc)m(hes)h(b)s
(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e(t)m(yping)i(the)g
(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150 408 y(c)m(haracter)37
@@ -11558,7 +11582,7 @@ b(lines)h(are)150 4620 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
(a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41
b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)150
4730 y(conditional)e(constructs)f(\(see)g(Section)h(8.3.2)g
-([Conditional)g(Init)e(Constructs],)j(page)e(100\).)64
+([Conditional)g(Init)e(Constructs],)j(page)e(102\).)64
b(Other)150 4839 y(lines)31 b(denote)g(v)-5 b(ariable)31
b(settings)g(and)f(k)m(ey)h(bindings.)150 5011 y(V)-8
b(ariable)32 b(Settings)630 5121 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
@@ -11567,9 +11591,9 @@ b(ariable)32 b(Settings)630 5121 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
b(in)f(Readline)i(using)e(the)g Fs(set)g Ft(command)g(within)g(the)h
(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 5340 y(is)d(simple:)p
eop end
-%%Page: 95 101
-TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(95)870 299 y Fs(set)47
+%%Page: 97 103
+TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(97)870 299 y Fs(set)47
b Fi(variable)56 b(value)630 445 y Ft(Here,)29 b(for)e(example,)h(is)g
(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default)h(Emacs-lik)m(e)h(k)m
(ey)f(binding)e(to)630 555 y(use)k Fs(vi)g Ft(line)h(editing)g
@@ -11633,8 +11657,8 @@ b(alue)1110 5230 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
5340 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
Fs(100)p Ft(.)p eop end
-%%Page: 96 102
-TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31
+%%Page: 98 104
+TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y Fs(convert-meta)1110
408 y Ft(If)22 b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m
(v)m(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
@@ -11666,325 +11690,331 @@ Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g(try)f(to)
h(enable)g(the)f(application)i(k)m(eypad)1110 2685 y(when)h(it)h(is)f
(called.)41 b(Some)27 b(systems)f(need)h(this)f(to)h(enable)g(the)g
(arro)m(w)g(k)m(eys.)1110 2795 y(The)j(default)g(is)h(`)p
-Fs(off)p Ft('.)630 2953 y Fs(expand-tilde)1110 3063 y
-Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f(p)s
-(erformed)f(when)h(Readline)h(attempts)1110 3173 y(w)m(ord)i
-(completion.)42 b(The)30 b(default)g(is)h(`)p Fs(off)p
-Ft('.)630 3331 y Fs(history-preserve-point)1110 3440
-y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s(de)g
-(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110
-3550 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
-(cation)i(on)e(eac)m(h)h(history)g(line)1110 3660 y(retriev)m(ed)h
-(with)f Fs(previous-history)c Ft(or)37 b Fs(next-history)p
-Ft(.)55 b(The)36 b(default)1110 3769 y(is)30 b(`)p Fs(off)p
-Ft('.)630 3927 y Fs(history-size)1110 4037 y Ft(Set)39
-b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g(en)m(tries)h(sa)m
-(v)m(ed)g(in)f(the)g(history)1110 4147 y(list.)53 b(If)34
-b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g(en)m(tries)h(in)f
-(the)h(history)f(list)h(is)g(not)1110 4256 y(limited.)630
-4415 y Fs(horizontal-scroll-mode)1110 4524 y Ft(This)g(v)-5
-b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
-Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
-b(it)g(to)h(`)p Fs(on)p Ft(')1110 4634 y(means)26 b(that)h(the)f(text)h
+Fs(off)p Ft('.)630 2953 y Fs(enable-meta-key)1110 3063
+y Ft(When)40 b(set)g(to)g(`)p Fs(on)p Ft(',)j(Readline)d(will)g(try)g
+(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110 3173
+y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h(is)g
+(called.)76 b(On)41 b(man)m(y)1110 3282 y(terminals,)c(the)e(meta)h(k)m
+(ey)g(is)f(used)g(to)h(send)e(eigh)m(t-bit)j(c)m(haracters.)56
+b(The)1110 3392 y(default)31 b(is)f(`)p Fs(on)p Ft('.)630
+3550 y Fs(expand-tilde)1110 3660 y Ft(If)d(set)h(to)h(`)p
+Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
+(Readline)h(attempts)1110 3769 y(w)m(ord)i(completion.)42
+b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 3927
+y Fs(history-preserve-point)1110 4037 y Ft(If)41 b(set)h(to)h(`)p
+Fs(on)p Ft(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f
+(p)s(oin)m(t)f(\(the)1110 4147 y(curren)m(t)35 b(cursor)g(p)s
+(osition\))g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g
+(line)1110 4256 y(retriev)m(ed)h(with)f Fs(previous-history)c
+Ft(or)37 b Fs(next-history)p Ft(.)55 b(The)36 b(default)1110
+4366 y(is)30 b(`)p Fs(off)p Ft('.)630 4524 y Fs(history-size)1110
+4634 y Ft(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
+(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 4743
+y(list.)53 b(If)34 b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g
+(en)m(tries)h(in)f(the)h(history)f(list)h(is)g(not)1110
+4853 y(limited.)630 5011 y Fs(horizontal-scroll-mode)1110
+5121 y Ft(This)g(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
+(`)p Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
+b(it)g(to)h(`)p Fs(on)p Ft(')1110 5230 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 4743 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 4853
-y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 4963 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
-5121 y Fs(input-meta)1110 5230 y Ft(If)f(set)g(to)h(`)p
-Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 5340 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
-(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)p
-eop end
-%%Page: 97 103
-TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(97)1110 299 y(terminal)40
-b(claims)h(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5
-b(alue)40 b(is)g(`)p Fs(off)p Ft('.)69 b(The)1110 408
+(tally)1110 5340 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)p eop end
+%%Page: 99 105
+TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(99)1110 299 y(screen,)27
+b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g(line.)39
+b(By)27 b(default,)g(this)1110 408 y(v)-5 b(ariable)31
+b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630 567 y Fs(input-meta)1110
+676 y Ft(If)f(set)g(to)h(`)p Fs(on)p Ft(',)g(Readline)g(will)f(enable)h
+(eigh)m(t-bit)h(input)d(\(it)i(will)f(not)h(clear)1110
+786 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h(c)m(haracters)h(it)f
+(reads\),)j(regardless)c(of)h(what)g(the)1110 896 y(terminal)g(claims)h
+(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5
+b(alue)40 b(is)g(`)p Fs(off)p Ft('.)69 b(The)1110 1005
y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5
-b(ariable.)630 579 y Fs(isearch-terminators)1110 689
+b(ariable.)630 1163 y Fs(isearch-terminators)1110 1273
y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j
-(an)f(incremen)m(tal)1110 798 y(searc)m(h)25 b(without)g(subsequen)m
+(an)f(incremen)m(tal)1110 1383 y(searc)m(h)25 b(without)g(subsequen)m
(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110
-908 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i(page)c(93\).)73
-b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110 1017
+1492 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i(page)c(95\).)73
+b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110 1602
y(b)s(een)35 b(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h
Fs(ESC)d Ft(and)h Fi(C-J)g Ft(will)h(terminate)g(an)1110
-1127 y(incremen)m(tal)c(searc)m(h.)630 1297 y Fs(keymap)192
+1711 y(incremen)m(tal)c(searc)m(h.)630 1870 y Fs(keymap)192
b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 1407 y(mands.)81
+(for)g(k)m(ey)g(binding)f(com-)1110 1979 y(mands.)81
b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h Fs(emacs)p
-Ft(,)i Fs(emacs-standard)p Ft(,)1110 1517 y Fs(emacs-meta)p
+Ft(,)i Fs(emacs-standard)p Ft(,)1110 2089 y Fs(emacs-meta)p
Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p
-Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 1626 y Fs(vi-insert)p
+Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 2198 y Fs(vi-insert)p
Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e
Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110
-1736 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
+2308 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
b(alue)32 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 1845 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 2016
-y Fs(mark-directories)1110 2125 y Ft(If)38 b(set)g(to)h(`)p
+b(of)f(the)1110 2418 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
+b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 2576
+y Fs(mark-directories)1110 2685 y Ft(If)38 b(set)g(to)h(`)p
Fs(on)p Ft(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
-g(app)s(ended.)1110 2235 y(The)30 b(default)g(is)h(`)p
-Fs(on)p Ft('.)630 2405 y Fs(mark-modified-lines)1110
-2515 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
+g(app)s(ended.)1110 2795 y(The)30 b(default)g(is)h(`)p
+Fs(on)p Ft('.)630 2953 y Fs(mark-modified-lines)1110
+3063 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
Fs(on)p Ft(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
-2625 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g
+3173 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g
(lines)g(whic)m(h)f(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110
-2734 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g
-(default.)630 2905 y Fs(mark-symlinked-directori)o(es)1110
-3014 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f
+3282 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g
+(default.)630 3440 y Fs(mark-symlinked-directori)o(es)1110
+3550 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f
(whic)m(h)f(are)h(sym)m(b)s(olic)g(links)g(to)g(di-)1110
-3124 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5
+3660 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5
b(ject)47 b(to)g(the)f(v)-5 b(alue)47 b(of)f Fs(mark-)1110
-3233 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 3404 y Fs(match-hidden-files)1110
-3513 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
+3769 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 3927 y Fs(match-hidden-files)1110
+4037 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
Fs(on)p Ft(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose)
-1110 3623 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p
+1110 4147 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p
Ft(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110
-3733 y(completion,)j(unless)41 b(the)g(leading)h(`)p
+4256 y(completion,)j(unless)41 b(the)g(leading)h(`)p
Fs(.)p Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110
-3842 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
+4366 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
b(v)-5 b(ariable)31 b(is)f(`)p Fs(on)p Ft(')h(b)m(y)f(default.)630
-4013 y Fs(output-meta)1110 4122 y Ft(If)35 b(set)h(to)g(`)p
+4524 y Fs(output-meta)1110 4634 y Ft(If)35 b(set)h(to)g(`)p
Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m(haracters)i(with)e
-(the)h(eigh)m(th)g(bit)1110 4232 y(set)h(directly)g(rather)f(than)g(as)
+(the)h(eigh)m(th)g(bit)1110 4743 y(set)h(directly)g(rather)f(than)g(as)
h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59 b(The)1110
-4341 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 4512
-y Fs(page-completions)1110 4622 y Ft(If)j(set)i(to)f(`)p
+4853 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 5011
+y Fs(page-completions)1110 5121 y Ft(If)j(set)i(to)f(`)p
Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
-4731 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+5230 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110
-4841 y(b)m(y)e(default.)630 5011 y Fs(print-completions-horizo)o(ntal)o
-(ly)1110 5121 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
+5340 y(b)m(y)e(default.)p eop end
+%%Page: 100 106
+TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(print-completions-horizo)o(ntal)o
+(ly)1110 408 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
-5230 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
-(than)g(do)m(wn)g(the)h(screen.)1110 5340 y(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)p eop end
-%%Page: 98 104
-TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(revert-all-at-newline)1110
-408 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f
+518 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 628 y(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 788 y Fs(revert-all-at-newline)1110
+897 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f
(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
-518 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41
-b(By)29 b(default,)g(history)g(lines)1110 628 y(ma)m(y)42
+1007 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 1117 y(ma)m(y)42
b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
-(across)g(calls)h(to)1110 737 y Fs(readline)p Ft(.)38
-b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 902
-y Fs(show-all-if-ambiguous)1110 1011 y Ft(This)f(alters)i(the)f
+(across)g(calls)h(to)1110 1226 y Fs(readline)p Ft(.)38
+b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 1386
+y Fs(show-all-if-ambiguous)1110 1496 y Ft(This)f(alters)i(the)f
(default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
-b(If)29 b(set)1110 1121 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)
+b(If)29 b(set)1110 1606 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)
g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)
-1110 1230 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
-(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 1340 y(The)30
+1110 1715 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
+(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 1825 y(The)30
b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630
-1504 y Fs(show-all-if-unmodified)1110 1614 y Ft(This)38
+1985 y Fs(show-all-if-unmodified)1110 2094 y Ft(This)38
b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h
-(functions)e(in)h(a)1110 1724 y(fashion)25 b(similar)g(to)h
+(functions)e(in)h(a)1110 2204 y(fashion)25 b(similar)g(to)h
Fq(sho)m(w-all-if-am)m(biguous)t Ft(.)41 b(If)24 b(set)i(to)f(`)p
-Fs(on)p Ft(',)i(w)m(ords)d(whic)m(h)1110 1833 y(ha)m(v)m(e)32
+Fs(on)p Ft(',)i(w)m(ords)d(whic)m(h)1110 2314 y(ha)m(v)m(e)32
b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s
-(ossible)f(par-)1110 1943 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
-f(completions)h(don't)f(share)g(a)h(common)1110 2052
+(ossible)f(par-)1110 2423 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 2533
y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g
-(immediately)i(instead)e(of)h(ring-)1110 2162 y(ing)g(the)f(b)s(ell.)41
+(immediately)i(instead)e(of)h(ring-)1110 2642 y(ing)g(the)f(b)s(ell.)41
b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p
-Ft('.)630 2326 y Fs(skip-completed-text)1110 2436 y Ft(If)i(set)i(to)f
+Ft('.)630 2803 y Fs(skip-completed-text)1110 2912 y Ft(If)i(set)i(to)f
(`)p Fs(on)p Ft(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s
-(eha)m(vior)f(when)f(in-)1110 2545 y(serting)d(a)h(single)g(matc)m(h)f
+(eha)m(vior)f(when)f(in-)1110 3022 y(serting)d(a)h(single)g(matc)m(h)f
(in)m(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s
-(erform-)1110 2655 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f
+(erform-)1110 3131 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f
(w)m(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110
-2765 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
-(that)f(matc)m(h)g(c)m(haracters)1110 2874 y(after)c(p)s(oin)m(t)g(in)g
+3241 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
+(that)f(matc)m(h)g(c)m(haracters)1110 3351 y(after)c(p)s(oin)m(t)g(in)g
(the)g(w)m(ord)f(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g
-(w)m(ord)1110 2984 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
+(w)m(ord)1110 3460 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
-3093 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
-(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 3203 y(`)p Fs(Makefile)p
+3570 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
+(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 3679 y(`)p Fs(Makefile)p
Ft(')c(will)i(result)f(in)g(`)p Fs(Makefile)p Ft(')f(rather)h(than)h(`)
-p Fs(Makefilefile)p Ft(',)1110 3313 y(assuming)d(there)g(is)h(a)f
+p Fs(Makefilefile)p Ft(',)1110 3789 y(assuming)d(there)g(is)h(a)f
(single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5
-b(alue)1110 3422 y(is)30 b(`)p Fs(off)p Ft('.)630 3587
-y Fs(visible-stats)1110 3696 y Ft(If)h(set)i(to)f(`)p
+b(alue)1110 3898 y(is)30 b(`)p Fs(off)p Ft('.)630 4059
+y Fs(visible-stats)1110 4168 y Ft(If)h(set)i(to)f(`)p
Fs(on)p Ft(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s
-(e)g(is)g(app)s(ended)e(to)j(the)1110 3806 y(\014lename)e(when)e
+(e)g(is)g(app)s(ended)e(to)j(the)1110 4278 y(\014lename)e(when)e
(listing)i(p)s(ossible)f(completions.)42 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)150 3970 y(Key)f(Bindings)630 4080 y(The)41
+Fs(off)p Ft('.)150 4438 y(Key)f(Bindings)630 4548 y(The)41
b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
(init)g(\014le)g(is)g(simple.)75 b(First)43 b(y)m(ou)630
-4189 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
+4657 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630
-4299 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
+4767 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
(the)e(default)g(k)m(eybinding,)h(if)f(an)m(y)-8 b(,)630
-4408 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
-(do)s(es.)630 4545 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+4876 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
+(do)s(es.)630 5011 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g(the)g(init)630
-4655 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
+5121 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)630
-4765 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+5230 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
-(and)630 4874 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(and)630 5340 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
-b(The)40 b(name)h(of)630 4984 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
-(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
-(what)h(y)m(ou)g(\014nd)e(most)630 5093 y(comfortable.)630
-5230 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
-(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
-5340 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
-(\(a)h Fq(macro)5 b Ft(\).)p eop end
-%%Page: 99 105
-TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(99)630 299 y(The)42
+b(The)40 b(name)h(of)p eop end
+%%Page: 101 107
+TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(101)630 299 y(the)35
+b(k)m(ey)g(can)g(b)s(e)f(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)
+h(dep)s(ending)d(on)h(what)h(y)m(ou)g(\014nd)e(most)630
+408 y(comfortable.)630 538 y(In)i(addition)h(to)h(command)f(names,)i
+(readline)e(allo)m(ws)h(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f
+(string)630 648 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f
+(pressed)g(\(a)h Fq(macro)5 b Ft(\).)630 778 y(The)42
b Fs(bind)30 b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g
-(names)g(and)f(bindings)g(in)h(a)630 408 y(format)37
+(names)g(and)f(bindings)g(in)h(a)630 887 y(format)37
b(that)h(can)f(put)f(directly)i(in)m(to)g(an)f(initialization)j
-(\014le.)60 b(See)38 b(Section)f(4.2)i([Bash)630 518
-y(Builtins],)31 b(page)g(41.)630 681 y Fq(k)m(eyname)5
+(\014le.)60 b(See)38 b(Section)f(4.2)i([Bash)630 997
+y(Builtins],)31 b(page)g(41.)630 1147 y Fq(k)m(eyname)5
b Ft(:)42 b Fq(function-name)35 b Ft(or)c Fq(macro)1110
-790 y(k)m(eyname)k Ft(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
+1257 y(k)m(eyname)k Ft(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
(elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350
-926 y Fs(Control-u:)45 b(universal-argument)1350 1036
-y(Meta-Rubout:)f(backward-kill-word)1350 1145 y(Control-o:)h(">)i
-(output")1110 1281 y Ft(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)h
+1387 y Fs(Control-u:)45 b(universal-argument)1350 1496
+y(Meta-Rubout:)f(backward-kill-word)1350 1606 y(Control-o:)h(">)i
+(output")1110 1736 y Ft(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)h
Fi(C-u)d Ft(is)h(b)s(ound)d(to)k(the)e(function)h Fs(universal-)1110
-1391 y(argument)p Ft(,)f Fi(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g
-(function)g Fs(backward-kill-word)p Ft(,)1110 1501 y(and)g
+1845 y(argument)p Ft(,)f Fi(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g
+(function)g Fs(backward-kill-word)p Ft(,)1110 1955 y(and)g
Fi(C-o)g Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f
-(the)i(righ)m(t)f(hand)1110 1610 y(side)30 b(\(that)i(is,)e(to)h
+(the)i(righ)m(t)f(hand)1110 2064 y(side)30 b(\(that)i(is,)e(to)h
(insert)g(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g
-(line\).)1110 1746 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m
+(line\).)1110 2194 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m
(haracter)i(names)e(are)g(recognized)h(while)f(pro-)1110
-1856 y(cessing)22 b(this)g(k)m(ey)g(binding)e(syn)m(tax:)37
+2304 y(cessing)22 b(this)g(k)m(ey)g(binding)e(syn)m(tax:)37
b Fq(DEL)p Ft(,)22 b Fq(ESC)8 b Ft(,)20 b Fq(ESCAPE)5
-b Ft(,)21 b Fq(LFD)5 b Ft(,)22 b Fq(NEW-)1110 1965 y(LINE)5
+b Ft(,)21 b Fq(LFD)5 b Ft(,)22 b Fq(NEW-)1110 2414 y(LINE)5
b Ft(,)31 b Fq(RET)7 b Ft(,)29 b Fq(RETURN)10 b Ft(,)30
b Fq(R)m(UBOUT)7 b Ft(,)31 b Fq(SP)-8 b(A)m(CE)5 b Ft(,)31
b Fq(SPC)8 b Ft(,)29 b(and)h Fq(T)-8 b(AB)5 b Ft(.)630
-2128 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41 b Fq(function-name)36
-b Ft(or)30 b Fq(macro)1110 2237 y(k)m(eyseq)k Ft(di\013ers)d(from)f
+2564 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41 b Fq(function-name)36
+b Ft(or)30 b Fq(macro)1110 2673 y(k)m(eyseq)k Ft(di\013ers)d(from)f
Fq(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
-(denoting)g(an)g(en-)1110 2347 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
+(denoting)g(an)g(en-)1110 2783 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
(e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)
-1110 2457 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h
+1110 2892 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h
Ft(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
-1110 2566 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
-(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 2676 y(recognized.)1350
-2812 y Fs("\\C-u":)46 b(universal-argument)1350 2921
-y("\\C-x\\C-r":)f(re-read-init-file)1350 3031 y("\\e[11~":)g("Function)
-h(Key)g(1")1110 3167 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+1110 3002 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
+(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 3112 y(recognized.)1350
+3242 y Fs("\\C-u":)46 b(universal-argument)1350 3351
+y("\\C-x\\C-r":)f(re-read-init-file)1350 3461 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 3591 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
b Fi(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
-3277 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
-(the)f(\014rst)g(example\),)49 b(`)p Fi(C-x)1110 3386
+3700 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fi(C-x)1110 3810
y(C-r)p Ft(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
Fs(re-read-init-file)p Ft(,)c(and)j(`)p Fs(ESC)h([)g(1)g(1)1110
-3496 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
-Fs(Function)e(Key)g(1)p Ft('.)630 3658 y(The)g(follo)m(wing)i
+3919 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
+Fs(Function)e(Key)g(1)p Ft('.)630 4070 y(The)g(follo)m(wing)i
Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
-b(ailable)32 b(when)d(sp)s(ecifying)630 3768 y(k)m(ey)i(sequences:)630
-3930 y Fi(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630
-4093 y Fi(\\M-)336 b Ft(meta)31 b(pre\014x)630 4255 y
+b(ailable)32 b(when)d(sp)s(ecifying)630 4179 y(k)m(ey)i(sequences:)630
+4329 y Fi(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630
+4479 y Fi(\\M-)336 b Ft(meta)31 b(pre\014x)630 4630 y
Fi(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
-4418 y Fi(\\\\)384 b Ft(bac)m(kslash)630 4580 y Fi(\\)p
+4780 y Fi(\\\\)384 b Ft(bac)m(kslash)630 4930 y Fi(\\)p
Fs(")g(")p Ft(,)30 b(a)h(double)f(quotation)i(mark)630
-4743 y Fi(\\')384 b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s
-(ostrophe)630 4905 y(In)d(addition)h(to)g(the)g Fl(gnu)f
+5080 y Fi(\\')384 b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s
+(ostrophe)630 5230 y(In)d(addition)h(to)g(the)g Fl(gnu)f
Ft(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
-(bac)m(kslash)630 5015 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
-5177 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 5340
-y Fs(\\b)384 b Ft(bac)m(kspace)p eop end
-%%Page: 100 106
-TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(\\d)384 b Ft(delete)630
-451 y Fs(\\f)g Ft(form)30 b(feed)630 604 y Fs(\\n)384
-b Ft(newline)630 757 y Fs(\\r)g Ft(carriage)32 b(return)630
-909 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 1062
-y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 1214 y Fs(\\)p
-Fi(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
-b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fq(nnn)e
-Ft(\(one)i(to)1110 1324 y(three)c(digits\))630 1477 y
-Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e
-(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40
-b Fq(HH)1110 1586 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-1739 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
-(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
-1848 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
-b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
-b(In)630 1958 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
-b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
-(are)e(expanded.)37 b(Bac)m(kslash)630 2067 y(will)j(quote)h(an)m(y)f
-(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
+(bac)m(kslash)630 5340 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)p
+eop end
+%%Page: 102 108
+TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(\\a)384 b Ft(alert)31
+b(\(b)s(ell\))630 460 y Fs(\\b)384 b Ft(bac)m(kspace)630
+621 y Fs(\\d)g Ft(delete)630 782 y Fs(\\f)g Ft(form)30
+b(feed)630 943 y Fs(\\n)384 b Ft(newline)630 1104 y Fs(\\r)g
+Ft(carriage)32 b(return)630 1266 y Fs(\\t)384 b Ft(horizon)m(tal)32
+b(tab)630 1427 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
+1588 y Fs(\\)p Fi(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g
+(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5
+b(alue)35 b Fq(nnn)e Ft(\(one)i(to)1110 1697 y(three)c(digits\))630
+1858 y Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
+(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
+b(alue)40 b Fq(HH)1110 1968 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 2129 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
+(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)
+630 2239 y(indicate)23 b(a)e(macro)h(de\014nition.)38
+b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f
+(name.)38 b(In)630 2348 y(the)22 b(macro)f(b)s(o)s(dy)-8
+b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m
+(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2458 y(will)j(quote)h(an)m
+(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8
-b(or)630 2177 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+b(or)630 2568 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
(mak)m(e)h(`)p Fi(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
-Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 2308 y Fs("\\C-x\\\\":)45
-b("\\\\")150 2501 y Fj(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-150 2647 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
+Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 2703 y Fs("\\C-x\\\\":)45
+b("\\\\")150 2904 y Fj(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+150 3051 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
(in)g(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150
-2757 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
+3160 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
(bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s
-(erformed)f(as)i(the)150 2867 y(result)f(of)h(tests.)41
+(erformed)f(as)i(the)150 3270 y(result)f(of)h(tests.)41
b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150
-3019 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
+3432 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
-(the)630 3129 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(the)630 3542 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
-630 3238 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+630 3651 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
-3391 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g
+3812 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g
Fs($if)f Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)
-1110 3501 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
+1110 3922 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
-3610 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
-(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 3720 y(standard)23
+4031 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
+(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 4141 y(standard)23
b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
-(starting)h(out)1110 3829 y(in)k Fs(emacs)f Ft(mo)s(de.)630
-3982 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
+(starting)h(out)1110 4251 y(in)k Fs(emacs)f Ft(mo)s(de.)630
+4412 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
(used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110
-4092 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
-(output)g(b)m(y)g(the)g(terminal's)1110 4201 y(function)24
+4521 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 4631 y(function)24
b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
-(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 4311
+(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 4741
y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
-(ortion)e(of)h(the)g(terminal)1110 4420 y(name)k(b)s(efore)f(the)g
+(ortion)e(of)h(the)g(terminal)1110 4850 y(name)k(b)s(efore)f(the)g
(\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i
Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
-4530 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 4682 y
-Fs(application)1110 4792 y Ft(The)21 b Fq(application)j
+4960 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 5121 y
+Fs(application)1110 5230 y Ft(The)21 b Fq(application)j
Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 4902 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
-(Readline)g(library)g(sets)g(the)g Fq(application)1110
-5011 y(name)5 b Ft(,)25 b(and)d(y)m(ou)h(can)g(test)h(for)e(a)h
-(particular)h(v)-5 b(alue.)38 b(This)22 b(could)h(b)s(e)f(used)g(to)
-1110 5121 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g
-(for)h(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110
-5230 y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)
-f(sequence)h(that)f(quotes)1110 5340 y(the)e(curren)m(t)f(or)g
-(previous)g(w)m(ord)g(in)g(Bash:)p eop end
-%%Page: 101 107
-TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(101)1350 299 y Fs($if)47
-b(Bash)1350 408 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
-518 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 628 y($endif)150
-787 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
-(previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150
-946 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i(the)
-f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g(fails.)
-150 1106 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m(es)g(a)e
+(set-)1110 5340 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(Readline)g(library)g(sets)g(the)g Fq(application)p eop
+end
+%%Page: 103 109
+TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(103)1110 299 y Fq(name)5
+b Ft(,)25 b(and)d(y)m(ou)h(can)g(test)h(for)e(a)h(particular)h(v)-5
+b(alue.)38 b(This)22 b(could)h(b)s(e)f(used)g(to)1110
+408 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h(a)
+g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 518 y(instance,)35
+b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f(sequence)h(that)f
+(quotes)1110 628 y(the)e(curren)m(t)f(or)g(previous)g(w)m(ord)g(in)g
+(Bash:)1350 762 y Fs($if)47 b(Bash)1350 872 y(#)g(Quote)g(the)g
+(current)f(or)h(previous)e(word)1350 981 y("\\C-xq":)h
+("\\eb\\"\\ef\\"")1350 1091 y($endif)150 1250 y($endif)192
+b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g(previous)g(example,)h
+(terminates)g(an)g Fs($if)e Ft(command.)150 1410 y Fs($else)240
+b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i(the)f
+Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g(fails.)
+150 1569 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m(es)g(a)e
(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g(commands)
-630 1215 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+630 1679 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
-(from)630 1325 y(`)p Fs(/etc/inputrc)p Ft(':)870 1460
-y Fs($include)46 b(/etc/inputrc)150 1659 y Fj(8.3.3)63
-b(Sample)41 b(Init)g(File)150 1806 y Ft(Here)27 b(is)f(an)h(example)g
+(from)630 1788 y(`)p Fs(/etc/inputrc)p Ft(':)870 1923
+y Fs($include)46 b(/etc/inputrc)150 2122 y Fj(8.3.3)63
+b(Sample)41 b(Init)g(File)150 2269 y Ft(Here)27 b(is)f(an)h(example)g
(of)f(an)h Fq(inputrc)k Ft(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)
h(binding,)e(v)-5 b(ariable)27 b(assignmen)m(t,)i(and)150
-1915 y(conditional)j(syn)m(tax.)p eop end
-%%Page: 102 108
-TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31
+2379 y(conditional)j(syn)m(tax.)p eop end
+%%Page: 104 110
+TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31
b(Reference)g(Man)m(ual)390 408 y Fs(#)47 b(This)g(file)g(controls)e
(the)i(behaviour)e(of)j(line)e(input)h(editing)e(for)390
518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h(Readline)f(library.)93
@@ -12013,9 +12043,9 @@ y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)390
4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
-%%Page: 103 109
-TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(103)390 299 y Fs(#"\\M-\\C-[A":)
+%%Page: 105 111
+TeXDict begin 105 110 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(105)390 299 y Fs(#"\\M-\\C-[A":)
331 b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
y(#)g(An)h(old-style)d(binding.)93 b(This)47 b(happens)f(to)h(be)g(the)
@@ -12048,8 +12078,8 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
(completion-query-items)42 b(150)p eop end
-%%Page: 104 110
-TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31
+%%Page: 106 112
+TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31
b(Reference)g(Man)m(ual)390 299 y Fs(#)47 b(For)g(FTP)390
408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
@@ -12097,9 +12127,9 @@ b(ords)35 b(are)g(delimited)630 4683 y(b)m(y)30 b(non-quoted)h(shell)f
b(\(\))630 5322 y Ft(Refresh)30 b(the)g(curren)m(t)h(line.)41
b(By)30 b(default,)h(this)f(is)h(un)m(b)s(ound.)p eop
end
-%%Page: 105 111
-TeXDict begin 105 110 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(105)150 299 y Fj(8.4.2)63
+%%Page: 107 113
+TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fj(8.4.2)63
b(Commands)42 b(F)-10 b(or)41 b(Manipulating)h(The)f(History)150
473 y Fs(accept-line)27 b(\(Newline)h(or)i(Return\))630
582 y Ft(Accept)25 b(the)e(line)h(regardless)g(of)f(where)g(the)h
@@ -12160,8 +12190,8 @@ m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630
5340 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
Fq(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)p
eop end
-%%Page: 106 112
-TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31
+%%Page: 108 114
+TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y(command.)48 b(Once)33
b(the)g(argumen)m(t)h Fq(n)e Ft(is)h(computed,)h(the)f(argumen)m(t)g
(is)g(extracted)i(as)e(if)630 408 y(the)e(`)p Fs(!)p
@@ -12222,9 +12252,9 @@ b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m
(ercase)630 5340 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
(v)m(e)i(the)f(cursor.)p eop end
-%%Page: 107 113
-TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fs(capitalize-word)
+%%Page: 109 115
+TeXDict begin 109 114 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(109)150 299 y Fs(capitalize-word)
26 b(\(M-c\))630 408 y Ft(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)
m(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h
(capitalize)630 518 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
@@ -12284,8 +12314,8 @@ b(killed)h(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150
y Ft(Delete)33 b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41
b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)p eop
end
-%%Page: 108 114
-TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31
+%%Page: 110 116
+TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fs(kill-region)c(\(\))630
408 y Ft(Kill)k(the)f(text)i(in)e(the)g(curren)m(t)h(region.)41
b(By)31 b(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
@@ -12349,9 +12379,9 @@ e(completion)h(is)630 5060 y(attempted.)150 5230 y Fs
(possible-completions)25 b(\(M-?\))630 5340 y Ft(List)31
b(the)f(p)s(ossible)g(completions)i(of)e(the)h(text)g(b)s(efore)f(p)s
(oin)m(t.)p eop end
-%%Page: 109 115
-TeXDict begin 109 114 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(109)150 299 y Fs
+%%Page: 111 117
+TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(111)150 299 y Fs
(insert-completions)25 b(\(M-*\))630 408 y Ft(Insert)30
b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f(p)s(oin)m(t)h(that)
g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(generated)630 518
@@ -12413,8 +12443,8 @@ h(against)g(aliases,)53 b(reserv)m(ed)630 5230 y(w)m(ords,)36
b(shell)g(functions,)h(shell)e(builtins,)i(and)e(\014nally)g
(executable)i(\014lenames,)g(in)e(that)630 5340 y(order.)p
eop end
-%%Page: 110 116
-TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31
+%%Page: 112 118
+TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fs(possible-command-complet)o(ions)24
b(\(C-x)29 b(!\))630 408 y Ft(List)d(the)h(p)s(ossible)f(completions)h
(of)f(the)h(text)g(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)g(a)f
@@ -12466,9 +12496,9 @@ b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49 b(This)32
b(is)h(lik)m(e)i(executing)f(the)f Fs(undo)f Ft(command)630
5340 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)p
eop end
-%%Page: 111 117
-TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(111)150 299 y Fs(tilde-expand)27
+%%Page: 113 119
+TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(113)150 299 y Fs(tilde-expand)27
b(\(M-&\))630 408 y Ft(P)m(erform)j(tilde)h(expansion)g(on)f(the)g
(curren)m(t)h(w)m(ord.)150 555 y Fs(set-mark)d(\(C-@\))630
664 y Ft(Set)33 b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48
@@ -12541,8 +12571,8 @@ Ft(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)f(b)s
5230 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
Fq(inputrc)35 b Ft(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
d(b)m(y)630 5340 y(default.)p eop end
-%%Page: 112 118
-TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31
+%%Page: 114 120
+TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fs(glob-complete-word)25
b(\(M-g\))630 408 y Ft(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g
(treated)h(as)f(a)h(pattern)f(for)f(pathname)h(expansion,)g(with)g(an)
@@ -12573,7 +12603,7 @@ b(\(M-^\))630 2649 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the)
h(curren)m(t)f(line.)150 2812 y Fs(magic-space)d(\(\))630
2921 y Ft(P)m(erform)c(history)g(expansion)g(on)g(the)g(curren)m(t)g
(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)630
-3031 y([History)31 b(In)m(teraction],)i(page)e(121\).)150
+3031 y([History)31 b(In)m(teraction],)i(page)e(123\).)150
3194 y Fs(alias-expand-line)26 b(\(\))630 3304 y Ft(P)m(erform)i(alias)
i(expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h
([Aliases],)g(page)f(79\).)150 3467 y Fs(history-and-alias-expand)o
@@ -12599,9 +12629,9 @@ y Ft(While)32 b(the)g(Readline)g(library)f(do)s(es)g(not)h(ha)m(v)m(e)h
(the)g(line.)52 b(The)34 b(Readline)g Fs(vi)g Ft(mo)s(de)f(b)s(eha)m(v)
m(es)i(as)f(sp)s(eci\014ed)f(in)150 5340 y(the)e Fl(posix)e
Ft(1003.2)k(standard.)p eop end
-%%Page: 113 119
-TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(113)275 299 y(In)35
+%%Page: 115 121
+TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(115)275 299 y(In)35
b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)j(b)s(et)m(w)m(een)d
Fs(emacs)f Ft(and)g Fs(vi)g Ft(editing)h(mo)s(des,)h(use)f(the)g(`)p
Fs(set)30 b(-o)150 408 y(emacs)p Ft(')43 b(and)h(`)p
@@ -12623,7 +12653,7 @@ y Ft(When)25 b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f
1477 y(sp)s(eci\014cation)40 b(\(a)h Fq(compsp)s(ec)6
b Ft(\))39 b(has)h(b)s(een)f(de\014ned)f(using)h(the)h
Fs(complete)d Ft(builtin)j(\(see)g(Section)h(8.7)150
-1586 y([Programmable)h(Completion)f(Builtins],)k(page)d(115\),)j(the)c
+1586 y([Programmable)h(Completion)f(Builtins],)k(page)d(117\),)j(the)c
(programmable)g(completion)i(facilities)150 1696 y(are)31
b(in)m(v)m(ok)m(ed.)275 1828 y(First,)23 b(the)e(command)g(name)g(is)h
(iden)m(ti\014ed.)37 b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f
@@ -12649,7 +12679,7 @@ Fs(complete)d Ft(is)i(used)g(as)g(the)h(default.)275
b(If)150 2838 y(a)37 b(compsp)s(ec)f(is)g(not)h(found,)f(the)h(default)
f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g
(8.4.6)150 2947 y([Commands)30 b(F)-8 b(or)31 b(Completion],)g(page)g
-(108\))h(is)f(p)s(erformed.)275 3080 y(First,)g(the)g(actions)g(sp)s
+(110\))h(is)f(p)s(erformed.)275 3080 y(First,)g(the)g(actions)g(sp)s
(eci\014ed)f(b)m(y)h(the)f(compsp)s(ec)h(are)g(used.)40
b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h(pre\014xed)150
3189 y(b)m(y)25 b(the)h(w)m(ord)f(b)s(eing)f(completed)j(are)e
@@ -12696,8 +12726,8 @@ b(ariables],)48 b(page)c(61\).)79 b(If)42 b(a)i(shell)f(function)f(is)h
(b)s(eing)f(in)m(v)m(ok)m(ed,)150 5340 y(the)37 b Fs(COMP_WORDS)d
Ft(and)i Fs(COMP_CWORD)e Ft(v)-5 b(ariables)38 b(are)f(also)h(set.)60
b(When)37 b(the)g(function)f(or)h(command)p eop end
-%%Page: 114 120
-TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31
+%%Page: 116 122
+TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y(is)42 b(in)m(v)m(ok)m(ed,)k(the)41
b(\014rst)g(argumen)m(t)h(is)g(the)g(name)f(of)h(the)g(command)f(whose)
h(argumen)m(ts)f(are)h(b)s(eing)150 408 y(completed,)d(the)d(second)g
@@ -12713,7 +12743,7 @@ Ft(')h(is)g(in)m(v)m(ok)m(ed)h(\014rst.)44 b(The)31 b(function)h(ma)m
(y)g(use)g(an)m(y)g(of)g(the)g(shell)150 981 y(facilities,)50
b(including)44 b(the)h Fs(compgen)d Ft(and)i Fs(compopt)e
Ft(builtins)i(describ)s(ed)f(b)s(elo)m(w)h(\(see)i(Section)f(8.7)150
-1090 y([Programmable)31 b(Completion)h(Builtins],)f(page)h(115\),)g(to)
+1090 y([Programmable)31 b(Completion)h(Builtins],)f(page)h(117\),)g(to)
g(generate)g(the)f(matc)m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150
1200 y(p)s(ossible)g(completions)h(in)f(the)h Fs(COMPREPLY)d
Ft(arra)m(y)j(v)-5 b(ariable.)275 1334 y(Next,)23 b(an)m(y)e(command)f
@@ -12793,9 +12823,9 @@ b(argumen)m(t)h(when)e(the)i(function)f(is)g(executed\),)j
5340 y(b)s(eginning,)40 b(with)e(an)h(attempt)g(to)h(\014nd)d(a)i
(compsp)s(ec)f(for)g(that)h(command.)65 b(This)38 b(allo)m(ws)i(a)f
(set)g(of)p eop end
-%%Page: 115 121
-TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(115)150 299 y(completions)33
+%%Page: 117 123
+TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(117)150 299 y(completions)33
b(to)f(b)s(e)g(built)f(dynamically)i(as)f(completion)h(is)f(attempted,)
h(rather)f(than)f(b)s(eing)g(loaded)150 408 y(all)g(at)g(once.)275
564 y(F)-8 b(or)38 b(instance,)h(assuming)e(that)h(there)f(is)h(a)f
@@ -12860,13 +12890,13 @@ b(de\014ned.)39 b(The)27 b(`)p Fs(-E)p Ft(')i(option)g(indicates)g
5230 y(should)i(apply)i(to)g(\\empt)m(y")g(command)g(completion;)h
(that)f(is,)g(completion)h(attempted)630 5340 y(on)d(a)h(blank)f(line.)
p eop end
-%%Page: 116 122
-TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31
+%%Page: 118 124
+TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y(The)e(pro)s(cess)g(of)h(applying)g
(these)g(completion)g(sp)s(eci\014cations)h(when)d(w)m(ord)i
(completion)630 408 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m
(v)m(e)j(\(see)f(Section)g(8.6)g([Programmable)g(Completion],)630
-518 y(page)31 b(113\).)42 b(The)30 b(`)p Fs(-D)p Ft(')h(option)f(tak)m
+518 y(page)31 b(115\).)42 b(The)30 b(`)p Fs(-D)p Ft(')h(option)f(tak)m
(es)i(precedence)f(o)m(v)m(er)h(`)p Fs(-E)p Ft('.)630
656 y(Other)41 b(options,)46 b(if)41 b(sp)s(eci\014ed,)j(ha)m(v)m(e)f
(the)f(follo)m(wing)i(meanings.)75 b(The)41 b(argumen)m(ts)h(to)630
@@ -12912,15 +12942,15 @@ b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i(`)p Fs(-a)p Ft('.)1110
4622 y Fs(arrayvar)96 b Ft(Arra)m(y)31 b(v)-5 b(ariable)31
b(names.)1110 4788 y Fs(binding)144 b Ft(Readline)30
b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h([Bindable)1590
-4898 y(Readline)h(Commands],)f(page)h(104\).)1110 5064
+4898 y(Readline)h(Commands],)f(page)h(106\).)1110 5064
y Fs(builtin)144 b Ft(Names)21 b(of)g(shell)f(builtin)h(commands.)37
b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 5174
y(as)31 b(`)p Fs(-b)p Ft('.)1110 5340 y Fs(command)144
b Ft(Command)29 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
(eci\014ed)f(as)i(`)p Fs(-c)p Ft('.)p eop end
-%%Page: 117 123
-TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(117)1110 299 y Fs(directory)1590
+%%Page: 119 125
+TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(119)1110 299 y Fs(directory)1590
408 y Ft(Directory)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
(eci\014ed)g(as)g(`)p Fs(-d)p Ft('.)1110 573 y Fs(disabled)96
b Ft(Names)31 b(of)g(disabled)f(shell)g(builtins.)1110
@@ -12974,8 +13004,8 @@ b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h
(the)h(mem)m(b)s(ers)f(of)g(the)h(resultan)m(t)g(list)g(whic)m(h)f
(matc)m(h)i(the)1110 5340 y(w)m(ord)f(b)s(eing)g(completed.)p
eop end
-%%Page: 118 124
-TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31
+%%Page: 120 126
+TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y Fs(-C)f Fi(command)1110
408 y Fq(command)35 b Ft(is)e(executed)g(in)e(a)i(subshell)e(en)m
(vironmen)m(t,)i(and)f(its)g(output)g(is)1110 518 y(used)e(as)g(the)h
@@ -13037,9 +13067,9 @@ b(is)f(true)g(unless)f(an)h(in)m(v)-5 b(alid)24 b(option)h(is)f
b(mo)s(dify)f(the)g(options)h(for)f(a)h Fq(name)k Ft(for)31
b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f(exists,)630
4752 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p eop end
-%%Page: 119 125
-TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(119)150
+%%Page: 121 127
+TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(121)150
299 y Fo(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
572 y Ft(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)
f Fl(gnu)h Ft(History)g(Library)e(in)m(teractiv)m(ely)-8
@@ -13106,7 +13136,7 @@ b(using)f(command-line)h(editing,)h(searc)m(h)f(commands)g(are)g(a)m(v)
-5 b(ailable)33 b(in)e(eac)m(h)150 3836 y(editing)45
b(mo)s(de)g(that)g(pro)m(vide)g(access)h(to)f(the)g(history)f(list)i
(\(see)f(Section)h(8.4.2)g([Commands)e(F)-8 b(or)150
-3945 y(History],)31 b(page)h(105\).)275 4093 y(The)47
+3945 y(History],)31 b(page)h(107\).)275 4093 y(The)47
b(shell)i(allo)m(ws)h(con)m(trol)f(o)m(v)m(er)h(whic)m(h)e(commands)g
(are)h(sa)m(v)m(ed)g(on)f(the)h(history)f(list.)95 b(The)150
4202 y Fs(HISTCONTROL)25 b Ft(and)j Fs(HISTIGNORE)e Ft(v)-5
@@ -13127,8 +13157,8 @@ Fs(shopt)p Ft(.)150 5002 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)150
5161 y Ft(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g
(whic)m(h)g(manipulate)g(the)h(history)f(list)h(and)f(history)g
(\014le.)150 5340 y Fs(fc)p eop end
-%%Page: 120 126
-TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31
+%%Page: 122 128
+TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31
b(Reference)g(Man)m(ual)870 299 y Fs(fc)47 b([-e)g Fi(ename)11
b Fs(])46 b([-lnr])g([)p Fi(first)11 b Fs(])45 b([)p
Fi(last)11 b Fs(])870 408 y(fc)47 b(-s)g([)p Fi(pat)11
@@ -13207,9 +13237,9 @@ y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25
b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110
5340 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h
(session.)p eop end
-%%Page: 121 127
-TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(121)630
+%%Page: 123 129
+TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(123)630
299 y Fs(-r)384 b Ft(Read)26 b(the)h(curren)m(t)f(history)g(\014le)g
(and)g(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)f(history)1110
408 y(list.)630 573 y Fs(-w)384 b Ft(W)-8 b(rite)32 b(out)e(the)h
@@ -13291,8 +13321,8 @@ y Fj(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 5340
y Ft(An)30 b(ev)m(en)m(t)i(designator)f(is)f(a)h(reference)g(to)g(a)g
(command)f(line)h(en)m(try)f(in)g(the)h(history)f(list.)p
eop end
-%%Page: 122 128
-TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31
+%%Page: 124 130
+TeXDict begin 124 129 bop 150 -116 a Ft(124)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fs(!)432 b Ft(Start)34
b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)
e(a)h(space,)h(tab,)f(the)g(end)f(of)630 408 y(the)i(line,)g(`)p
@@ -13357,9 +13387,9 @@ Fs(1-$)p Ft('.)39 b(It)28 b(is)g(not)g(an)f(error)630
5230 y(to)j(use)g(`)p Fs(*)p Ft(')f(if)h(there)g(is)g(just)f(one)h(w)m
(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
(returned)e(in)630 5340 y(that)j(case.)p eop end
-%%Page: 123 129
-TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(123)150
+%%Page: 125 131
+TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(125)150
299 y Fi(x)11 b Fs(*)373 b Ft(Abbreviates)31 b(`)p Fi(x)11
b Fs(-$)p Ft(')150 458 y Fi(x)g Fs(-)373 b Ft(Abbreviates)31
b(`)p Fi(x)11 b Fs(-$)p Ft(')29 b(lik)m(e)j(`)p Fi(x)11
@@ -13405,11 +13435,11 @@ Fs(gs/)p Fi(old)11 b Fs(/)p Fi(new)g Fs(/)p Ft(,)26 b(or)k(with)h(`)p
Fs(&)p Ft('.)150 3813 y Fs(G)432 b Ft(Apply)30 b(the)g(follo)m(wing)i
(`)p Fs(s)p Ft(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g
(the)g(ev)m(en)m(t.)p eop end
-%%Page: 124 130
-TeXDict begin 124 129 bop eop end
-%%Page: 125 131
-TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(125)150 299 y Fo(10)80
+%%Page: 126 132
+TeXDict begin 126 131 bop eop end
+%%Page: 127 133
+TeXDict begin 127 132 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(127)150 299 y Fo(10)80
b(Installing)52 b(Bash)150 556 y Ft(This)31 b(c)m(hapter)h(pro)m(vides)
g(basic)g(instructions)f(for)g(installing)i(Bash)f(on)f(the)h(v)-5
b(arious)31 b(supp)s(orted)f(plat-)150 665 y(forms.)40
@@ -13490,8 +13520,8 @@ b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
Fs(configure)e Ft(created)j(\(so)g(y)m(ou)g(can)f(compile)150
5340 y(Bash)g(for)f(a)g(di\013eren)m(t)h(kind)f(of)g(computer\),)h(t)m
(yp)s(e)g(`)p Fs(make)e(distclean)p Ft('.)p eop end
-%%Page: 126 132
-TeXDict begin 126 131 bop 150 -116 a Ft(126)2527 b(Bash)31
+%%Page: 128 134
+TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fr(10.2)68 b(Compilers)46
b(and)f(Options)150 458 y Ft(Some)28 b(systems)h(require)f(un)m(usual)f
(options)i(for)f(compilation)i(or)f(linking)f(that)h(the)g
@@ -13576,9 +13606,9 @@ b Fs(configure)d Ft(can)i(\014gure)g(that)g(out,)150
5340 y(but)c(if)h(it)g(prin)m(ts)g(a)g(message)h(sa)m(ying)g(it)f(can)h
(not)f(guess)g(the)g(host)g(t)m(yp)s(e,)h(giv)m(e)g(it)f(the)h(`)p
Fs(--host=TYPE)p Ft(')p eop end
-%%Page: 127 133
-TeXDict begin 127 132 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(127)150 299 y(option.)39
+%%Page: 129 135
+TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(129)150 299 y(option.)39
b(`)p Fs(TYPE)p Ft(')25 b(can)g(either)g(b)s(e)g(a)g(short)g(name)g
(for)g(the)g(system)g(t)m(yp)s(e,)h(suc)m(h)f(as)g(`)p
Fs(sun4)p Ft(',)h(or)f(a)g(canonical)150 408 y(name)30
@@ -13648,8 +13678,8 @@ Fs(lib/malloc)p Ft('.)39 b(This)30 b(is)h(not)g(the)630
5340 y(same)h Fs(malloc)e Ft(that)j(app)s(ears)e(in)g
Fl(gnu)h Ft(lib)s(c,)g(but)f(an)h(older)f(v)m(ersion)i(originally)g
(deriv)m(ed)p eop end
-%%Page: 128 134
-TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31
+%%Page: 130 136
+TeXDict begin 130 135 bop 150 -116 a Ft(130)2527 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y(from)h(the)h(4.2)g
Fl(bsd)f Fs(malloc)p Ft(.)45 b(This)31 b Fs(malloc)g
Ft(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630
@@ -13720,9 +13750,9 @@ h(for)e(`)p Fs(disabled-builtins)p Ft(')d(and)j(`)p Fs
(xpg-echo-default)p Ft(')150 5340 y(are)26 b(enabled)g(b)m(y)g
(default,)h(unless)f(the)g(op)s(erating)g(system)g(do)s(es)g(not)g(pro)
m(vide)g(the)g(necessary)g(supp)s(ort.)p eop end
-%%Page: 129 135
-TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(129)150 299 y Fs(--enable-alias)630
+%%Page: 131 137
+TeXDict begin 131 136 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(131)150 299 y Fs(--enable-alias)630
408 y Ft(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h
Fs(alias)f Ft(and)g Fs(unalias)e Ft(builtins)j(\(see)g(Sec-)630
518 y(tion)31 b(6.6)g([Aliases],)i(page)e(79\).)150 692
@@ -13737,7 +13767,7 @@ b(\(see)h(Section)g(6.7)h([Ar-)630 1303 y(ra)m(ys],)c(page)g(80\).)150
1477 y Fs(--enable-bang-history)630 1587 y Ft(Include)36
b(supp)s(ort)f(for)h Fs(csh)p Ft(-lik)m(e)h(history)g(substitution)f
(\(see)h(Section)g(9.3)h([History)f(In-)630 1696 y(teraction],)c(page)e
-(121\).)150 1870 y Fs(--enable-brace-expansion)630 1979
+(123\).)150 1870 y Fs(--enable-brace-expansion)630 1979
y Ft(Include)40 b Fs(csh)p Ft(-lik)m(e)h(brace)f(expansion)g(\()h
Fs(b{a,b}c)d Fp(7!)i Fs(bac)30 b(bbc)39 b Ft(\).)71 b(See)40
b(Section)h(3.5.1)630 2089 y([Brace)32 b(Expansion],)e(page)h(18,)h
@@ -13777,8 +13807,8 @@ y Fs(--enable-debugger)630 4947 y Ft(Include)f(supp)s(ort)e(for)i(the)h
Fs(pushd)p Ft(,)f Fs(popd)p Ft(,)g(and)f Fs(dirs)630
5340 y Ft(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m
(k],)g(page)f(81\).)p eop end
-%%Page: 130 136
-TeXDict begin 130 135 bop 150 -116 a Ft(130)2527 b(Bash)31
+%%Page: 132 138
+TeXDict begin 132 137 bop 150 -116 a Ft(132)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fs(--enable-disabled-builti)o(ns)630
408 y Ft(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m
(ed)i(via)f(`)p Fs(builtin)29 b(xxx)p Ft(')37 b(ev)m(en)j(after)f
@@ -13804,10 +13834,10 @@ b(\(see)630 2125 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
(41\).)150 2281 y Fs(--enable-history)630 2390 y Ft(Include)e(command)g
(history)h(and)f(the)h Fs(fc)f Ft(and)g Fs(history)e
Ft(builtin)j(commands)f(\(see)h(Sec-)630 2500 y(tion)h(9.1)g([Bash)g
-(History)g(F)-8 b(acilities],)34 b(page)d(119\).)150
+(History)g(F)-8 b(acilities],)34 b(page)d(121\).)150
2655 y Fs(--enable-job-control)630 2765 y Ft(This)e(enables)i(the)f
(job)g(con)m(trol)h(features)g(\(see)g(Chapter)f(7)g([Job)g(Con)m
-(trol],)h(page)g(87\),)h(if)630 2874 y(the)f(op)s(erating)f(system)h
+(trol],)h(page)g(89\),)h(if)630 2874 y(the)f(op)s(erating)f(system)h
(supp)s(orts)d(them.)150 3029 y Fs(--enable-multibyte)630
3139 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m
(haracters)g(if)f(the)g(op)s(erating)h(system)f(pro)m(vides)630
@@ -13824,7 +13854,7 @@ s(cess)e(Substitution],)630 4107 y(page)31 b(23\))h(if)e(the)h(op)s
(erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
4262 y Fs(--enable-progcomp)630 4372 y Ft(Enable)d(the)g(programmable)g
(completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
-4482 y(Completion],)i(page)h(113\).)42 b(If)30 b(Readline)h(is)f(not)h
+4482 y(Completion],)i(page)h(115\).)42 b(If)30 b(Readline)h(is)f(not)h
(enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150
4637 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 4746
y Ft(T)-8 b(urn)46 b(on)h(the)h(in)m(terpretation)g(of)g(a)g(n)m(um)m
@@ -13837,10 +13867,10 @@ b(page)h(82,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
5230 y Ft(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 5340
y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g
-(Editing],)h(page)g(91\).)p eop end
-%%Page: 131 137
-TeXDict begin 131 136 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(131)150 299 y Fs(--enable-restricted)630
+(Editing],)h(page)g(93\).)p eop end
+%%Page: 133 139
+TeXDict begin 133 138 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(133)150 299 y Fs(--enable-restricted)630
408 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p
Ft(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630
518 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68
@@ -13886,11 +13916,11 @@ y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
(for)g(more)150 3716 y(information)c(ab)s(out)f(its)h(e\013ect.)p
eop end
-%%Page: 132 138
-TeXDict begin 132 137 bop eop end
-%%Page: 133 139
-TeXDict begin 133 138 bop 150 -116 a Ft(App)s(endix)29
-b(A:)h(Rep)s(orting)h(Bugs)2299 b(133)150 299 y Fo(App)t(endix)52
+%%Page: 134 140
+TeXDict begin 134 139 bop eop end
+%%Page: 135 141
+TeXDict begin 135 140 bop 150 -116 a Ft(App)s(endix)29
+b(A:)h(Rep)s(orting)h(Bugs)2299 b(135)150 299 y Fo(App)t(endix)52
b(A)81 b(Rep)t(orting)53 b(Bugs)150 533 y Ft(Please)33
b(rep)s(ort)e(all)h(bugs)f(y)m(ou)h(\014nd)e(in)i(Bash.)44
b(But)32 b(\014rst,)g(y)m(ou)g(should)e(mak)m(e)j(sure)e(that)h(it)g
@@ -13919,12 +13949,12 @@ s(duce)e(it.)150 2182 y Fs(bashbug)d Ft(inserts)i(the)h(\014rst)f
(vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275
2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
(ual)f(to)h Fs(chet.ramey@case.edu)p Ft(.)p eop end
-%%Page: 134 140
-TeXDict begin 134 139 bop eop end
-%%Page: 135 141
-TeXDict begin 135 140 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 136 142
+TeXDict begin 136 141 bop eop end
+%%Page: 137 143
+TeXDict begin 137 142 bop 150 -116 a Ft(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(135)150 141 y Fo(App)t(endix)58
+b(The)f(Bourne)g(Shell)1258 b(137)150 141 y Fo(App)t(endix)58
b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54
b(The)g(Bourne)1088 299 y(Shell)150 530 y Ft(Bash)26
b(implemen)m(ts)h(essen)m(tially)g(the)g(same)f(grammar,)h(parameter)f
@@ -13950,15 +13980,15 @@ b Ft(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
(options)f(\(see)f(Section)h(6.1)g([In)m(v)m(oking)g(Bash],)h(page)e
(71\).)225 1699 y Fp(\017)60 b Ft(Bash)28 b(has)g(command-line)h
(editing)f(\(see)h(Chapter)f(8)g([Command)f(Line)h(Editing],)i(page)e
-(91\))i(and)330 1809 y(the)h Fs(bind)e Ft(builtin.)225
+(93\))i(and)330 1809 y(the)h Fs(bind)e Ft(builtin.)225
1943 y Fp(\017)60 b Ft(Bash)46 b(pro)m(vides)g(a)g(programmable)g(w)m
(ord)f(completion)i(mec)m(hanism)f(\(see)h(Section)g(8.6)g([Pro-)330
-2052 y(grammable)39 b(Completion],)i(page)e(113\),)i(and)d(builtin)g
+2052 y(grammable)39 b(Completion],)i(page)e(115\),)i(and)d(builtin)g
(commands)f Fs(complete)p Ft(,)h Fs(compgen)p Ft(,)h(and)330
2162 y Fs(compopt)p Ft(,)29 b(to)i(manipulate)g(it.)225
2296 y Fp(\017)60 b Ft(Bash)26 b(has)f(command)h(history)f(\(see)i
(Section)f(9.1)h([Bash)f(History)h(F)-8 b(acilities],)30
-b(page)c(119\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
+b(page)c(121\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
Fs(fc)g Ft(builtins)g(to)h(manipulate)g(it.)42 b(The)30
b(Bash)h(history)g(list)g(main)m(tains)g(timestamp)330
2515 y(information)g(and)e(uses)h(the)h(v)-5 b(alue)31
@@ -13966,7 +13996,7 @@ b(of)f(the)h Fs(HISTTIMEFORMAT)26 b Ft(v)-5 b(ariable)32
b(to)f(displa)m(y)f(it.)225 2649 y Fp(\017)60 b Ft(Bash)48
b(implemen)m(ts)h Fs(csh)p Ft(-lik)m(e)g(history)f(expansion)g(\(see)h
(Section)g(9.3)h([History)f(In)m(teraction],)330 2759
-y(page)31 b(121\).)225 2892 y Fp(\017)60 b Ft(Bash)33
+y(page)31 b(123\).)225 2892 y Fp(\017)60 b Ft(Bash)33
b(has)g(one-dimensional)h(arra)m(y)f(v)-5 b(ariables)34
b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(80\),)h(and)e(the)330
3002 y(appropriate)39 b(v)-5 b(ariable)40 b(expansions)f(and)g
@@ -14010,8 +14040,8 @@ b Fs(;)30 b Fi(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j
Ft(comp)s(ound)g(command,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g
(of)g(simple)330 5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i
([Conditional)e(Constructs],)g(page)g(10\).)p eop end
-%%Page: 136 142
-TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31
+%%Page: 138 144
+TeXDict begin 138 143 bop 150 -116 a Ft(138)2527 b(Bash)31
b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(Bash)40
b(includes)g(the)g Fs([[)g Ft(comp)s(ound)e(command,)43
b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
@@ -14023,7 +14053,7 @@ b Ft(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
789 y Fp(\017)60 b Ft(Bash)27 b(includes)g(brace)h(expansion)f(\(see)h
(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(18\))h(and)d(tilde)330
898 y(expansion)k(\(see)i(Section)f(3.5.2)h([Tilde)f(Expansion],)f
-(page)h(18\).)225 1034 y Fp(\017)60 b Ft(Bash)24 b(implemen)m(ts)h
+(page)h(19\).)225 1034 y Fp(\017)60 b Ft(Bash)24 b(implemen)m(ts)h
(command)e(aliases)j(and)d(the)i Fs(alias)d Ft(and)i
Fs(unalias)e Ft(builtins)h(\(see)i(Section)g(6.6)330
1143 y([Aliases],)32 b(page)f(79\).)225 1279 y Fp(\017)60
@@ -14100,10 +14130,10 @@ Ft(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(23\).)41
b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p
eop end
-%%Page: 137 143
-TeXDict begin 137 142 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 139 145
+TeXDict begin 139 144 bop 150 -116 a Ft(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(137)225 299 y Fp(\017)60
+b(The)f(Bourne)g(Shell)1258 b(139)225 299 y Fp(\017)60
b Ft(Bash)38 b(implemen)m(ts)g(the)g(full)g(set)g(of)g
Fl(posix)f Ft(\014lename)h(expansion)g(op)s(erators,)i(including)d
Fq(c)m(har-)330 408 y(acter)i(classes)t Ft(,)h Fq(equiv)-5
@@ -14189,8 +14219,8 @@ y Fp(\017)60 b Ft(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
(to)h(c)m(hildren)f(via)h(the)g(en)m(vironmen)m(t)g(using)f
Fs(export)f(-f)h Ft(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
b(unctions],)32 b(page)f(14\).)p eop end
-%%Page: 138 144
-TeXDict begin 138 143 bop 150 -116 a Ft(138)2527 b(Bash)31
+%%Page: 140 146
+TeXDict begin 140 145 bop 150 -116 a Ft(140)2527 b(Bash)31
b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(The)37
b(Bash)g Fs(export)p Ft(,)h Fs(readonly)p Ft(,)f(and)f
Fs(declare)g Ft(builtins)h(can)g(tak)m(e)i(a)f(`)p Fs(-f)p
@@ -14285,10 +14315,10 @@ Ft(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
5340 y(signal)30 b(sp)s(eci\014cation,)h(similar)f(to)g
Fs(EXIT)f Ft(and)g Fs(DEBUG)p Ft(.)39 b(Commands)28 b(sp)s(eci\014ed)h
(with)g(an)g Fs(ERR)g Ft(trap)p eop end
-%%Page: 139 145
-TeXDict begin 139 144 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 141 147
+TeXDict begin 141 146 bop 150 -116 a Ft(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(139)330 299 y(are)40 b(executed)g(after)g
+b(The)f(Bourne)g(Shell)1258 b(141)330 299 y(are)40 b(executed)g(after)g
(a)f(simple)h(command)f(fails,)j(with)d(a)h(few)f(exceptions.)68
b(The)39 b Fs(ERR)g Ft(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
(shell)g(functions)f(unless)g(the)h Fs(-o)29 b(errtrace)37
@@ -14332,7 +14362,7 @@ b(ariable.)225 2274 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s
(de)f(is)h(to)s(o)g(limited.)225 2757 y Fp(\017)60 b
Ft(The)30 b Fs(disown)f Ft(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f
(from)g(the)h(in)m(ternal)g(shell)g(job)f(table)i(\(see)f(Section)h
-(7.2)330 2866 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(88\))h(or)e
+(7.2)330 2866 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(90\))h(or)e
(suppress)e(the)i(sending)g(of)g Fs(SIGHUP)e Ft(to)j(a)g(job)f(when)f
(the)330 2976 y(shell)f(exits)g(as)f(the)h(result)f(of)h(a)f
Fs(SIGHUP)p Ft(.)225 3108 y Fp(\017)60 b Ft(Bash)31 b(includes)f(a)g(n)
@@ -14370,8 +14400,8 @@ Ft(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
(with)g Fs(SIGSEGV)e Ft(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
5340 y(the)31 b Fs(system\(\))d Ft(C)i(library)g(function)g(call\),)i
(it)f(misb)s(eha)m(v)m(es)g(badly)-8 b(.)p eop end
-%%Page: 140 146
-TeXDict begin 140 145 bop 150 -116 a Ft(140)2527 b(Bash)31
+%%Page: 142 148
+TeXDict begin 142 147 bop 150 -116 a Ft(142)2527 b(Bash)31
b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(In)26
b(a)i(questionable)g(attempt)h(at)f(securit)m(y)-8 b(,)29
b(the)e(SVR4.2)h(shell,)g(when)f(in)m(v)m(ok)m(ed)h(without)g(the)f(`)p
@@ -14403,10 +14433,10 @@ Fl(posix)330 1738 y Ft(standard.)225 1873 y Fp(\017)60
b Ft(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
(when)f(in)m(v)m(ok)m(ed)i(as)e Fs(jsh)g Ft(\(it)h(turns)e(on)h(job)g
(con)m(trol\).)p eop end
-%%Page: 141 147
-TeXDict begin 141 146 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 143 149
+TeXDict begin 143 148 bop 150 -116 a Ft(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(141)150 299 y Fo(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13
+b(143)150 299 y Fo(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13
b(ree)53 b(Do)t(cumen)l(tation)e(License)1359 502 y Ft(V)-8
b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390
635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fp(\015)e
@@ -14487,8 +14517,8 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
(cumen)m(t)g(is)g(released)p eop end
-%%Page: 142 148
-TeXDict begin 142 147 bop 150 -116 a Ft(142)2527 b(Bash)31
+%%Page: 144 150
+TeXDict begin 144 149 bop 150 -116 a Ft(144)2527 b(Bash)31
b(Reference)g(Man)m(ual)330 299 y(under)26 b(this)i(License.)40
b(If)27 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
(de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
@@ -14580,10 +14610,10 @@ b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g
(and)f(has)h(no)330 5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h
(this)f(License.)199 5340 y(2.)61 b(VERBA)-8 b(TIM)31
b(COPYING)p eop end
-%%Page: 143 149
-TeXDict begin 143 148 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 145 151
+TeXDict begin 145 150 bop 150 -116 a Ft(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(143)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(145)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h
(or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42
b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j
@@ -14673,8 +14703,8 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
(ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
b(,)p eop end
-%%Page: 144 150
-TeXDict begin 144 149 bop 150 -116 a Ft(144)2527 b(Bash)31
+%%Page: 146 152
+TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31
b(Reference)g(Man)m(ual)510 299 y(b)s(e)g(listed)h(in)f(the)g(History)h
(section)g(of)g(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32
b(ma)m(y)g(use)f(the)g(same)h(title)h(as)510 408 y(a)e(previous)f(v)m
@@ -14755,10 +14785,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
eop end
-%%Page: 145 151
-TeXDict begin 145 150 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 147 153
+TeXDict begin 147 152 bop 150 -116 a Ft(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(145)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(147)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8
b(ersion's)36 b(license)g(notice.)57 b(These)330 408
y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g
@@ -14843,8 +14873,8 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
(other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 146 152
-TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31
+%%Page: 148 154
+TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
b(Reference)g(Man)m(ual)199 299 y(7.)61 b(A)m(GGREGA)-8
b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i
(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30
@@ -14931,10 +14961,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g
(reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f
(the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f
(an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end
-%%Page: 147 153
-TeXDict begin 147 152 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 149 155
+TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(147)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
+b(149)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g
(the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34
@@ -14998,8 +15028,8 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g
g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g
(time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is)
330 4005 y(eligible)h(for)e(relicensing.)p eop end
-%%Page: 148 154
-TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
+%%Page: 150 156
+TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g
(this)h(License)f(for)g(y)l(our)g(do)t(cumen)l(ts)150
458 y Ft(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g
@@ -15036,9 +15066,9 @@ y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g
b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s
(ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p
eop end
-%%Page: 149 155
-TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(149)150 299 y Fo(App)t(endix)52
+%%Page: 151 157
+TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(151)150 299 y Fo(App)t(endix)52
b(D)81 b(Indexes)150 631 y Fr(D.1)68 b(Index)45 b(of)g(Shell)g(Builtin)
g(Commands)150 868 y(.)150 984 y Fe(.)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
@@ -15057,7 +15087,7 @@ f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(41)150
2289 y Fr(B)150 2405 y Fe(bg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)37 b Fb(88)150 2493 y Fe(bind)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
+g(:)37 b Fb(90)150 2493 y Fe(bind)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
49 b Fb(41)150 2580 y Fe(break)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
@@ -15078,12 +15108,12 @@ g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41
b Fb(43)150 3281 y Fe(compgen)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b
-Fb(115)150 3368 y Fe(complete)10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)
+Fb(117)150 3368 y Fe(complete)10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(115)150
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(117)150
3456 y Fe(compopt)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(118)150 3543
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(120)150 3543
y Fe(continue)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(36)150 3778 y
@@ -15096,7 +15126,7 @@ f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
b Fb(81)150 4069 y Fe(disown)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43
-b Fb(89)150 4303 y Fr(E)150 4420 y Fe(echo)23 b Fc(:)13
+b Fb(91)150 4303 y Fr(E)150 4420 y Fe(echo)23 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(45)150 4507 y Fe(enable)17
@@ -15118,11 +15148,11 @@ f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
b Fb(36)150 5110 y Fr(F)150 5227 y Fe(fc)8 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(119)150 5314
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(121)150 5314
y Fe(fg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(88)2025 868 y Fr(G)2025 988 y Fe(getopts)15 b Fc(:)f(:)f(:)g(:)g
+b Fb(90)2025 868 y Fr(G)2025 988 y Fe(getopts)15 b Fc(:)f(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
b Fb(37)2025 1250 y Fr(H)2025 1370 y Fe(hash)23 b Fc(:)13
@@ -15134,14 +15164,14 @@ b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(46)2025 1549
y Fe(history)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(120)2025 1811
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(122)2025 1811
y Fr(J)2025 1931 y Fe(jobs)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
-b Fb(88)2025 2193 y Fr(K)2025 2313 y Fe(kill)23 b Fc(:)13
+b Fb(90)2025 2193 y Fr(K)2025 2313 y Fe(kill)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(89)2025 2557 y Fr(L)2025
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(91)2025 2557 y Fr(L)2025
2677 y Fe(let)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
@@ -15173,7 +15203,7 @@ b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(47)2025 4360 y Fe(readarray)9
b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)36 b Fb(48)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g
+f(:)g(:)g(:)36 b Fb(49)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
b Fb(38)2025 4538 y Fe(return)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g
@@ -15195,9 +15225,9 @@ g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
b Fb(49)2025 5259 y Fe(suspend)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(89)p eop end
-%%Page: 150 156
-TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31
+b Fb(91)p eop end
+%%Page: 152 158
+TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fr(T)150 428 y Fe(test)23
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
@@ -15229,7 +15259,7 @@ g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
b Fb(41)2025 910 y Fr(W)2025 1026 y Fe(wait)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(89)150 1259 y Fr(D.2)68
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(91)150 1259 y Fr(D.2)68
b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W)-11 b(ords)150
1495 y(!)150 1612 y Fe(!)15 b Fc(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
@@ -15316,9 +15346,9 @@ b Fb(17)2025 5067 y Fr(*)2025 5192 y Fe(*)13 b Fc(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(16)p eop end
-%%Page: 151 157
-TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(151)150 299 y Fr(-)150 415 y Fe(-)13
+%%Page: 153 159
+TeXDict begin 153 158 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(153)150 299 y Fr(-)150 415 y Fe(-)13
b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(17)150
@@ -15338,7 +15368,7 @@ g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(17)150
2049 y Fr(A)150 2166 y Fe(auto_resume)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(90)150
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(92)150
2409 y Fr(B)150 2525 y Fe(BASH)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
@@ -15388,9 +15418,9 @@ Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
f(:)g(:)g(:)g(:)41 b Fb(62)150 4010 y Fe(bell-style)7
b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)33 b Fb(95)150 4098 y Fe(bind-tty-special-chars)10
+f(:)g(:)33 b Fb(97)150 4098 y Fe(bind-tty-special-chars)10
b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(95)150 4350 y Fr(C)150
+(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(97)150 4350 y Fr(C)150
4466 y Fe(CDPATH)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(61)150
@@ -15399,7 +15429,7 @@ g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(64)150
4641 y Fe(comment-begin)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)43 b Fb(95)150 4728 y Fe(COMP_CWORD)7
+g(:)g(:)g(:)g(:)43 b Fb(97)150 4728 y Fe(COMP_CWORD)7
b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)33 b Fb(64)150 4816 y Fe(COMP_KEY)12 b Fc(:)j(:)e(:)g(:)g(:)g
@@ -15420,35 +15450,35 @@ g(:)g(:)38 b Fb(64)150 5253 y Fe(COMP_WORDS)7 b Fc(:)15
b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
33 b Fb(64)150 5340 y Fe(completion-prefix-display-len)q(gth)25
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(95)2025
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(97)2025
299 y Fe(completion-query-items)10 b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37
-b Fb(95)2025 387 y Fe(COMPREPLY)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g
+b Fb(97)2025 387 y Fe(COMPREPLY)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b
Fb(65)2025 475 y Fe(convert-meta)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(96)2025 713 y
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(98)2025 713 y
Fr(D)2025 831 y Fe(DIRSTACK)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(65)2025
919 y Fe(disable-completion)25 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-47 b Fb(96)2025 1175 y Fr(E)2025 1293 y Fe(editing-mode)21
+47 b Fb(98)2025 1175 y Fr(E)2025 1293 y Fe(editing-mode)21
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45
-b Fb(96)2025 1381 y Fe(EMACS)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(98)2025 1381 y Fe(EMACS)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
b Fb(65)2025 1470 y Fe(enable-keypad)16 b Fc(:)g(:)d(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(96)2025 1558 y
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(98)2025 1558 y
Fe(EUID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(65)2025
1646 y Fe(expand-tilde)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(96)2025 1902 y Fr(F)2025
+g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(98)2025 1902 y Fr(F)2025
2020 y Fe(FCEDIT)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(65)2025
@@ -15483,10 +15513,10 @@ b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)33 b Fb(66)2025 3525 y Fe(history-preserve-point)10
b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(96)2025 3613 y Fe(history-size)21
+(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(98)2025 3613 y Fe(history-size)21
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45
-b Fb(96)2025 3701 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+b Fb(98)2025 3701 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b
Fb(66)2025 3789 y Fe(HISTTIMEFORMAT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)f
@@ -15497,7 +15527,7 @@ b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(61)2025 3965
y Fe(horizontal-scroll-mode)10 b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37
-b Fb(96)2025 4053 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+b Fb(98)2025 4053 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b
Fb(67)2025 4141 y Fe(HOSTNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
@@ -15515,18 +15545,18 @@ g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(67)2025 4761 y
Fe(input-meta)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(96)2025 4850 y Fe(INPUTRC)15
+g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(99)2025 4850 y Fe(INPUTRC)15
b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)41 b Fb(67)2025 4938 y Fe(isearch-terminators)18
b Fc(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(97)2025 5175
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(99)2025 5175
y Fr(K)2025 5293 y Fe(keymap)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(97)p eop end
-%%Page: 152 158
-TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31
+b Fb(99)p eop end
+%%Page: 154 160
+TeXDict begin 154 159 bop 150 -116 a Ft(154)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fr(L)150 415 y Fe(LANG)23
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
@@ -15565,14 +15595,14 @@ g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(61)150
1723 y Fe(mark-modified-lines)18 b Fc(:)g(:)13 b(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
-b Fb(97)150 1810 y Fe(mark-symlinked-directories)18 b
+b Fb(99)150 1810 y Fe(mark-symlinked-directories)18 b
Fc(:)g(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(97)150 1897 y Fe(match-hidden-files)25 b Fc(:)13
+b Fb(99)150 1897 y Fe(match-hidden-files)25 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(97)150 1985 y
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(99)150 1985 y
Fe(meta-flag)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(96)150 2236 y Fr(O)150
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(99)150 2236 y Fr(O)150
2352 y Fe(OLDPWD)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150
@@ -15590,10 +15620,10 @@ g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150
2788 y Fe(output-meta)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(97)150 3040 y Fr(P)150
+(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(99)150 3040 y Fr(P)150
3156 y Fe(page-completions)9 b Fc(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)35 b Fb(97)150 3243 y Fe(PATH)23 b Fc(:)13
+(:)g(:)g(:)35 b Fb(99)150 3243 y Fe(PATH)23 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(61)150 3330 y Fe(PIPESTATUS)7
@@ -15631,302 +15661,302 @@ g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)44 b Fb(68)2025 1183 y Fe(REPLY)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(68)2025 1271 y Fe(revert-all-at-newline)13 b Fc(:)18
-b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)40 b Fb(98)2025 1508 y Fr(S)2025
-1626 y Fe(SECONDS)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(69)2025
-1714 y Fe(SHELL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b
-Fb(69)2025 1802 y Fe(SHELLOPTS)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(69)2025
-1890 y Fe(SHLVL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b
-Fb(69)2025 1978 y Fe(show-all-if-ambiguous)13 b Fc(:)18
-b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)40 b Fb(98)2025 2067 y Fe(show-all-if-unmodified)10
-b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(98)2025 2155 y Fe(skip-completed-text)18
-b Fc(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(98)2025 2411
-y Fr(T)2025 2529 y Fe(TEXTDOMAIN)9 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b
-Fb(7)2025 2617 y Fe(TEXTDOMAINDIR)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(7)2025 2705
-y Fe(TIMEFORMAT)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(68)2025 1271 y Fe(revert-all-at-newline)11 b Fc(:)18
+b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)38 b Fb(100)2025 1508 y Fr(S)2025 1626
+y Fe(SECONDS)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(69)2025 1714
+y Fe(SHELL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025
+1802 y Fe(SHELLOPTS)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(69)2025 1890
+y Fe(SHLVL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025
+1978 y Fe(show-all-if-ambiguous)11 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
+b Fb(100)2025 2067 y Fe(show-all-if-unmodified)8 b Fc(:)18
+b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)35 b Fb(100)2025 2155 y Fe(skip-completed-text)16
+b Fc(:)h(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(100)2025 2411 y Fr(T)2025
+2529 y Fe(TEXTDOMAIN)9 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(69)2025 2793 y Fe(TMOUT)21
-b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025 2881 y Fe(TMPDIR)17
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(7)2025 2617
+y Fe(TEXTDOMAINDIR)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)46 b Fb(7)2025 2705 y Fe(TIMEFORMAT)7
+b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)33 b Fb(69)2025 2793 y Fe(TMOUT)21 b Fc(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025 2881 y Fe(TMPDIR)17
b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(70)2025 3119 y Fr(U)2025
3236 y Fe(UID)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(70)2025 3474 y Fr(V)2025 3592 y Fe(visible-stats)16
-b Fc(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43
-b Fb(98)150 3831 y Fr(D.4)68 b(F)-11 b(unction)44 b(Index)150
+b Fb(70)2025 3474 y Fr(V)2025 3592 y Fe(visible-stats)14
+b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41
+b Fb(100)150 3831 y Fr(D.4)68 b(F)-11 b(unction)44 b(Index)150
4068 y(A)150 4195 y Fe(abort)27 b(\(C-g\))9 b Fc(:)14
b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36
-b Fb(110)150 4287 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))e
+b Fb(112)150 4287 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))e
Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 b
-Fb(105)150 4380 y Fe(alias-expand-line)29 b(\(\))21 b
+Fb(107)150 4380 y Fe(alias-expand-line)29 b(\(\))21 b
Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(112)150 4659 y Fr(B)150
+(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(114)150 4659 y Fr(B)150
4785 y Fe(backward-char)29 b(\(C-b\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-49 b Fb(104)150 4878 y Fe(backward-delete-char)30 b(\(Rubout\))14
+49 b Fb(106)150 4878 y Fe(backward-delete-char)30 b(\(Rubout\))14
b Fc(:)h(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(106)150 4970 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))16
-b Fc(:)f(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(107)150
+b Fb(108)150 4970 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))16
+b Fc(:)f(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(109)150
5063 y Fe(backward-kill-word)30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
-b Fb(107)150 5155 y Fe(backward-kill-word)30 b(\(M-DEL\))23
+b Fb(109)150 5155 y Fe(backward-kill-word)30 b(\(M-DEL\))23
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-49 b Fb(107)150 5248 y Fe(backward-word)29 b(\(M-b\))23
+49 b Fb(109)150 5248 y Fe(backward-word)29 b(\(M-b\))23
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 b Fb(104)150 5340 y
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 b Fb(106)150 5340 y
Fe(beginning-of-history)30 b(\(M-<\))23 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(105)2025
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(107)2025
4068 y Fe(beginning-of-line)29 b(\(C-a\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(104)2025 4329 y Fr(C)2025 4449 y Fe(call-last-kbd-macro)30
+b Fb(106)2025 4329 y Fr(C)2025 4449 y Fe(call-last-kbd-macro)30
b(\(C-x)c(e\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)36 b Fb(110)2025 4538 y Fe(capitalize-word)29
+(:)h(:)f(:)g(:)36 b Fb(112)2025 4538 y Fe(capitalize-word)29
b(\(M-c\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(107)2025 4627
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(109)2025 4627
y Fe(character-search)29 b(\(C-]\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42
-b Fb(111)2025 4716 y Fe(character-search-backward)31
+b Fb(113)2025 4716 y Fe(character-search-backward)31
b(\(M-C-]\))23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)48
-b Fb(111)2025 4806 y Fe(clear-screen)28 b(\(C-l\))8 b
+b Fb(113)2025 4806 y Fe(clear-screen)28 b(\(C-l\))8 b
Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(104)2025
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(106)2025
4895 y Fe(complete)27 b(\(TAB\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)45 b Fb(108)2025 4984 y Fe(complete-command)29
+g(:)g(:)g(:)g(:)h(:)45 b Fb(110)2025 4984 y Fe(complete-command)29
b(\(M-!\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(109)2025 5073
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(111)2025 5073
y Fe(complete-filename)29 b(\(M-/\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(109)2025 5162 y Fe(complete-hostname)29 b(\(M-@\))13
+b Fb(111)2025 5162 y Fe(complete-hostname)29 b(\(M-@\))13
b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)40 b Fb(109)2025 5251 y Fe(complete-into-braces)30
+g(:)g(:)g(:)40 b Fb(111)2025 5251 y Fe(complete-into-braces)30
b(\(M-{\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)49 b Fb(110)2025 5340 y Fe(complete-username)29
+g(:)g(:)g(:)49 b Fb(112)2025 5340 y Fe(complete-username)29
b(\(M-~\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(109)p eop end
-%%Page: 153 159
-TeXDict begin 153 158 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(153)150 299 y Fe(complete-variable)29
+(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(111)p eop end
+%%Page: 155 161
+TeXDict begin 155 160 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(155)150 299 y Fe(complete-variable)29
b(\(M-$\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(109)150 389 y Fe(copy-backward-word)
+(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(111)150 389 y Fe(copy-backward-word)
30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(108)150 479
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(110)150 479
y Fe(copy-forward-word)29 b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47
-b Fb(108)150 569 y Fe(copy-region-as-kill)30 b(\(\))15
+b Fb(110)150 569 y Fe(copy-region-as-kill)30 b(\(\))15
b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)42 b Fb(108)150 836 y Fr(D)150 958 y
+g(:)g(:)g(:)g(:)42 b Fb(110)150 836 y Fr(D)150 958 y
Fe(dabbrev-expand)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-38 b Fb(110)150 1048 y Fe(delete-char)28 b(\(C-d\))11
+38 b Fb(112)150 1048 y Fe(delete-char)28 b(\(C-d\))11
b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(106)150
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(108)150
1138 y Fe(delete-char-or-list)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42
-b Fb(109)150 1228 y Fe(delete-horizontal-space)31 b(\(\))22
+b Fb(111)150 1228 y Fe(delete-horizontal-space)31 b(\(\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-49 b Fb(107)150 1318 y Fe(digit-argument)29 b(\()p Fd(M-0)p
+49 b Fb(109)150 1318 y Fe(digit-argument)29 b(\()p Fd(M-0)p
Fe(,)e Fd(M-1)p Fe(,)f(...)g Fd(M--)p Fe(\))d Fc(:)13
-b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(108)150 1408 y Fe
+b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(110)150 1408 y Fe
(display-shell-version)30 b(\(C-x)d(C-v\))16 b Fc(:)e(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(112)150 1499 y Fe(do-uppercase-version)
+(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(114)150 1499 y Fe(do-uppercase-version)
30 b(\(M-a,)d(M-b,)f(M-)p Fd(x)9 b Fe(,)27 b(...\))325
1586 y Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(110)150 1676
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(112)150 1676
y Fe(downcase-word)29 b(\(M-l\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49
-b Fb(106)150 1766 y Fe(dump-functions)29 b(\(\))11 b
+b Fb(108)150 1766 y Fe(dump-functions)29 b(\(\))11 b
Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(111)150
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(113)150
1856 y Fe(dump-macros)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)45 b Fb(111)150 1946 y Fe(dump-variables)29
+g(:)g(:)h(:)f(:)g(:)45 b Fb(113)150 1946 y Fe(dump-variables)29
b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38
-b Fb(111)150 2036 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7
-b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(110)150
+b Fb(113)150 2036 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7
+b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(112)150
2303 y Fr(E)150 2425 y Fe(edit-and-execute-command)e(\(C-xC-e\))23
-b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(112)150
+b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(114)150
2515 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))7 b Fc(:)14
b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)34 b Fb(110)150 2605 y Fe(end-of-history)29
+(:)g(:)h(:)f(:)g(:)34 b Fb(112)150 2605 y Fe(end-of-history)29
b(\(M->\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(105)150
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(107)150
2695 y Fe(end-of-line)28 b(\(C-e\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)38 b Fb(104)150 2785 y Fe(exchange-point-and-mark)31
+g(:)g(:)38 b Fb(106)150 2785 y Fe(exchange-point-and-mark)31
b(\(C-x)26 b(C-x\))11 b Fc(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)38
-b Fb(111)150 3052 y Fr(F)150 3174 y Fe(forward-backward-delete-char)32
+b Fb(113)150 3052 y Fr(F)150 3174 y Fe(forward-backward-delete-char)32
b(\(\))9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(106)150 3264 y Fe(forward-char)28 b(\(C-f\))8 b
+b Fb(108)150 3264 y Fe(forward-char)28 b(\(C-f\))8 b
Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(104)150
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(106)150
3354 y Fe(forward-search-history)c(\(C-s\))17 b Fc(:)d(:)f(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(105)150 3445
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(107)150 3445
y Fe(forward-word)28 b(\(M-f\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)35 b Fb(104)150 3701 y Fr(G)150 3823 y Fe(glob-complete-word)30
+(:)35 b Fb(106)150 3701 y Fr(G)150 3823 y Fe(glob-complete-word)30
b(\(M-g\))10 b Fc(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(112)150 3913 y Fe(glob-expand-word)29
+(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(114)150 3913 y Fe(glob-expand-word)29
b(\(C-x)e(*\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(112)150 4003 y Fe
+(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(114)150 4003 y Fe
(glob-list-expansions)30 b(\(C-x)d(g\))7 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(112)150 4270
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(114)150 4270
y Fr(H)150 4392 y Fe(history-and-alias-expand-line)f(\(\))7
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(112)150
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(114)150
4482 y Fe(history-expand-line)d(\(M-^\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(112)150 4572 y Fe(history-search-backward)d(\(\))22
+b Fb(114)150 4572 y Fe(history-search-backward)d(\(\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-49 b Fb(105)150 4662 y Fe(history-search-forward)31 b(\(\))8
+49 b Fb(107)150 4662 y Fe(history-search-forward)31 b(\(\))8
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)34 b Fb(105)150 4929 y Fr(I)150 5051 y Fe(insert-comment)29
+(:)g(:)34 b Fb(107)150 4929 y Fr(I)150 5051 y Fe(insert-comment)29
b(\(M-#\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(111)150
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(113)150
5141 y Fe(insert-completions)30 b(\(M-*\))10 b Fc(:)k(:)f(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37
-b Fb(109)150 5231 y Fe(insert-last-argument)30 b(\(M-.)d(or)f(M-_\))18
-b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(112)2025
+b Fb(111)150 5231 y Fe(insert-last-argument)30 b(\(M-.)d(or)f(M-_\))18
+b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(114)2025
299 y Fr(K)2025 416 y Fe(kill-line)27 b(\(C-k\))16 b
Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(107)2025
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(109)2025
503 y Fe(kill-region)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)45 b Fb(108)2025 591 y Fe(kill-whole-line)29
+g(:)g(:)g(:)g(:)h(:)45 b Fb(110)2025 591 y Fe(kill-whole-line)29
b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b
-Fb(107)2025 678 y Fe(kill-word)27 b(\(M-d\))16 b Fc(:)f(:)e(:)g(:)g(:)g
+Fb(109)2025 678 y Fe(kill-word)27 b(\(M-d\))16 b Fc(:)f(:)e(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(107)2025 921 y Fr(M)2025
+g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(109)2025 921 y Fr(M)2025
1038 y Fe(magic-space)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)45 b Fb(112)2025 1126 y Fe(menu-complete)28
+g(:)g(:)g(:)g(:)h(:)45 b Fb(114)2025 1126 y Fe(menu-complete)28
b(\(\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40
-b Fb(109)2025 1213 y Fe(menu-complete-backward)30 b(\(\))8
+b Fb(111)2025 1213 y Fe(menu-complete-backward)30 b(\(\))8
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)34 b Fb(109)2025 1467 y Fr(N)2025 1584 y Fe(next-history)28
+(:)h(:)34 b Fb(111)2025 1467 y Fr(N)2025 1584 y Fe(next-history)28
b(\(C-n\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(105)2025 1671 y Fe(non-incremental-forward-search)q(-hist)q(ory)d
+b Fb(107)2025 1671 y Fe(non-incremental-forward-search)q(-hist)q(ory)d
(\(M-n\))2200 1758 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b
-Fb(105)2025 1846 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32
+Fb(107)2025 1846 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32
b(\(M-p\))2200 1933 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b
-Fb(105)2025 2168 y Fr(O)2025 2285 y Fe(operate-and-get-next)30
+Fb(107)2025 2168 y Fr(O)2025 2285 y Fe(operate-and-get-next)30
b(\(C-o\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)49 b Fb(112)2025 2372 y Fe(overwrite-mode)29
+g(:)g(:)g(:)49 b Fb(114)2025 2372 y Fe(overwrite-mode)29
b(\(\))11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(107)2025 2615 y Fr(P)2025 2732 y Fe(possible-command-completions)
+b Fb(109)2025 2615 y Fr(P)2025 2732 y Fe(possible-command-completions)
32 b(\(C-x)26 b(!\))21 b Fc(:)13 b(:)g(:)h(:)f(:)47 b
-Fb(110)2025 2820 y Fe(possible-completions)30 b(\(M-?\))23
+Fb(112)2025 2820 y Fe(possible-completions)30 b(\(M-?\))23
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-49 b Fb(108)2025 2907 y Fe(possible-filename-completions)32
-b(\(C-x)26 b(/\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(109)2025
+49 b Fb(110)2025 2907 y Fe(possible-filename-completions)32
+b(\(C-x)26 b(/\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025
2995 y Fe(possible-hostname-completions)32 b(\(C-x)26
-b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(109)2025 3082 y Fe
+b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 3082 y Fe
(possible-username-completions)32 b(\(C-x)26 b(~\))18
-b Fc(:)c(:)f(:)g(:)45 b Fb(109)2025 3170 y Fe
+b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 3170 y Fe
(possible-variable-completions)32 b(\(C-x)26 b($\))18
-b Fc(:)c(:)f(:)g(:)45 b Fb(109)2025 3258 y Fe(prefix-meta)28
+b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 3258 y Fe(prefix-meta)28
b(\(ESC\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(110)2025 3345 y Fe(previous-history)29 b(\(C-p\))15
+b Fb(112)2025 3345 y Fe(previous-history)29 b(\(C-p\))15
b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)42 b Fb(105)2025 3599 y Fr(Q)2025 3715
+h(:)f(:)g(:)g(:)42 b Fb(107)2025 3599 y Fr(Q)2025 3715
y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))19 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)46
-b Fb(106)2025 3969 y Fr(R)2025 4086 y Fe(re-read-init-file)29
+b Fb(108)2025 3969 y Fr(R)2025 4086 y Fe(re-read-init-file)29
b(\(C-x)e(C-r\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)36 b Fb(110)2025 4173 y Fe(redraw-current-line)30
+(:)g(:)h(:)f(:)g(:)36 b Fb(112)2025 4173 y Fe(redraw-current-line)30
b(\(\))15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(104)2025 4261 y Fe
+(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(106)2025 4261 y Fe
(reverse-search-history)30 b(\(C-r\))17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(105)2025 4348 y Fe(revert-line)28
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(107)2025 4348 y Fe(revert-line)28
b(\(M-r\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(110)2025 4592 y Fr(S)2025 4708 y Fe(self-insert)28
+b Fb(112)2025 4592 y Fr(S)2025 4708 y Fe(self-insert)28
b(\(a,)e(b,)g(A,)g(1,)g(!,)g(...)q(\))7 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(106)2025 4796 y Fe(set-mark)27
+(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(108)2025 4796 y Fe(set-mark)27
b(\(C-@\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45
-b Fb(111)2025 4883 y Fe(shell-backward-word)30 b(\(\))15
+b Fb(113)2025 4883 y Fe(shell-backward-word)30 b(\(\))15
b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)42 b Fb(104)2025 4971 y Fe(shell-expand-line)29
+h(:)f(:)g(:)g(:)42 b Fb(106)2025 4971 y Fe(shell-expand-line)29
b(\(M-C-e\))8 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(112)2025 5059 y Fe(shell-forward-word)29
+(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(114)2025 5059 y Fe(shell-forward-word)29
b(\(\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(104)2025 5146
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(106)2025 5146
y Fe(shell-kill-word)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)35 b Fb(107)2025 5234 y Fe(skip-csi-sequence)29 b(\(\))21
+(:)35 b Fb(109)2025 5234 y Fe(skip-csi-sequence)29 b(\(\))21
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(111)2025 5321 y Fe(start-kbd-macro)
+(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(113)2025 5321 y Fe(start-kbd-macro)
29 b(\(C-x)d(\(\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)46 b Fb(110)p eop
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)46 b Fb(112)p eop
end
-%%Page: 154 160
-TeXDict begin 154 159 bop 150 -116 a Ft(154)2527 b(Bash)31
+%%Page: 156 162
+TeXDict begin 156 161 bop 150 -116 a Ft(156)2527 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fr(T)150 415 y Fe(tilde-expand)d
(\(M-&\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(111)150 502 y Fe(transpose-chars)29 b(\(C-t\))18
+b Fb(113)150 502 y Fe(transpose-chars)29 b(\(C-t\))18
b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)44 b Fb(106)150 590 y Fe(transpose-words)29
+g(:)g(:)g(:)g(:)h(:)44 b Fb(108)150 590 y Fe(transpose-words)29
b(\(M-t\))18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(106)150 842
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(108)150 842
y Fr(U)150 958 y Fe(undo)27 b(\(C-_)f(or)g(C-x)g(C-u\))c
Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(110)150 1046 y Fe
+(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(112)150 1046 y Fe
(universal-argument)30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
-b Fb(108)150 1133 y Fe(unix-filename-rubout)30 b(\(\))13
+b Fb(110)150 1133 y Fe(unix-filename-rubout)30 b(\(\))13
b Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)39 b Fb(107)2025 299 y Fe(unix-line-discard)29
+g(:)h(:)f(:)39 b Fb(109)2025 299 y Fe(unix-line-discard)29
b(\(C-u\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(107)2025 389 y Fe(unix-word-rubout)
+(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(109)2025 389 y Fe(unix-word-rubout)
29 b(\(C-w\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(107)2025 478
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(109)2025 478
y Fe(upcase-word)28 b(\(M-u\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)38 b Fb(106)2025 743 y Fr(Y)2025 864 y Fe(yank)26
+g(:)38 b Fb(108)2025 743 y Fr(Y)2025 864 y Fe(yank)26
b(\(C-y\))12 b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)39 b Fb(108)2025 954 y Fe(yank-last-arg)28
+g(:)g(:)g(:)g(:)39 b Fb(110)2025 954 y Fe(yank-last-arg)28
b(\(M-.)f(or)f(M-_\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(106)2025 1043 y Fe(yank-nth-arg)28
+(:)g(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(108)2025 1043 y Fe(yank-nth-arg)28
b(\(M-C-y\))22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(105)2025
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(107)2025
1133 y Fe(yank-pop)27 b(\(M-y\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)45 b Fb(108)150 1366 y Fr(D.5)68
+g(:)g(:)g(:)g(:)h(:)45 b Fb(110)150 1366 y Fr(D.5)68
b(Concept)45 b(Index)150 1625 y(A)150 1743 y Fb(alias)27
b(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
@@ -15943,12 +15973,12 @@ f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b Fb(80)150 2348 y Fr(B)150
2466 y Fb(bac)n(kground)9 b Fc(:)j(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(87)150 2554 y(Bash)26
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(89)150 2554 y(Bash)26
b(con\014guration)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(125)150 2642 y(Bash)26 b(installation)c Fc(:)13
+b Fb(127)150 2642 y(Bash)26 b(installation)c Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(125)150
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(127)150
2729 y(Bourne)26 b(shell)13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(5)150 2817
@@ -15960,14 +15990,14 @@ g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
g(:)g(:)36 b Fb(3)150 3142 y Fr(C)150 3260 y Fb(command)26
b(editing)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)42
-b Fb(92)150 3348 y(command)26 b(execution)d Fc(:)13 b(:)g(:)g(:)g(:)g
+b Fb(94)150 3348 y(command)26 b(execution)d Fc(:)13 b(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)49 b Fb(30)150 3435 y(command)26 b(expansion)16
b Fc(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(29)150
3523 y(command)26 b(history)12 b Fc(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)39 b Fb(119)150 3611 y(command)26 b(searc)n(h)10
+g(:)g(:)39 b Fb(121)150 3611 y(command)26 b(searc)n(h)10
b Fc(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36
b Fb(30)150 3699 y(command)26 b(substitution)15 b Fc(:)e(:)g(:)g(:)g(:)
@@ -16000,21 +16030,21 @@ b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34
b Fb(7)150 4667 y(completion)27 b(builtins)15 b Fc(:)e(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)42 b Fb(115)150 4755 y(con\014guration)15
+g(:)g(:)g(:)g(:)42 b Fb(117)150 4755 y(con\014guration)15
b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42
-b Fb(125)150 4842 y(con)n(trol)26 b(op)r(erator)21 b
+b Fb(127)150 4842 y(con)n(trol)26 b(op)r(erator)21 b
Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
b Fb(3)150 4930 y(copro)r(cess)12 b Fc(:)i(:)g(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b
-Fb(13)150 5184 y Fr(D)150 5301 y Fb(directory)26 b(stac)n(k)c
+Fb(14)150 5184 y Fr(D)150 5301 y Fb(directory)26 b(stac)n(k)c
Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49
b Fb(81)2025 1625 y Fr(E)2025 1745 y Fb(editing)26 b(command)g(lines)13
b Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)39 b Fb(92)2025 1834
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)39 b Fb(94)2025 1834
y(en)n(vironmen)n(t)12 b Fc(:)g(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(31)2025 1923 y(ev)l(aluation,)26
@@ -16022,7 +16052,7 @@ b(arithmetic)e Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)49 b
Fb(78)2025 2012 y(ev)n(en)n(t)24 b(designators)14 b Fc(:)h(:)e(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 b Fb(121)2025 2101 y(execution)25
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 b Fb(123)2025 2101 y(execution)25
b(en)n(vironmen)n(t)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37
b Fb(30)2025 2190 y(exit)25 b(status)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:)
@@ -16046,7 +16076,7 @@ b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(24)2025 2813 y(expansion,)26
b(tilde)8 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)34 b Fb(18)2025 2902 y(expressions,)27 b(arithmetic)7
+g(:)34 b Fb(19)2025 2902 y(expressions,)27 b(arithmetic)7
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(78)2025 2991
y(expressions,)27 b(conditional)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g
@@ -16063,57 +16093,57 @@ g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)49 b Fb(24)2025 3636 y(foreground)23 b Fc(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-49 b Fb(87)2025 3725 y(functions,)26 b(shell)21 b Fc(:)13
+49 b Fb(89)2025 3725 y(functions,)26 b(shell)21 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47
b Fb(14)2025 3984 y Fr(H)2025 4104 y Fb(history)25 b(builtins)14
b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41
-b Fb(119)2025 4193 y(history)25 b(ev)n(en)n(ts)19 b Fc(:)13
+b Fb(121)2025 4193 y(history)25 b(ev)n(en)n(ts)19 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46
-b Fb(121)2025 4282 y(history)25 b(expansion)8 b Fc(:)14
+b Fb(123)2025 4282 y(history)25 b(expansion)8 b Fc(:)14
b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(121)2025
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(123)2025
4371 y(history)25 b(list)c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)47 b Fb(119)2025 4460
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)47 b Fb(121)2025 4460
y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)40 b Fb(118)2025 4719 y Fr(I)2025 4838 y
+g(:)g(:)g(:)40 b Fb(120)2025 4719 y Fr(I)2025 4838 y
Fb(iden)n(ti\014er)22 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50 b Fb(3)2025
4927 y(initialization)28 b(\014le,)e(readline)13 b Fc(:)h(:)f(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-40 b Fb(94)2025 5016 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)g(:)g(:)h
+40 b Fb(96)2025 5016 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(125)2025
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(127)2025
5105 y(in)n(teraction,)26 b(readline)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)47 b Fb(91)2025 5194 y(in)n(teractiv)n(e)26
+(:)g(:)g(:)47 b Fb(93)2025 5194 y(in)n(teractiv)n(e)26
b(shell)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)40
b Fb(73,)27 b(75)2025 5283 y(in)n(ternationalization)14
b Fc(:)h(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b
Fb(7)p eop end
-%%Page: 155 161
-TeXDict begin 155 160 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(155)150 299 y Fr(J)150 415 y Fb(job)16
+%%Page: 157 163
+TeXDict begin 157 162 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(157)150 299 y Fr(J)150 415 y Fb(job)16
b Fc(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 b Fb(3)150
503 y(job)26 b(con)n(trol)13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Fb(3,)26 b(87)150 753
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Fb(3,)26 b(89)150 753
y Fr(K)150 870 y Fb(kill)g(ring)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47
-b Fb(93)150 957 y(killing)27 b(text)19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
+b Fb(95)150 957 y(killing)27 b(text)19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b
-Fb(93)150 1208 y Fr(L)150 1324 y Fb(lo)r(calization)14
+Fb(95)150 1208 y Fr(L)150 1324 y Fb(lo)r(calization)14
b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)41 b Fb(7)150 1412 y(login)27 b(shell)17 b
@@ -16133,7 +16163,7 @@ b Fb(3)150 2304 y(nativ)n(e)25 b(languages)13 b Fc(:)i(:)e(:)g(:)h(:)f
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(7)150 2391
y(notation,)27 b(readline)9 b Fc(:)k(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)35 b Fb(92)150 2642 y Fr(O)150 2759 y Fb(op)r(erator,)27
+(:)f(:)g(:)35 b Fb(94)150 2642 y Fr(O)150 2759 y Fb(op)r(erator,)27
b(shell)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)43 b Fb(3)150 3009 y Fr(P)150 3126 y Fb(parameter)26
@@ -16171,7 +16201,7 @@ b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)48 b Fb(23)150
4175 y(programmable)27 b(completion)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46
-b Fb(113)150 4262 y(prompting)11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+b Fb(115)150 4262 y(prompting)11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(82)2025
299 y Fr(Q)2025 419 y Fb(quoting)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:)
@@ -16182,7 +16212,7 @@ g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(6)2025
768 y Fr(R)2025 888 y Fb(Readline,)26 b(ho)n(w)g(to)g(use)7
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(90)2025
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(92)2025
977 y(redirection)7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(26)2025 1066
@@ -16223,10 +16253,10 @@ b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
b Fb(73)2025 2409 y(susp)r(ending)25 b(jobs)6 b Fc(:)14
b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(87)2025 2669 y Fr(T)2025 2789 y Fb(tilde)26 b(expansion)18
+b Fb(89)2025 2669 y Fr(T)2025 2789 y Fb(tilde)26 b(expansion)18
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45
-b Fb(18)2025 2878 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)
+b Fb(19)2025 2878 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)38
b Fb(4)2025 2967 y(translation,)27 b(nativ)n(e)e(languages)13
@@ -16237,7 +16267,7 @@ b(shell)8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
f(:)g(:)g(:)34 b Fb(15)2025 3436 y(v)l(ariables,)27 b(readline)21
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47
-b Fb(95)2025 3695 y Fr(W)2025 3815 y Fb(w)n(ord)21 b
+b Fb(97)2025 3695 y Fr(W)2025 3815 y Fb(w)n(ord)21 b
Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(4)2025 3904
@@ -16246,10 +16276,10 @@ y(w)n(ord)26 b(splitting)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(23)2025 4164 y Fr(Y)2025
4284 y Fb(y)n(anking)25 b(text)9 b Fc(:)j(:)h(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(93)p eop
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(95)p eop
end
-%%Page: 156 162
-TeXDict begin 156 161 bop eop end
+%%Page: 158 164
+TeXDict begin 158 163 bop eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/bashref.texi b/doc/bashref.texi
index 9760835e..e53a8163 100644
--- a/doc/bashref.texi
+++ b/doc/bashref.texi
@@ -3648,7 +3648,7 @@ parent.
mapfile [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [
-C @var{callback}] [-c @var{quantum}] [@var{array}]
@end example
-Read lines from the standard input into array variable @var{array},
+Read lines from the standard input into the indexed array variable @var{array},
or from file descriptor @var{fd}
if the @option{-u} option is supplied.
The variable @code{MAPFILE} is the default @var{array}.
@@ -3684,7 +3684,8 @@ If not supplied with an explicit origin, @code{mapfile} will clear @var{array}
before assigning to it.
@code{mapfile} returns successfully unless an invalid option or option
-argument is supplied, or @var{array} is invalid or unassignable.
+argument is supplied, @var{array} is invalid or unassignable, or @var{array}
+is not an indexed array.
@item printf
@btindex printf
@@ -3808,7 +3809,7 @@ Read input from file descriptor @var{fd}.
readarray [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [
-C @var{callback}] [-c @var{quantum}] [@var{array}]
@end example
-Read lines from the standard input into array variable @var{array},
+Read lines from the standard input into the indexed array variable @var{array},
or from file descriptor @var{fd}
if the @option{-u} option is supplied.
diff --git a/doc/bashref.texi~ b/doc/bashref.texi~
index 284f39cb..9760835e 100644
--- a/doc/bashref.texi~
+++ b/doc/bashref.texi~
@@ -3719,7 +3719,7 @@ non-zero on failure.
@item read
@btindex read
@example
-read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}]
+read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-N @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}]
@end example
One line is read from the standard input, or from the file descriptor
@var{fd} supplied as an argument to the @option{-u} option, and the first word
@@ -3762,7 +3762,13 @@ the editing buffer before editing begins.
@item -n @var{nchars}
@code{read} returns after reading @var{nchars} characters rather than
-waiting for a complete line of input.
+waiting for a complete line of input, but honor a delimiter if fewer
+than @var{nchars} characters are read before the delimiter.
+
+@item -N @var{nchars}
+@code{read} returns after reading exactly @var{nchars} characters rather
+than waiting for a complete line of input, unless EOF is encountered or
+@code{read} times out. Any delimiter is ignored.
@item -p @var{prompt}
Display @var{prompt}, without a trailing newline, before attempting
diff --git a/doc/bashref.toc b/doc/bashref.toc
index ab6deee7..440aa6e2 100644
--- a/doc/bashref.toc
+++ b/doc/bashref.toc
@@ -20,14 +20,14 @@
@numsubsubsecentry{Looping Constructs}{3.2.4.1}{Looping Constructs}{9}
@numsubsubsecentry{Conditional Constructs}{3.2.4.2}{Conditional Constructs}{10}
@numsubsubsecentry{Grouping Commands}{3.2.4.3}{Command Grouping}{13}
-@numsubsecentry{Coprocesses}{3.2.5}{Coprocesses}{13}
+@numsubsecentry{Coprocesses}{3.2.5}{Coprocesses}{14}
@numsecentry{Shell Functions}{3.3}{Shell Functions}{14}
@numsecentry{Shell Parameters}{3.4}{Shell Parameters}{15}
@numsubsecentry{Positional Parameters}{3.4.1}{Positional Parameters}{16}
@numsubsecentry{Special Parameters}{3.4.2}{Special Parameters}{16}
@numsecentry{Shell Expansions}{3.5}{Shell Expansions}{17}
@numsubsecentry{Brace Expansion}{3.5.1}{Brace Expansion}{18}
-@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{18}
+@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{19}
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{19}
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{22}
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{23}
@@ -81,57 +81,57 @@
@numsecentry{Controlling the Prompt}{6.9}{Printing a Prompt}{82}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{84}
@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{84}
-@numchapentry{Job Control}{7}{Job Control}{87}
-@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{87}
-@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{88}
-@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{90}
-@numchapentry{Command Line Editing}{8}{Command Line Editing}{91}
-@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{91}
-@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{91}
-@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{92}
-@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{92}
-@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{93}
-@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{93}
-@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{93}
-@numsecentry{Readline Init File}{8.3}{Readline Init File}{94}
-@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{94}
-@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{100}
-@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{101}
-@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{104}
-@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{104}
-@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{105}
-@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{106}
-@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{107}
-@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{108}
-@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{108}
-@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{110}
-@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{110}
-@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{112}
-@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{113}
-@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{115}
-@numchapentry{Using History Interactively}{9}{Using History Interactively}{119}
-@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{119}
-@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{119}
-@numsecentry{History Expansion}{9.3}{History Interaction}{121}
-@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{121}
-@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{122}
-@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{123}
-@numchapentry{Installing Bash}{10}{Installing Bash}{125}
-@numsecentry{Basic Installation}{10.1}{Basic Installation}{125}
-@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{126}
-@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{126}
-@numsecentry{Installation Names}{10.4}{Installation Names}{126}
-@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{126}
-@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{127}
-@numsecentry{Operation Controls}{10.7}{Operation Controls}{127}
-@numsecentry{Optional Features}{10.8}{Optional Features}{127}
-@appentry{Reporting Bugs}{A}{Reporting Bugs}{133}
-@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{135}
-@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{139}
-@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{141}
-@appentry{Indexes}{D}{Indexes}{149}
-@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{149}
-@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{150}
-@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{150}
-@appsecentry{Function Index}{D.4}{Function Index}{152}
-@appsecentry{Concept Index}{D.5}{Concept Index}{154}
+@numchapentry{Job Control}{7}{Job Control}{89}
+@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{89}
+@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{90}
+@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{92}
+@numchapentry{Command Line Editing}{8}{Command Line Editing}{93}
+@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{93}
+@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{93}
+@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{94}
+@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{94}
+@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{95}
+@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{95}
+@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{95}
+@numsecentry{Readline Init File}{8.3}{Readline Init File}{96}
+@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{96}
+@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{102}
+@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{103}
+@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{106}
+@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{106}
+@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{107}
+@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{108}
+@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{109}
+@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{110}
+@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{110}
+@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{112}
+@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{112}
+@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{114}
+@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{115}
+@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{117}
+@numchapentry{Using History Interactively}{9}{Using History Interactively}{121}
+@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{121}
+@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{121}
+@numsecentry{History Expansion}{9.3}{History Interaction}{123}
+@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{123}
+@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{124}
+@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{125}
+@numchapentry{Installing Bash}{10}{Installing Bash}{127}
+@numsecentry{Basic Installation}{10.1}{Basic Installation}{127}
+@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{128}
+@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{128}
+@numsecentry{Installation Names}{10.4}{Installation Names}{128}
+@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{128}
+@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{129}
+@numsecentry{Operation Controls}{10.7}{Operation Controls}{129}
+@numsecentry{Optional Features}{10.8}{Optional Features}{129}
+@appentry{Reporting Bugs}{A}{Reporting Bugs}{135}
+@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{137}
+@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{141}
+@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{143}
+@appentry{Indexes}{D}{Indexes}{151}
+@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{151}
+@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{152}
+@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{152}
+@appsecentry{Function Index}{D.4}{Function Index}{154}
+@appsecentry{Concept Index}{D.5}{Concept Index}{156}
diff --git a/doc/bashref.vr b/doc/bashref.vr
index 0e6c6f25..ecd6c73d 100644
--- a/doc/bashref.vr
+++ b/doc/bashref.vr
@@ -98,31 +98,31 @@
\entry{TMOUT}{69}{\code {TMOUT}}
\entry{TMPDIR}{70}{\code {TMPDIR}}
\entry{UID}{70}{\code {UID}}
-\entry{auto_resume}{90}{\code {auto_resume}}
-\entry{bell-style}{95}{\code {bell-style}}
-\entry{bind-tty-special-chars}{95}{\code {bind-tty-special-chars}}
-\entry{comment-begin}{95}{\code {comment-begin}}
-\entry{completion-prefix-display-length}{95}{\code {completion-prefix-display-length}}
-\entry{completion-query-items}{95}{\code {completion-query-items}}
-\entry{convert-meta}{96}{\code {convert-meta}}
-\entry{disable-completion}{96}{\code {disable-completion}}
-\entry{editing-mode}{96}{\code {editing-mode}}
-\entry{enable-keypad}{96}{\code {enable-keypad}}
-\entry{expand-tilde}{96}{\code {expand-tilde}}
-\entry{history-preserve-point}{96}{\code {history-preserve-point}}
-\entry{history-size}{96}{\code {history-size}}
-\entry{horizontal-scroll-mode}{96}{\code {horizontal-scroll-mode}}
-\entry{input-meta}{96}{\code {input-meta}}
-\entry{meta-flag}{96}{\code {meta-flag}}
-\entry{isearch-terminators}{97}{\code {isearch-terminators}}
-\entry{keymap}{97}{\code {keymap}}
-\entry{mark-modified-lines}{97}{\code {mark-modified-lines}}
-\entry{mark-symlinked-directories}{97}{\code {mark-symlinked-directories}}
-\entry{match-hidden-files}{97}{\code {match-hidden-files}}
-\entry{output-meta}{97}{\code {output-meta}}
-\entry{page-completions}{97}{\code {page-completions}}
-\entry{revert-all-at-newline}{98}{\code {revert-all-at-newline}}
-\entry{show-all-if-ambiguous}{98}{\code {show-all-if-ambiguous}}
-\entry{show-all-if-unmodified}{98}{\code {show-all-if-unmodified}}
-\entry{skip-completed-text}{98}{\code {skip-completed-text}}
-\entry{visible-stats}{98}{\code {visible-stats}}
+\entry{auto_resume}{92}{\code {auto_resume}}
+\entry{bell-style}{97}{\code {bell-style}}
+\entry{bind-tty-special-chars}{97}{\code {bind-tty-special-chars}}
+\entry{comment-begin}{97}{\code {comment-begin}}
+\entry{completion-prefix-display-length}{97}{\code {completion-prefix-display-length}}
+\entry{completion-query-items}{97}{\code {completion-query-items}}
+\entry{convert-meta}{98}{\code {convert-meta}}
+\entry{disable-completion}{98}{\code {disable-completion}}
+\entry{editing-mode}{98}{\code {editing-mode}}
+\entry{enable-keypad}{98}{\code {enable-keypad}}
+\entry{expand-tilde}{98}{\code {expand-tilde}}
+\entry{history-preserve-point}{98}{\code {history-preserve-point}}
+\entry{history-size}{98}{\code {history-size}}
+\entry{horizontal-scroll-mode}{98}{\code {horizontal-scroll-mode}}
+\entry{input-meta}{99}{\code {input-meta}}
+\entry{meta-flag}{99}{\code {meta-flag}}
+\entry{isearch-terminators}{99}{\code {isearch-terminators}}
+\entry{keymap}{99}{\code {keymap}}
+\entry{mark-modified-lines}{99}{\code {mark-modified-lines}}
+\entry{mark-symlinked-directories}{99}{\code {mark-symlinked-directories}}
+\entry{match-hidden-files}{99}{\code {match-hidden-files}}
+\entry{output-meta}{99}{\code {output-meta}}
+\entry{page-completions}{99}{\code {page-completions}}
+\entry{revert-all-at-newline}{100}{\code {revert-all-at-newline}}
+\entry{show-all-if-ambiguous}{100}{\code {show-all-if-ambiguous}}
+\entry{show-all-if-unmodified}{100}{\code {show-all-if-unmodified}}
+\entry{skip-completed-text}{100}{\code {skip-completed-text}}
+\entry{visible-stats}{100}{\code {visible-stats}}
diff --git a/doc/bashref.vrs b/doc/bashref.vrs
index 0858d044..c3cb4b1a 100644
--- a/doc/bashref.vrs
+++ b/doc/bashref.vrs
@@ -17,7 +17,7 @@
\initial {0}
\entry {\code {0}}{17}
\initial {A}
-\entry {\code {auto_resume}}{90}
+\entry {\code {auto_resume}}{92}
\initial {B}
\entry {\code {BASH}}{61}
\entry {\code {BASH_ALIASES}}{62}
@@ -36,12 +36,12 @@
\entry {\code {BASH_XTRACEFD}}{63}
\entry {\code {BASHOPTS}}{62}
\entry {\code {BASHPID}}{62}
-\entry {\code {bell-style}}{95}
-\entry {\code {bind-tty-special-chars}}{95}
+\entry {\code {bell-style}}{97}
+\entry {\code {bind-tty-special-chars}}{97}
\initial {C}
\entry {\code {CDPATH}}{61}
\entry {\code {COLUMNS}}{64}
-\entry {\code {comment-begin}}{95}
+\entry {\code {comment-begin}}{97}
\entry {\code {COMP_CWORD}}{64}
\entry {\code {COMP_KEY}}{64}
\entry {\code {COMP_LINE}}{64}
@@ -49,19 +49,19 @@
\entry {\code {COMP_TYPE}}{64}
\entry {\code {COMP_WORDBREAKS}}{64}
\entry {\code {COMP_WORDS}}{64}
-\entry {\code {completion-prefix-display-length}}{95}
-\entry {\code {completion-query-items}}{95}
+\entry {\code {completion-prefix-display-length}}{97}
+\entry {\code {completion-query-items}}{97}
\entry {\code {COMPREPLY}}{65}
-\entry {\code {convert-meta}}{96}
+\entry {\code {convert-meta}}{98}
\initial {D}
\entry {\code {DIRSTACK}}{65}
-\entry {\code {disable-completion}}{96}
+\entry {\code {disable-completion}}{98}
\initial {E}
-\entry {\code {editing-mode}}{96}
+\entry {\code {editing-mode}}{98}
\entry {\code {EMACS}}{65}
-\entry {\code {enable-keypad}}{96}
+\entry {\code {enable-keypad}}{98}
\entry {\code {EUID}}{65}
-\entry {\code {expand-tilde}}{96}
+\entry {\code {expand-tilde}}{98}
\initial {F}
\entry {\code {FCEDIT}}{65}
\entry {\code {FIGNORE}}{65}
@@ -76,23 +76,23 @@
\entry {\code {HISTFILE}}{66}
\entry {\code {HISTFILESIZE}}{66}
\entry {\code {HISTIGNORE}}{66}
-\entry {\code {history-preserve-point}}{96}
-\entry {\code {history-size}}{96}
+\entry {\code {history-preserve-point}}{98}
+\entry {\code {history-size}}{98}
\entry {\code {HISTSIZE}}{66}
\entry {\code {HISTTIMEFORMAT}}{66}
\entry {\code {HOME}}{61}
-\entry {\code {horizontal-scroll-mode}}{96}
+\entry {\code {horizontal-scroll-mode}}{98}
\entry {\code {HOSTFILE}}{67}
\entry {\code {HOSTNAME}}{67}
\entry {\code {HOSTTYPE}}{67}
\initial {I}
\entry {\code {IFS}}{61}
\entry {\code {IGNOREEOF}}{67}
-\entry {\code {input-meta}}{96}
+\entry {\code {input-meta}}{99}
\entry {\code {INPUTRC}}{67}
-\entry {\code {isearch-terminators}}{97}
+\entry {\code {isearch-terminators}}{99}
\initial {K}
-\entry {\code {keymap}}{97}
+\entry {\code {keymap}}{99}
\initial {L}
\entry {\code {LANG}}{67}
\entry {\code {LC_ALL}}{67}
@@ -107,19 +107,19 @@
\entry {\code {MAIL}}{61}
\entry {\code {MAILCHECK}}{68}
\entry {\code {MAILPATH}}{61}
-\entry {\code {mark-modified-lines}}{97}
-\entry {\code {mark-symlinked-directories}}{97}
-\entry {\code {match-hidden-files}}{97}
-\entry {\code {meta-flag}}{96}
+\entry {\code {mark-modified-lines}}{99}
+\entry {\code {mark-symlinked-directories}}{99}
+\entry {\code {match-hidden-files}}{99}
+\entry {\code {meta-flag}}{99}
\initial {O}
\entry {\code {OLDPWD}}{68}
\entry {\code {OPTARG}}{61}
\entry {\code {OPTERR}}{68}
\entry {\code {OPTIND}}{61}
\entry {\code {OSTYPE}}{68}
-\entry {\code {output-meta}}{97}
+\entry {\code {output-meta}}{99}
\initial {P}
-\entry {\code {page-completions}}{97}
+\entry {\code {page-completions}}{99}
\entry {\code {PATH}}{61}
\entry {\code {PIPESTATUS}}{68}
\entry {\code {POSIXLY_CORRECT}}{68}
@@ -134,15 +134,15 @@
\initial {R}
\entry {\code {RANDOM}}{68}
\entry {\code {REPLY}}{68}
-\entry {\code {revert-all-at-newline}}{98}
+\entry {\code {revert-all-at-newline}}{100}
\initial {S}
\entry {\code {SECONDS}}{69}
\entry {\code {SHELL}}{69}
\entry {\code {SHELLOPTS}}{69}
\entry {\code {SHLVL}}{69}
-\entry {\code {show-all-if-ambiguous}}{98}
-\entry {\code {show-all-if-unmodified}}{98}
-\entry {\code {skip-completed-text}}{98}
+\entry {\code {show-all-if-ambiguous}}{100}
+\entry {\code {show-all-if-unmodified}}{100}
+\entry {\code {skip-completed-text}}{100}
\initial {T}
\entry {\code {TEXTDOMAIN}}{7}
\entry {\code {TEXTDOMAINDIR}}{7}
@@ -152,4 +152,4 @@
\initial {U}
\entry {\code {UID}}{70}
\initial {V}
-\entry {\code {visible-stats}}{98}
+\entry {\code {visible-stats}}{100}
diff --git a/doc/builtins.0 b/doc/builtins.0
index effd125a..0a44a24d 100644
--- a/doc/builtins.0
+++ b/doc/builtins.0
@@ -859,8 +859,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
occurs while reading the name of the current directory or an
invalid option is supplied.
- rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt
- _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
+ rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp
+ _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
One line is read from the standard input, or from the file
descriptor _f_d supplied as an argument to the --uu option, and the
first word is assigned to the first _n_a_m_e, the second word to the
@@ -889,112 +889,119 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
placed into the editing buffer before editing begins.
--nn _n_c_h_a_r_s
rreeaadd returns after reading _n_c_h_a_r_s characters rather than
- waiting for a complete line of input.
+ waiting for a complete line of input, but honor a delim-
+ iter if fewer than _n_c_h_a_r_s characters are read before the
+ delimiter.
+ --NN _n_c_h_a_r_s
+ rreeaadd returns after reading exactly _n_c_h_a_r_s characters
+ rather than waiting for a complete line of input, unless
+ EOF is encountered or rreeaadd times out. Any delimiter is
+ ignored.
--pp _p_r_o_m_p_t
Display _p_r_o_m_p_t on standard error, without a trailing new-
line, before attempting to read any input. The prompt is
displayed only if input is coming from a terminal.
--rr Backslash does not act as an escape character. The back-
- slash is considered to be part of the line. In particu-
- lar, a backslash-newline pair may not be used as a line
+ slash is considered to be part of the line. In particu-
+ lar, a backslash-newline pair may not be used as a line
continuation.
--ss Silent mode. If input is coming from a terminal, charac-
ters are not echoed.
--tt _t_i_m_e_o_u_t
- Cause rreeaadd to time out and return failure if a complete
- line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_-
- _o_u_t may be a decimal number with a fractional portion
- following the decimal point. This option is only effec-
- tive if rreeaadd is reading input from a terminal, pipe, or
- other special file; it has no effect when reading from
- regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns success if
- input is available on the specified file descriptor,
- failure otherwise. The exit status is greater than 128
+ Cause rreeaadd to time out and return failure if a complete
+ line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_-
+ _o_u_t may be a decimal number with a fractional portion
+ following the decimal point. This option is only effec-
+ tive if rreeaadd is reading input from a terminal, pipe, or
+ other special file; it has no effect when reading from
+ regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns success if
+ input is available on the specified file descriptor,
+ failure otherwise. The exit status is greater than 128
if the timeout is exceeded.
--uu _f_d Read input from file descriptor _f_d.
If no _n_a_m_e_s are supplied, the line read is assigned to the vari-
- able RREEPPLLYY. The return code is zero, unless end-of-file is
- encountered, rreeaadd times out (in which case the return code is
- greater than 128), or an invalid file descriptor is supplied as
+ able RREEPPLLYY. The return code is zero, unless end-of-file is
+ encountered, rreeaadd times out (in which case the return code is
+ greater than 128), or an invalid file descriptor is supplied as
the argument to --uu.
rreeaaddoonnllyy [--aaAAppff] [_n_a_m_e[=_w_o_r_d] ...]
- The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
- may not be changed by subsequent assignment. If the --ff option
- is supplied, the functions corresponding to the _n_a_m_e_s are so
- marked. The --aa option restricts the variables to indexed
- arrays; the --AA option restricts the variables to associative
- arrays. If no _n_a_m_e arguments are given, or if the --pp option is
- supplied, a list of all readonly names is printed. The --pp
- option causes output to be displayed in a format that may be
- reused as input. If a variable name is followed by =_w_o_r_d, the
- value of the variable is set to _w_o_r_d. The return status is 0
+ The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
+ may not be changed by subsequent assignment. If the --ff option
+ is supplied, the functions corresponding to the _n_a_m_e_s are so
+ marked. The --aa option restricts the variables to indexed
+ arrays; the --AA option restricts the variables to associative
+ arrays. If no _n_a_m_e arguments are given, or if the --pp option is
+ supplied, a list of all readonly names is printed. The --pp
+ option causes output to be displayed in a format that may be
+ reused as input. If a variable name is followed by =_w_o_r_d, the
+ value of the variable is set to _w_o_r_d. The return status is 0
unless an invalid option is encountered, one of the _n_a_m_e_s is not
- a valid shell variable name, or --ff is supplied with a _n_a_m_e that
+ a valid shell variable name, or --ff is supplied with a _n_a_m_e that
is not a function.
rreettuurrnn [_n]
- Causes a function to exit with the return value specified by _n.
- If _n is omitted, the return status is that of the last command
- executed in the function body. If used outside a function, but
- during execution of a script by the .. (ssoouurrccee) command, it
+ Causes a function to exit with the return value specified by _n.
+ If _n is omitted, the return status is that of the last command
+ executed in the function body. If used outside a function, but
+ during execution of a script by the .. (ssoouurrccee) command, it
causes the shell to stop executing that script and return either
- _n or the exit status of the last command executed within the
- script as the exit status of the script. If used outside a
- function and not during execution of a script by .., the return
+ _n or the exit status of the last command executed within the
+ script as the exit status of the script. If used outside a
+ function and not during execution of a script by .., the return
status is false. Any command associated with the RREETTUURRNN trap is
- executed before execution resumes after the function or script.
+ executed before execution resumes after the function or script.
sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n] [_a_r_g ...]
sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n] [_a_r_g ...]
- Without options, the name and value of each shell variable are
+ Without options, the name and value of each shell variable are
displayed in a format that can be reused as input for setting or
resetting the currently-set variables. Read-only variables can-
- not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed.
- The output is sorted according to the current locale. When
- options are specified, they set or unset shell attributes. Any
- arguments remaining after option processing are treated as val-
+ not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed.
+ The output is sorted according to the current locale. When
+ options are specified, they set or unset shell attributes. Any
+ arguments remaining after option processing are treated as val-
ues for the positional parameters and are assigned, in order, to
- $$11, $$22, ...... $$_n. Options, if specified, have the following
+ $$11, $$22, ...... $$_n. Options, if specified, have the following
meanings:
- --aa Automatically mark variables and functions which are
- modified or created for export to the environment of
+ --aa Automatically mark variables and functions which are
+ modified or created for export to the environment of
subsequent commands.
- --bb Report the status of terminated background jobs immedi-
+ --bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
is effective only when job control is enabled.
- --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
- single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in
- parentheses, or one of the commands executed as part of
- a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR
+ --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
+ single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in
+ parentheses, or one of the commands executed as part of
+ a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR
above) exits with a non-zero status. The shell does not
- exit if the command that fails is part of the command
- list immediately following a wwhhiillee or uunnttiill keyword,
- part of the test following the iiff or eelliiff reserved
- words, part of any command executed in a &&&& or |||| list
- except the command following the final &&&& or ||||, any
- command in a pipeline but the last, or if the command's
- return value is being inverted with !!. A trap on EERRRR,
+ exit if the command that fails is part of the command
+ list immediately following a wwhhiillee or uunnttiill keyword,
+ part of the test following the iiff or eelliiff reserved
+ words, part of any command executed in a &&&& or |||| list
+ except the command following the final &&&& or ||||, any
+ command in a pipeline but the last, or if the command's
+ return value is being inverted with !!. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
- ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
+ ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
--ff Disable pathname expansion.
- --hh Remember the location of commands as they are looked up
+ --hh Remember the location of commands as they are looked up
for execution. This is enabled by default.
- --kk All arguments in the form of assignment statements are
- placed in the environment for a command, not just those
+ --kk All arguments in the form of assignment statements are
+ placed in the environment for a command, not just those
that precede the command name.
- --mm Monitor mode. Job control is enabled. This option is
- on by default for interactive shells on systems that
- support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
- cesses run in a separate process group and a line con-
- taining their exit status is printed upon their comple-
+ --mm Monitor mode. Job control is enabled. This option is
+ on by default for interactive shells on systems that
+ support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
+ cesses run in a separate process group and a line con-
+ taining their exit status is printed upon their comple-
tion.
--nn Read commands but do not execute them. This may be used
- to check a shell script for syntax errors. This is
+ to check a shell script for syntax errors. This is
ignored by interactive shells.
--oo _o_p_t_i_o_n_-_n_a_m_e
The _o_p_t_i_o_n_-_n_a_m_e can be one of the following:
@@ -1002,10 +1009,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Same as --aa.
bbrraacceeeexxppaanndd
Same as --BB.
- eemmaaccss Use an emacs-style command line editing inter-
+ eemmaaccss Use an emacs-style command line editing inter-
face. This is enabled by default when the shell
is interactive, unless the shell is started with
- the ----nnooeeddiittiinngg option. This also affects the
+ the ----nnooeeddiittiinngg option. This also affects the
editing interface used for rreeaadd --ee.
eerrrrttrraaccee
Same as --EE.
@@ -1019,8 +1026,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
HHIISSTTOORRYY. This option is on by default in inter-
active shells.
iiggnnoorreeeeooff
- The effect is as if the shell command
- ``IGNOREEOF=10'' had been executed (see SShheellll
+ The effect is as if the shell command
+ ``IGNOREEOF=10'' had been executed (see SShheellll
VVaarriiaabblleess above).
kkeeyywwoorrdd Same as --kk.
mmoonniittoorr Same as --mm.
@@ -1035,215 +1042,215 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
pphhyyssiiccaall
Same as --PP.
ppiippeeffaaiill
- If set, the return value of a pipeline is the
- value of the last (rightmost) command to exit
- with a non-zero status, or zero if all commands
- in the pipeline exit successfully. This option
+ If set, the return value of a pipeline is the
+ value of the last (rightmost) command to exit
+ with a non-zero status, or zero if all commands
+ in the pipeline exit successfully. This option
is disabled by default.
- ppoossiixx Change the behavior of bbaasshh where the default
- operation differs from the POSIX standard to
+ ppoossiixx Change the behavior of bbaasshh where the default
+ operation differs from the POSIX standard to
match the standard (_p_o_s_i_x _m_o_d_e).
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
- vvii Use a vi-style command line editing interface.
+ vvii Use a vi-style command line editing interface.
This also affects the editing interface used for
rreeaadd --ee.
xxttrraaccee Same as --xx.
If --oo is supplied with no _o_p_t_i_o_n_-_n_a_m_e, the values of the
- current options are printed. If ++oo is supplied with no
- _o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
- current option settings is displayed on the standard
+ current options are printed. If ++oo is supplied with no
+ _o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
+ current option settings is displayed on the standard
output.
- --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
- $$BBAASSHH__EENNVV files are not processed, shell functions are
- not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
- BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they
+ --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
+ $$BBAASSHH__EENNVV files are not processed, shell functions are
+ not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
+ BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they
appear in the environment, are ignored. If the shell is
- started with the effective user (group) id not equal to
- the real user (group) id, and the --pp option is not sup-
+ started with the effective user (group) id not equal to
+ the real user (group) id, and the --pp option is not sup-
plied, these actions are taken and the effective user id
- is set to the real user id. If the --pp option is sup-
- plied at startup, the effective user id is not reset.
- Turning this option off causes the effective user and
+ is set to the real user id. If the --pp option is sup-
+ plied at startup, the effective user id is not reset.
+ Turning this option off causes the effective user and
group ids to be set to the real user and group ids.
--tt Exit after reading and executing one command.
--uu Treat unset variables and parameters other than the spe-
- cial parameters "@" and "*" as an error when performing
- parameter expansion. If expansion is attempted on an
- unset variable or parameter, the shell prints an error
- message, and, if not interactive, exits with a non-zero
+ cial parameters "@" and "*" as an error when performing
+ parameter expansion. If expansion is attempted on an
+ unset variable or parameter, the shell prints an error
+ message, and, if not interactive, exits with a non-zero
status.
--vv Print shell input lines as they are read.
- --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
+ --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
command, sseelleecctt command, or arithmetic ffoorr command, dis-
- play the expanded value of PPSS44, followed by the command
+ play the expanded value of PPSS44, followed by the command
and its expanded arguments or associated word list.
- --BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
+ --BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
above). This is on by default.
- --CC If set, bbaasshh does not overwrite an existing file with
- the >>, >>&&, and <<>> redirection operators. This may be
+ --CC If set, bbaasshh does not overwrite an existing file with
+ the >>, >>&&, and <<>> redirection operators. This may be
overridden when creating output files by using the redi-
rection operator >>|| instead of >>.
--EE If set, any trap on EERRRR is inherited by shell functions,
- command substitutions, and commands executed in a sub-
- shell environment. The EERRRR trap is normally not inher-
+ command substitutions, and commands executed in a sub-
+ shell environment. The EERRRR trap is normally not inher-
ited in such cases.
--HH Enable !! style history substitution. This option is on
by default when the shell is interactive.
- --PP If set, the shell does not follow symbolic links when
- executing commands such as ccdd that change the current
+ --PP If set, the shell does not follow symbolic links when
+ executing commands such as ccdd that change the current
working directory. It uses the physical directory
structure instead. By default, bbaasshh follows the logical
- chain of directories when performing commands which
+ chain of directories when performing commands which
change the current directory.
- --TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
- shell functions, command substitutions, and commands
- executed in a subshell environment. The DDEEBBUUGG and
+ --TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
+ shell functions, command substitutions, and commands
+ executed in a subshell environment. The DDEEBBUUGG and
RREETTUURRNN traps are normally not inherited in such cases.
- ---- If no arguments follow this option, then the positional
+ ---- If no arguments follow this option, then the positional
parameters are unset. Otherwise, the positional parame-
- ters are set to the _a_r_gs, even if some of them begin
+ ters are set to the _a_r_gs, even if some of them begin
with a --.
- -- Signal the end of options, cause all remaining _a_r_gs to
+ -- Signal the end of options, cause all remaining _a_r_gs to
be assigned to the positional parameters. The --xx and --vv
options are turned off. If there are no _a_r_gs, the posi-
tional parameters remain unchanged.
- The options are off by default unless otherwise noted. Using +
- rather than - causes these options to be turned off. The
- options can also be specified as arguments to an invocation of
- the shell. The current set of options may be found in $$--. The
+ The options are off by default unless otherwise noted. Using +
+ rather than - causes these options to be turned off. The
+ options can also be specified as arguments to an invocation of
+ the shell. The current set of options may be found in $$--. The
return status is always true unless an invalid option is encoun-
tered.
sshhiifftt [_n]
- The positional parameters from _n+1 ... are renamed to $$11 ........
- Parameters represented by the numbers $$## down to $$##-_n+1 are
- unset. _n must be a non-negative number less than or equal to
- $$##. If _n is 0, no parameters are changed. If _n is not given,
- it is assumed to be 1. If _n is greater than $$##, the positional
- parameters are not changed. The return status is greater than
+ The positional parameters from _n+1 ... are renamed to $$11 ........
+ Parameters represented by the numbers $$## down to $$##-_n+1 are
+ unset. _n must be a non-negative number less than or equal to
+ $$##. If _n is 0, no parameters are changed. If _n is not given,
+ it is assumed to be 1. If _n is greater than $$##, the positional
+ parameters are not changed. The return status is greater than
zero if _n is greater than $$## or less than zero; otherwise 0.
sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...]
Toggle the values of variables controlling optional shell behav-
ior. With no options, or with the --pp option, a list of all set-
table options is displayed, with an indication of whether or not
- each is set. The --pp option causes output to be displayed in a
- form that may be reused as input. Other options have the fol-
+ each is set. The --pp option causes output to be displayed in a
+ form that may be reused as input. Other options have the fol-
lowing meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
- --qq Suppresses normal output (quiet mode); the return status
+ --qq Suppresses normal output (quiet mode); the return status
indicates whether the _o_p_t_n_a_m_e is set or unset. If multi-
- ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
- tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
+ ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
+ tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
wise.
- --oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
+ --oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
- If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
+ If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
play is limited to those options which are set or unset, respec-
- tively. Unless otherwise noted, the sshhoopptt options are disabled
+ tively. Unless otherwise noted, the sshhoopptt options are disabled
(unset) by default.
- The return status when listing options is zero if all _o_p_t_n_a_m_e_s
- are enabled, non-zero otherwise. When setting or unsetting
- options, the return status is zero unless an _o_p_t_n_a_m_e is not a
+ The return status when listing options is zero if all _o_p_t_n_a_m_e_s
+ are enabled, non-zero otherwise. When setting or unsetting
+ options, the return status is zero unless an _o_p_t_n_a_m_e is not a
valid shell option.
The list of sshhoopptt options is:
- aauuttooccdd If set, a command name that is the name of a directory
- is executed as if it were the argument to the ccdd com-
+ aauuttooccdd If set, a command name that is the name of a directory
+ is executed as if it were the argument to the ccdd com-
mand. This option is only used by interactive shells.
ccddaabbllee__vvaarrss
- If set, an argument to the ccdd builtin command that is
- not a directory is assumed to be the name of a variable
+ If set, an argument to the ccdd builtin command that is
+ not a directory is assumed to be the name of a variable
whose value is the directory to change to.
ccddssppeellll If set, minor errors in the spelling of a directory com-
- ponent in a ccdd command will be corrected. The errors
+ ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
- ter, and one character too many. If a correction is
- found, the corrected file name is printed, and the com-
- mand proceeds. This option is only used by interactive
+ ter, and one character too many. If a correction is
+ found, the corrected file name is printed, and the com-
+ mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
If set, bbaasshh checks that a command found in the hash ta-
- ble exists before trying to execute it. If a hashed
- command no longer exists, a normal path search is per-
+ ble exists before trying to execute it. If a hashed
+ command no longer exists, a normal path search is per-
formed.
cchheecckkjjoobbss
If set, bbaasshh lists the status of any stopped and running
- jobs before exiting an interactive shell. If any jobs
+ jobs before exiting an interactive shell. If any jobs
are running, this causes the exit to be deferred until a
- second exit is attempted without an intervening command
- (see JJOOBB CCOONNTTRROOLL above). The shell always postpones
+ second exit is attempted without an intervening command
+ (see JJOOBB CCOONNTTRROOLL above). The shell always postpones
exiting if any jobs are stopped.
cchheecckkwwiinnssiizzee
- If set, bbaasshh checks the window size after each command
- and, if necessary, updates the values of LLIINNEESS and CCOOLL--
+ If set, bbaasshh checks the window size after each command
+ and, if necessary, updates the values of LLIINNEESS and CCOOLL--
UUMMNNSS.
- ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
- line command in the same history entry. This allows
+ ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
+ line command in the same history entry. This allows
easy re-editing of multi-line commands.
ccoommppaatt3311
If set, bbaasshh changes its behavior to that of version 3.1
with respect to quoted arguments to the conditional com-
mand's =~ operator.
ddiirrssppeellll
- If set, bbaasshh attempts spelling correction on directory
- names during word completion if the directory name ini-
+ If set, bbaasshh attempts spelling correction on directory
+ names during word completion if the directory name ini-
tially supplied does not exist.
- ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
+ ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
- not execute the file specified as an argument to the
- eexxeecc builtin command. An interactive shell does not
+ not execute the file specified as an argument to the
+ eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
- If set, aliases are expanded as described above under
+ If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
- If set, behavior intended for use by debuggers is
+ If set, behavior intended for use by debuggers is
enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
- 22.. If the command run by the DDEEBBUUGG trap returns a
- non-zero value, the next command is skipped and
+ 22.. If the command run by the DDEEBBUUGG trap returns a
+ non-zero value, the next command is skipped and
not executed.
- 33.. If the command run by the DDEEBBUUGG trap returns a
- value of 2, and the shell is executing in a sub-
- routine (a shell function or a shell script exe-
- cuted by the .. or ssoouurrccee builtins), a call to
+ 33.. If the command run by the DDEEBBUUGG trap returns a
+ value of 2, and the shell is executing in a sub-
+ routine (a shell function or a shell script exe-
+ cuted by the .. or ssoouurrccee builtins), a call to
rreettuurrnn is simulated.
- 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
+ 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
- 55.. Function tracing is enabled: command substitu-
+ 55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
- 66.. Error tracing is enabled: command substitution,
- shell functions, and subshells invoked with ((
+ 66.. Error tracing is enabled: command substitution,
+ shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRROORR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
- If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
- within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
+ If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
+ within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
- If set, patterns which fail to match filenames during
+ If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
- If set, the suffixes specified by the FFIIGGNNOORREE shell
- variable cause words to be ignored when performing word
+ If set, the suffixes specified by the FFIIGGNNOORREE shell
+ variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
- description of FFIIGGNNOORREE. This option is enabled by
+ description of FFIIGGNNOORREE. This option is enabled by
default.
gglloobbssttaarr
If set, the pattern **** used in a pathname expansion con-
@@ -1254,58 +1261,58 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
If set, shell error messages are written in the standard
GNU error message format.
hhiissttaappppeenndd
- If set, the history list is appended to the file named
- by the value of the HHIISSTTFFIILLEE variable when the shell
+ If set, the history list is appended to the file named
+ by the value of the HHIISSTTFFIILLEE variable when the shell
exits, rather than overwriting the file.
hhiissttrreeeeddiitt
- If set, and rreeaaddlliinnee is being used, a user is given the
+ If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
- If set, and rreeaaddlliinnee is being used, the results of his-
- tory substitution are not immediately passed to the
- shell parser. Instead, the resulting line is loaded
+ If set, and rreeaaddlliinnee is being used, the results of his-
+ tory substitution are not immediately passed to the
+ shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
- perform hostname completion when a word containing a @@
- is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
+ perform hostname completion when a word containing a @@
+ is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
- and all remaining characters on that line to be ignored
- in an interactive shell (see CCOOMMMMEENNTTSS above). This
+ and all remaining characters on that line to be ignored
+ in an interactive shell (see CCOOMMMMEENNTTSS above). This
option is enabled by default.
- lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
+ lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
llooggiinn__sshheellll
- The shell sets this option if it is started as a login
- shell (see IINNVVOOCCAATTIIOONN above). The value may not be
+ The shell sets this option if it is started as a login
+ shell (see IINNVVOOCCAATTIIOONN above). The value may not be
changed.
mmaaiillwwaarrnn
- If set, and a file that bbaasshh is checking for mail has
- been accessed since the last time it was checked, the
- message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
+ If set, and a file that bbaasshh is checking for mail has
+ been accessed since the last time it was checked, the
+ message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
- If set, and rreeaaddlliinnee is being used, bbaasshh will not
+ If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
- If set, bbaasshh matches filenames in a case-insensitive
+ If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
nnooccaasseemmaattcchh
- If set, bbaasshh matches patterns in a case-insensitive
+ If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands.
nnuullllgglloobb
- If set, bbaasshh allows patterns which match no files (see
- PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
+ If set, bbaasshh allows patterns which match no files (see
+ PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
@@ -1313,47 +1320,47 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled by default.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
- mand substitution, arithmetic expansion, and quote
- removal after being expanded as described in PPRROOMMPPTTIINNGG
+ mand substitution, arithmetic expansion, and quote
+ removal after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
rreessttrriicctteedd__sshheellll
- The shell sets this option if it is started in
+ The shell sets this option if it is started in
restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
- may not be changed. This is not reset when the startup
- files are executed, allowing the startup files to dis-
+ may not be changed. This is not reset when the startup
+ files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
- If set, the sshhiifftt builtin prints an error message when
+ If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
- find the directory containing the file supplied as an
+ find the directory containing the file supplied as an
argument. This option is enabled by default.
xxppgg__eecchhoo
- If set, the eecchhoo builtin expands backslash-escape
+ If set, the eecchhoo builtin expands backslash-escape
sequences by default.
ssuussppeenndd [--ff]
- Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
+ Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell cannot be suspended; the --ff option can be
used to override this and force the suspension. The return sta-
- tus is 0 unless the shell is a login shell and --ff is not sup-
+ tus is 0 unless the shell is a login shell and --ff is not sup-
plied, or if job control is not enabled.
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
- Return a status of 0 or 1 depending on the evaluation of the
- conditional expression _e_x_p_r. Each operator and operand must be
- a separate argument. Expressions are composed of the primaries
- described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
+ Return a status of 0 or 1 depending on the evaluation of the
+ conditional expression _e_x_p_r. Each operator and operand must be
+ a separate argument. Expressions are composed of the primaries
+ described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
accept any options, nor does it accept and ignore an argument of
---- as signifying the end of options.
- Expressions may be combined using the following operators,
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
- Returns the value of _e_x_p_r. This may be used to override
+ Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -1370,59 +1377,59 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
- only if the second argument is null. If the first argu-
- ment is one of the unary conditional operators listed
- above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
+ only if the second argument is null. If the first argu-
+ ment is one of the unary conditional operators listed
+ above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
- If the second argument is one of the binary conditional
+ If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
- using the first and third arguments as operands. The --aa
- and --oo operators are considered binary operators when
- there are three arguments. If the first argument is !!,
- the value is the negation of the two-argument test using
+ using the first and third arguments as operands. The --aa
+ and --oo operators are considered binary operators when
+ there are three arguments. If the first argument is !!,
+ the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (( and the third argument is exactly )), the result
- is the one-argument test of the second argument. Other-
+ is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
- the three-argument expression composed of the remaining
+ the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
+ uated according to precedence using the rules listed
above.
5 or more arguments
- The expression is parsed and evaluated according to
+ The expression is parsed and evaluated according to
precedence using the rules listed above.
- ttiimmeess Print the accumulated user and system times for the shell and
+ ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
- The command _a_r_g is to be read and executed when the shell
- receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
- single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
- original disposition (the value it had upon entrance to the
- shell). If _a_r_g is the null string the signal specified by each
- _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
- If _a_r_g is not present and --pp has been supplied, then the trap
- commands associated with each _s_i_g_s_p_e_c are displayed. If no
- arguments are supplied or if only --pp is given, ttrraapp prints the
- list of commands associated with each signal. The --ll option
- causes the shell to print a list of signal names and their cor-
- responding numbers. Each _s_i_g_s_p_e_c is either a signal name
- defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
+ The command _a_r_g is to be read and executed when the shell
+ receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
+ single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
+ original disposition (the value it had upon entrance to the
+ shell). If _a_r_g is the null string the signal specified by each
+ _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
+ If _a_r_g is not present and --pp has been supplied, then the trap
+ commands associated with each _s_i_g_s_p_e_c are displayed. If no
+ arguments are supplied or if only --pp is given, ttrraapp prints the
+ list of commands associated with each signal. The --ll option
+ causes the shell to print a list of signal names and their cor-
+ responding numbers. Each _s_i_g_s_p_e_c is either a signal name
+ defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional.
- If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
- from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
- cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
- _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
- first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
- above). Refer to the description of the eexxttddeebbuugg option to the
+ If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
+ from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
+ cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
+ _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
+ first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
+ above). Refer to the description of the eexxttddeebbuugg option to the
sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a
_s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell
function or a script executed with the .. or ssoouurrccee builtins fin-
@@ -1430,53 +1437,53 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim-
ple command has a non-zero exit status, subject to the following
- conditions. The EERRRR trap is not executed if the failed command
- is part of the command list immediately following a wwhhiillee or
- uunnttiill keyword, part of the test in an _i_f statement, part of a
- command executed in a &&&& or |||| list, or if the command's return
- value is being inverted via !!. These are the same conditions
+ conditions. The EERRRR trap is not executed if the failed command
+ is part of the command list immediately following a wwhhiillee or
+ uunnttiill keyword, part of the test in an _i_f statement, part of a
+ command executed in a &&&& or |||| list, or if the command's return
+ value is being inverted via !!. These are the same conditions
obeyed by the eerrrreexxiitt option.
- Signals ignored upon entry to the shell cannot be trapped or
- reset. Trapped signals that are not being ignored are reset to
+ Signals ignored upon entry to the shell cannot be trapped or
+ reset. Trapped signals that are not being ignored are reset to
their original values in a subshell or subshell environment when
- one is created. The return status is false if any _s_i_g_s_p_e_c is
+ one is created. The return status is false if any _s_i_g_s_p_e_c is
invalid; otherwise ttrraapp returns true.
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
- With no options, indicate how each _n_a_m_e would be interpreted if
+ With no options, indicate how each _n_a_m_e would be interpreted if
used as a command name. If the --tt option is used, ttyyppee prints a
- string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
- _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
- builtin, or disk file, respectively. If the _n_a_m_e is not found,
- then nothing is printed, and an exit status of false is
- returned. If the --pp option is used, ttyyppee either returns the
+ string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
+ _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
+ builtin, or disk file, respectively. If the _n_a_m_e is not found,
+ then nothing is printed, and an exit status of false is
+ returned. If the --pp option is used, ttyyppee either returns the
name of the disk file that would be executed if _n_a_m_e were speci-
fied as a command name, or nothing if ``type -t name'' would not
- return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
+ return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
- hashed, --pp and --PP print the hashed value, not necessarily the
+ hashed, --pp and --PP print the hashed value, not necessarily the
file that appears first in PPAATTHH. If the --aa option is used, ttyyppee
- prints all of the places that contain an executable named _n_a_m_e.
- This includes aliases and functions, if and only if the --pp
- option is not also used. The table of hashed commands is not
- consulted when using --aa. The --ff option suppresses shell func-
- tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
+ prints all of the places that contain an executable named _n_a_m_e.
+ This includes aliases and functions, if and only if the --pp
+ option is not also used. The table of hashed commands is not
+ consulted when using --aa. The --ff option suppresses shell func-
+ tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]]
- Provides control over the resources available to the shell and
- to processes started by it, on systems that allow such control.
+ Provides control over the resources available to the shell and
+ to processes started by it, on systems that allow such control.
The --HH and --SS options specify that the hard or soft limit is set
- for the given resource. A hard limit cannot be increased by a
- non-root user once it is set; a soft limit may be increased up
- to the value of the hard limit. If neither --HH nor --SS is speci-
+ for the given resource. A hard limit cannot be increased by a
+ non-root user once it is set; a soft limit may be increased up
+ to the value of the hard limit. If neither --HH nor --SS is speci-
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
can be a number in the unit specified for the resource or one of
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
- current hard limit, the current soft limit, and no limit,
- respectively. If _l_i_m_i_t is omitted, the current value of the
- soft limit of the resource is printed, unless the --HH option is
+ current hard limit, the current soft limit, and no limit,
+ respectively. If _l_i_m_i_t is omitted, the current value of the
+ soft limit of the resource is printed, unless the --HH option is
given. When more than one resource is specified, the limit name
and unit are printed before the value. Other options are inter-
preted as follows:
@@ -1485,11 +1492,11 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--cc The maximum size of core files created
--dd The maximum size of a process's data segment
--ee The maximum scheduling priority ("nice")
- --ff The maximum size of files written by the shell and its
+ --ff The maximum size of files written by the shell and its
children
--ii The maximum number of pending signals
--ll The maximum size that may be locked into memory
- --mm The maximum resident set size (many systems do not honor
+ --mm The maximum resident set size (many systems do not honor
this limit)
--nn The maximum number of open file descriptors (most systems
do not allow this value to be set)
@@ -1498,58 +1505,58 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--rr The maximum real-time scheduling priority
--ss The maximum stack size
--tt The maximum amount of cpu time in seconds
- --uu The maximum number of processes available to a single
+ --uu The maximum number of processes available to a single
user
- --vv The maximum amount of virtual memory available to the
+ --vv The maximum amount of virtual memory available to the
shell
--xx The maximum number of file locks
--TT The maximum number of threads
If _l_i_m_i_t is given, it is the new value of the specified resource
(the --aa option is display only). If no option is given, then --ff
- is assumed. Values are in 1024-byte increments, except for --tt,
- which is in seconds, --pp, which is in units of 512-byte blocks,
- and --TT, --bb, --nn, and --uu, which are unscaled values. The return
+ is assumed. Values are in 1024-byte increments, except for --tt,
+ which is in seconds, --pp, which is in units of 512-byte blocks,
+ and --TT, --bb, --nn, and --uu, which are unscaled values. The return
status is 0 unless an invalid option or argument is supplied, or
an error occurs while setting a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
- a digit, it is interpreted as an octal number; otherwise it is
- interpreted as a symbolic mode mask similar to that accepted by
- _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
- printed. The --SS option causes the mask to be printed in sym-
- bolic form; the default output is an octal number. If the --pp
+ a digit, it is interpreted as an octal number; otherwise it is
+ interpreted as a symbolic mode mask similar to that accepted by
+ _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
+ printed. The --SS option causes the mask to be printed in sym-
+ bolic form; the default output is an octal number. If the --pp
option is supplied, and _m_o_d_e is omitted, the output is in a form
that may be reused as input. The return status is 0 if the mode
- was successfully changed or if no _m_o_d_e argument was supplied,
+ was successfully changed or if no _m_o_d_e argument was supplied,
and false otherwise.
uunnaalliiaass [-aa] [_n_a_m_e ...]
- Remove each _n_a_m_e from the list of defined aliases. If --aa is
- supplied, all alias definitions are removed. The return value
+ Remove each _n_a_m_e from the list of defined aliases. If --aa is
+ supplied, all alias definitions are removed. The return value
is true unless a supplied _n_a_m_e is not a defined alias.
uunnsseett [-ffvv] [_n_a_m_e ...]
- For each _n_a_m_e, remove the corresponding variable or function.
+ For each _n_a_m_e, remove the corresponding variable or function.
If no options are supplied, or the --vv option is given, each _n_a_m_e
- refers to a shell variable. Read-only variables may not be
- unset. If --ff is specified, each _n_a_m_e refers to a shell func-
- tion, and the function definition is removed. Each unset vari-
- able or function is removed from the environment passed to sub-
- sequent commands. If any of RRAANNDDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD,
+ refers to a shell variable. Read-only variables may not be
+ unset. If --ff is specified, each _n_a_m_e refers to a shell func-
+ tion, and the function definition is removed. Each unset vari-
+ able or function is removed from the environment passed to sub-
+ sequent commands. If any of RRAANNDDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD,
FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special
- properties, even if they are subsequently reset. The exit sta-
+ properties, even if they are subsequently reset. The exit sta-
tus is true unless a _n_a_m_e is readonly.
wwaaiitt [_n _._._.]
- Wait for each specified process and return its termination sta-
- tus. Each _n may be a process ID or a job specification; if a
- job spec is given, all processes in that job's pipeline are
- waited for. If _n is not given, all currently active child pro-
- cesses are waited for, and the return status is zero. If _n
- specifies a non-existent process or job, the return status is
- 127. Otherwise, the return status is the exit status of the
+ Wait for each specified process and return its termination sta-
+ tus. Each _n may be a process ID or a job specification; if a
+ job spec is given, all processes in that job's pipeline are
+ waited for. If _n is not given, all currently active child pro-
+ cesses are waited for, and the return status is zero. If _n
+ specifies a non-existent process or job, the return status is
+ 127. Otherwise, the return status is the exit status of the
last process or job waited for.
SSEEEE AALLSSOO
diff --git a/doc/builtins.ps b/doc/builtins.ps
index 05988ec4..110eb269 100644
--- a/doc/builtins.ps
+++ b/doc/builtins.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Wed Sep 16 21:35:02 2009
+%%CreationDate: Mon Oct 12 10:07:24 2009
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -1581,556 +1581,554 @@ speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\
reading the name of the current directory or an in)144 184.8 R -.25(va)
-.4 G(lid).25 E(option is supplied.)144 196.8 Q F1 -.18(re)108 213.6 S
-(ad).18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1<ad61>-2.5 E F2(aname)
-2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E F0 2.5(][)C F1<ad69>-2.5
-E F2(te)2.5 E(xt)-.2 E F0 2.5(][)C F1<ad6e>-2.5 E F2(nc)2.5 E(har)-.15 E
-(s)-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E(ompt)-.45 E F0 2.5(][)C
-F1<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E
-F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(One line is read from the\
- standard input, or from the \214le descriptor)144 225.6 R F2(fd)3.016 E
-F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 237.6 Q
-F1<ad75>2.538 E F0 .038(option, and the \214rst w)2.538 F .038
-(ord is assigned to the \214rst)-.1 F F2(name)2.539 E F0 2.539(,t).18 G
-.039(he second w)-2.539 F .039(ord to the second)-.1 F F2(name)2.539 E
-F0(,).18 E .42(and so on, with lefto)144 249.6 R -.15(ve)-.15 G 2.92(rw)
-.15 G .42(ords and their interv)-3.02 F .42
+(ad).18 E F0([)3.817 E F1(\255ers)A F0 3.817(][)C F1<ad61>-3.817 E F2
+(aname)3.817 E F0 3.817(][)C F1<ad64>-3.817 E F2(delim)3.817 E F0 3.817
+(][)C F1<ad69>-3.817 E F2(te)3.817 E(xt)-.2 E F0 3.817(][)C F1<ad6e>
+-3.817 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1<ad4e>-3.816 E
+F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1<ad70>-3.816 E F2(pr)
+3.816 E(ompt)-.45 E F0 3.816(][)C F1<ad74>-3.816 E F2(timeout)3.816 E F0
+3.816(][)C F1<ad75>-3.816 E F2(fd)3.816 E F0(])A([)108 225.6 Q F2(name)A
+F0(...])2.5 E .516(One line is read from the standard input, or from th\
+e \214le descriptor)144 237.6 R F2(fd)3.016 E F0 .516(supplied as an ar)
+3.016 F .516(gument to)-.18 F(the)144 249.6 Q F1<ad75>2.538 E F0 .038
+(option, and the \214rst w)2.538 F .038(ord is assigned to the \214rst)
+-.1 F F2(name)2.539 E F0 2.539(,t).18 G .039(he second w)-2.539 F .039
+(ord to the second)-.1 F F2(name)2.539 E F0(,).18 E .42
+(and so on, with lefto)144 261.6 R -.15(ve)-.15 G 2.92(rw).15 G .42
+(ords and their interv)-3.02 F .42
(ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 261.6 R .54(wer w)-.25
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 273.6 R .54(wer w)-.25
F .541(ords read from the input stream than names, the remaining names \
-are assigned empty)-.1 F -.25(va)144 273.6 S 2.511(lues. The).25 F .011
+are assigned empty)-.1 F -.25(va)144 285.6 S 2.511(lues. The).25 F .011
(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
(are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
(backslash character \()2.511 F F1(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 285.6 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
+(be used to remo)144 297.6 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
1.891(pecial meaning for the ne).15 F 1.891
(xt character read and for line continuation.)-.15 F
-(Options, if supplied, ha)144 297.6 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 309.6 Q F2(aname)2.5 E F0 1.05(The w)
-180 321.6 R 1.049
+(Options, if supplied, ha)144 309.6 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 321.6 Q F2(aname)2.5 E F0 1.05(The w)
+180 333.6 R 1.049
(ords are assigned to sequential indices of the array v)-.1 F(ariable)
-.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F2(aname)180.33 333.6 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+F2(aname)180.33 345.6 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0
-(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 345.6 Q F2(delim)2.5 E
-F0(The \214rst character of)180 357.6 Q F2(delim)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 357.6 Q F2(delim)2.5 E
+F0(The \214rst character of)180 369.6 Q F2(delim)2.5 E F0
(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
-F1<ad65>144 369.6 Q F0 .372
+F1<ad65>144 381.6 Q F0 .372
(If the standard input is coming from a terminal,)25.86 F F1 -.18(re)
2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
-.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
-(to obtain the line.)180 381.6 R .218
+(to obtain the line.)180 393.6 R .218
(Readline uses the current \(or def)5.218 F .218
(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
-(acti)180 393.6 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
-F1<ad69>144 405.6 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715
+(acti)180 405.6 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
+F1<ad69>144 417.6 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715
G(adline).18 E F0 .216(is being used to read the line,)2.715 F F2(te)
2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
-.216(fer before edit-)-.25 F(ing be)180 417.6 Q(gins.)-.15 E F1<ad6e>144
-429.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 441.6 S(ad).18 E
+.216(fer before edit-)-.25 F(ing be)180 429.6 Q(gins.)-.15 E F1<ad6e>144
+441.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 453.6 S(ad).18 E
F0 1.395(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E
F0 1.395(characters rather than w)3.895 F 1.394
-(aiting for a complete line of)-.1 F(input.)180 453.6 Q F1<ad70>144
-465.6 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 477.6 Q F2(pr)3.66 E
-(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161
-(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
--.25 F(an)180 489.6 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
+(aiting for a complete line of)-.1 F(input, b)180 465.6 Q
+(ut honor a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15 E
+(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1
+<ad4e>144 477.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 489.6 S
+(ad).18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)
+3.769 E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F
+1.27(aiting for a complete)-.1 F
+(line of input, unless EOF is encountered or)180 501.6 Q F1 -.18(re)2.5
+G(ad).18 E F0(times out.)2.5 E(An)5 E 2.5(yd)-.15 G
+(elimiter is ignored.)-2.5 E F1<ad70>144 513.6 Q F2(pr)2.5 E(ompt)-.45 E
+F0(Display)180 525.6 Q F2(pr)3.661 E(ompt)-.45 E F0 1.161
+(on standard error)3.661 F 3.661(,w)-.4 G 1.161(ithout a trailing ne)
+-3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 537.6 Q
+2.5(yi)-.15 G 2.5(nput. The)-2.5 F
(prompt is displayed only if input is coming from a terminal.)2.5 E F1
-<ad72>144 501.6 Q F0 .544(Backslash does not act as an escape character)
-25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
--5.543 F(the line.)180 513.6 Q(In particular)5 E 2.5(,ab)-.4 G
+<ad72>144 549.6 Q F0 .543(Backslash does not act as an escape character)
+25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of)
+-5.543 F(the line.)180 561.6 Q(In particular)5 E 2.5(,ab)-.4 G
(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
--.25 E F1<ad73>144 525.6 Q F0(Silent mode.)26.41 E
+-.25 E F1<ad73>144 573.6 Q F0(Silent mode.)26.41 E
(If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 537.6 Q F2(timeout)2.5 E F0(Cause)180 549.6 Q F1 -.18(re)3.548
-G(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
+<ad74>144 585.6 Q F2(timeout)2.5 E F0(Cause)180 597.6 Q F1 -.18(re)3.549
+G(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048
(ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 561.6 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
-(may be a decimal number with a fractional portion follo)3.497 F(wing)
--.25 E .576(the decimal point.)180 573.6 R .576(This option is only ef)
+180 609.6 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997
+(may be a decimal number with a fractional portion follo)3.496 F(wing)
+-.25 E .576(the decimal point.)180 621.6 R .576(This option is only ef)
5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
-(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
-(pipe, or other special \214le; it has no ef)180 585.6 R .142
-(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
-F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 597.6 S(ad).18 E
-F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
-(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
-(ailure otherwise.)-2.713 F(The e)180 609.6 Q
+(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .141
+(pipe, or other special \214le; it has no ef)180 633.6 R .142
+(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E
+F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 645.6 S(ad).18 E
+F0 .113(returns success if input is a)2.614 F -.25(va)-.2 G .113
+(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .113
+(ailure otherwise.)-2.713 F(The e)180 657.6 Q
(xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
-E F1<ad75>144 621.6 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
-14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 638.4 R F2(names)3.052 E F0
-.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
--.25 E F3(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191
-(The return code is zero,)4.691 F 1.343
-(unless end-of-\214le is encountered,)144 650.4 R F1 -.18(re)3.843 G(ad)
+E F1<ad75>144 669.6 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
+14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 686.4 R F2(names)3.051 E F0
+.191(are supplied, the line read is assigned to the v)2.961 F(ariable)
+-.25 E F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192
+(The return code is zero,)4.692 F 1.344
+(unless end-of-\214le is encountered,)144 698.4 R F1 -.18(re)3.844 G(ad)
.18 E F0 1.343
-(times out \(in which case the return code is greater than)3.843 F
-(128\), or an in)144 662.4 Q -.25(va)-.4 G
+(times out \(in which case the return code is greater than)3.844 F
+(128\), or an in)144 710.4 Q -.25(va)-.4 G
(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
-<ad75>2.5 E F0(.)A F1 -.18(re)108 679.2 S(adonly).18 E F0([)2.5 E F1
-(\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
-F0 2.5(].)C(..])-2.5 E .77(The gi)144 691.2 R -.15(ve)-.25 G(n).15 E F2
-(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
-(alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 703.2 R
-1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
-(option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 715.2 Q 3.334(ed. The)
--.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
-(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
--3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .537(ables to associati)144 727.2 R .837 -.15(ve a)-.25 H 3.037
-(rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
-(guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
-3.038 E F0 .538(option is supplied, a list)3.038 F(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP
+<ad75>2.5 E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(12)
+198.725 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .081
-(of all readonly names is printed.)144 84 R(The)5.081 E/F1 10
-/Times-Bold@0 SF<ad70>2.581 E F0 .08
-(option causes output to be displayed in a format that may)2.581 F 1.176
-(be reused as input.)144 96 R 1.176(If a v)6.176 F 1.176
-(ariable name is follo)-.25 F 1.176(wed by =)-.25 F/F2 10/Times-Italic@0
-SF(wor)A(d)-.37 E F0 3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)
--.25 F 1.177(ariable is set to)-.25 F F2(wor)144 108 Q(d)-.37 E F0 6.206
-(.T)C 1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G
-1.205(lid option is encountered, one of the).25 F F2(names)4.065 E F0
-1.205(is not a)3.975 F -.25(va)144 120 S(lid shell v).25 E
-(ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
-(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 136.8 S
-(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586
-(Causes a function to e)144 148.8 R .587(xit with the return v)-.15 F
-.587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
-E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335
-(that of the last command e)144 160.8 R -.15(xe)-.15 G 1.335
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF -.18(re)108 84 S(adonly).18 E F0([)2.5 E F1(\255aA)A
+(pf)-.25 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2
+(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 96 R -.15(ve)-.25
+G(n).15 E F2(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)
+-.1 F .77(alues of these)-.25 F F2(names)3.63 E F0 .77
+(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 108 R
+1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097
+(option is supplied, the functions corresponding to the)3.597 F F2
+(names)3.596 E F0 1.096(are so)3.596 F(mark)144 120 Q 3.334(ed. The)-.1
+F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
+(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
+-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
+-.25 E .538(ables to associati)144 132 R .838 -.15(ve a)-.25 H 3.038
+(rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
+(guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
+3.038 E F0 .537(option is supplied, a list)3.038 F .08
+(of all readonly names is printed.)144 144 R(The)5.08 E F1<ad70>2.58 E
+F0 .081(option causes output to be displayed in a format that may)2.58 F
+1.177(be reused as input.)144 156 R 1.177(If a v)6.177 F 1.176
+(ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
+3.676(,t)C 1.176(he v)-3.676 F 1.176(alue of the v)-.25 F 1.176
+(ariable is set to)-.25 F F2(wor)144 168 Q(d)-.37 E F0 6.205(.T)C 1.205
+(he return status is 0 unless an in)-6.205 F -.25(va)-.4 G 1.206
+(lid option is encountered, one of the).25 F F2(names)4.066 E F0 1.206
+(is not a)3.976 F -.25(va)144 180 S(lid shell v).25 E(ariable name, or)
+-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2(name)2.86 E F0
+(that is not a function.)2.68 E F1 -.18(re)108 196.8 S(tur).18 E(n)-.15
+E F0([)2.5 E F2(n)A F0(])A .587(Causes a function to e)144 208.8 R .587
+(xit with the return v)-.15 F .587(alue speci\214ed by)-.25 F F2(n)3.087
+E F0 5.587(.I).24 G(f)-5.587 E F2(n)3.447 E F0 .586
+(is omitted, the return status is)3.327 F 1.335
+(that of the last command e)144 220.8 R -.15(xe)-.15 G 1.335
(cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe)
-144 172.8 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
+144 232.8 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
-(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
-(cuting that script).15 F .246(and return either)144 184.8 R F2(n)3.106
-E F0 .246(or the e)2.986 F .246(xit status of the last command e)-.15 F
--.15(xe)-.15 G .246(cuted within the script as the e).15 F .245
-(xit sta-)-.15 F .081(tus of the script.)144 196.8 R .082
+(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .794
+(cuting that script).15 F .245(and return either)144 244.8 R F2(n)3.105
+E F0 .246(or the e)2.985 F .246(xit status of the last command e)-.15 F
+-.15(xe)-.15 G .246(cuted within the script as the e).15 F .246
+(xit sta-)-.15 F .082(tus of the script.)144 256.8 R .082
(If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
-(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082
-(he return sta-)-2.582 F 2.306(tus is f)144 208.8 R 4.806(alse. An)-.1 F
-4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN)
-4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e)
+(cution of a script by).15 F F1(.)2.582 E F0 2.581(,t).833 G .081
+(he return sta-)-2.581 F 2.305(tus is f)144 268.8 R 4.805(alse. An)-.1 F
+4.805(yc)-.15 G 2.305(ommand associated with the)-4.805 F F1(RETURN)
+4.805 E F0 2.306(trap is e)4.806 F -.15(xe)-.15 G 2.306(cuted before e)
.15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
-144 220.8 Q F1(set)108 237.6 Q F0([)2.5 E F1
+144 280.8 Q F1(set)108 297.6 Q F0([)2.5 E F1
(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5
-E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 249.6 Q F0
+E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 309.6 Q F0
([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)
-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 261.6 S
-.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.836(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 273.6
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 285.6 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 321.6 S
+.836(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
+.835(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 333.6
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.947(reset. In)144 345.6 R F2 .447(posix mode)
+2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 297.6 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
-(after option processing are treated as v)144 309.6 R 1.624
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 357.6 R 1.031(options are speci\214ed, the)3.53 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
+-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
+1.624(after option processing are treated as v)144 369.6 R 1.623
(alues for the positional parameters and are assigned, in)-.25 F(order)
-144 321.6 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+144 381.6 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
--.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 333.6 Q
-F0 .54(Automatically mark v)29.3 F .539
-(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 345.6 Q
-(vironment of subsequent commands.)-.4 E F1<ad62>144 357.6 Q F0 .131
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 393.6 Q
+F0 .539(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F .54
+(xport to)-.15 F(the en)184 405.6 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 417.6 Q F0 .132
(Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 369.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 381.6 Q F0
-.511(Exit immediately if a)29.86 F F2(pipeline)3.011 E F0 .511
-(\(which may consist of a single)3.011 F F2 .51(simple command)3.01 F F0
-3.01(\), a)B F2(sub-)3.01 E(shell)184 393.6 Q F0 .872
-(command enclosed in parentheses, or one of the commands e)3.372 F -.15
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 429.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 441.6 Q F0 .51
+(Exit immediately if a)29.86 F F2(pipeline)3.01 E F0 .511
+(\(which may consist of a single)3.011 F F2 .511(simple command)3.011 F
+F0 3.011(\), a)B F2(sub-)3.011 E(shell)184 453.6 Q F0 .872
+(command enclosed in parentheses, or one of the commands e)3.373 F -.15
(xe)-.15 G .872(cuted as part of a).15 F .399
-(command list enclosed by braces \(see)184 405.6 R/F3 9/Times-Bold@0 SF
+(command list enclosed by braces \(see)184 465.6 R/F3 9/Times-Bold@0 SF
.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
-.399(xits with a non-zero)-3.049 F 3.968(status. The)184 417.6 R 1.468
-(shell does not e)3.968 F 1.468(xit if the command that f)-.15 F 1.468
-(ails is part of the command list)-.1 F .57(immediately follo)184 429.6
-R .57(wing a)-.25 F F1(while)3.07 E F0(or)3.07 E F1(until)3.07 E F0 -.1
-(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .569
-(wing the)-.25 F F1(if)3.069 E F0(or)3.069 E F1(elif)3.069 E F0(reserv)
-184 441.6 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
+.399(xits with a non-zero)-3.049 F 3.969(status. The)184 477.6 R 1.468
+(shell does not e)3.969 F 1.468(xit if the command that f)-.15 F 1.468
+(ails is part of the command list)-.1 F .569(immediately follo)184 489.6
+R .569(wing a)-.25 F F1(while)3.069 E F0(or)3.069 E F1(until)3.069 E F0
+-.1(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .57
+(wing the)-.25 F F1(if)3.07 E F0(or)3.07 E F1(elif)3.07 E F0(reserv)184
+501.6 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
.544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044
E F0(or)3.044 E/F4 10/Symbol SF<efef>3.044 E F0 .544(list e)3.044 F .544
-(xcept the command)-.15 F(follo)184 453.6 Q 1.231(wing the \214nal)-.25
-F F1(&&)3.731 E F0(or)3.731 E F4<efef>3.731 E F0 3.731(,a)C 1.531 -.15
-(ny c)-3.731 H 1.231(ommand in a pipeline b).15 F 1.23
-(ut the last, or if the com-)-.2 F(mand')184 465.6 Q 3.19(sr)-.55 G .69
-(eturn v)-3.19 F .69(alue is being in)-.25 F -.15(ve)-.4 G .69
+(xcept the command)-.15 F(follo)184 513.6 Q 1.23(wing the \214nal)-.25 F
+F1(&&)3.73 E F0(or)3.73 E F4<efef>3.73 E F0 3.73(,a)C 1.53 -.15(ny c)
+-3.73 H 1.231(ommand in a pipeline b).15 F 1.231
+(ut the last, or if the com-)-.2 F(mand')184 525.6 Q 3.191(sr)-.55 G
+.691(eturn v)-3.191 F .691(alue is being in)-.25 F -.15(ve)-.4 G .691
(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR)
-3.191 E F0 3.191(,i)C 3.191(fs)-3.191 G .691(et, is e)-3.191 F -.15(xe)
--.15 G .691(cuted before).15 F .687(the shell e)184 477.6 R 3.186
-(xits. This)-.15 F .686(option applies to the shell en)3.186 F .686
-(vironment and each subshell en)-.4 F(viron-)-.4 E .658
-(ment separately \(see)184 489.6 R F1 .659(COMMAND EXECUTION ENVIR)3.159
-F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .659(\), and may).15 F
-(cause subshells to e)184 501.6 Q(xit before e)-.15 E -.15(xe)-.15 G
-(cuting all the commands in the subshell.).15 E F1<ad66>144 513.6 Q F0
-(Disable pathname e)30.97 E(xpansion.)-.15 E F1<ad68>144 525.6 Q F0
-2.239(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G
-2.238(re look)-4.738 F 2.238(ed up for e)-.1 F -.15(xe)-.15 G 4.738
-(cution. This).15 F(is)4.738 E(enabled by def)184 537.6 Q(ault.)-.1 E F1
-<ad6b>144 549.6 Q F0 .513(All ar)28.74 F .514
+3.19 E F0 3.19(,i)C 3.19(fs)-3.19 G .69(et, is e)-3.19 F -.15(xe)-.15 G
+.69(cuted before).15 F .686(the shell e)184 537.6 R 3.186(xits. This)
+-.15 F .686(option applies to the shell en)3.186 F .686
+(vironment and each subshell en)-.4 F(viron-)-.4 E .659
+(ment separately \(see)184 549.6 R F1 .659(COMMAND EXECUTION ENVIR)3.159
+F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .658(\), and may).15 F
+(cause subshells to e)184 561.6 Q(xit before e)-.15 E -.15(xe)-.15 G
+(cuting all the commands in the subshell.).15 E F1<ad66>144 573.6 Q F0
+(Disable pathname e)30.97 E(xpansion.)-.15 E F1<ad68>144 585.6 Q F0
+2.238(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G
+2.239(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)-.15 G 4.739
+(cution. This).15 F(is)4.739 E(enabled by def)184 597.6 Q(ault.)-.1 E F1
+<ad6b>144 609.6 Q F0 .514(All ar)28.74 F .514
(guments in the form of assignment statements are placed in the en)-.18
-F .514(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 561.6 Q F1
-<ad6d>144 573.6 Q F0 .149(Monitor mode.)25.97 F .149
-(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
-.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .636
-(on systems that support it \(see)184 585.6 R F3 .636(JOB CONTR)3.136 F
-(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .637
-(processes run in a)3.136 F .642
-(separate process group and a line containing their e)184 597.6 R .641
-(xit status is printed upon their com-)-.15 F(pletion.)184 609.6 Q F1
-<ad6e>144 621.6 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F
--.15(xe)-.15 G .652(cute them.).15 F .653
-(This may be used to check a shell script for)5.652 F(syntax errors.)184
-633.6 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
-E F1<ad6f>144 645.6 Q F2(option\255name)2.5 E F0(The)184 657.6 Q F2
-(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
-(allexport)184 669.6 Q F0(Same as)224 681.6 Q F1<ad61>2.5 E F0(.)A F1
-(braceexpand)184 693.6 Q F0(Same as)224 705.6 Q F1<ad42>2.5 E F0(.)A F1
-(emacs)184 717.6 Q F0 .089
-(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
--.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 729.6 R -.15(ve)-.25 G 3.45(,u).15 G
-.95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
-3.45 E F0(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg
-EP
+F .513(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 621.6 Q F1
+<ad6d>144 633.6 Q F0 .148(Monitor mode.)25.97 F .148
+(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637
+(on systems that support it \(see)184 645.6 R F3 .636(JOB CONTR)3.136 F
+(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636
+(processes run in a)3.136 F .641
+(separate process group and a line containing their e)184 657.6 R .642
+(xit status is printed upon their com-)-.15 F(pletion.)184 669.6 Q F1
+<ad6e>144 681.6 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F
+-.15(xe)-.15 G .653(cute them.).15 F .652
+(This may be used to check a shell script for)5.653 F(syntax errors.)184
+693.6 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
+E F1<ad6f>144 705.6 Q F2(option\255name)2.5 E F0(The)184 717.6 Q F2
+(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.5
-(option. This)224 84 R(also af)2.5 E(fects the editing interf)-.25 E
-(ace used for)-.1 E/F1 10/Times-Bold@0 SF -.18(re)2.5 G(ad \255e).18 E
-F0(.)A F1(errtrace)184 96 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1
-(functrace)184 108 Q F0(Same as)224 120 Q F1<ad54>2.5 E F0(.)A F1(err)
-184 132 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1
-(hashall)184 144 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)
-184 156 Q F0(Same as)224 168 Q F1<ad48>2.5 E F0(.)A F1(history)184 180 Q
-F0 .587(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G
-.587(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E/F2 9
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(allexport)184 84 Q F0(Same as)224 96 Q F1<ad61>2.5 E F0
+(.)A F1(braceexpand)184 108 Q F0(Same as)224 120 Q F1<ad42>2.5 E F0(.)A
+F1(emacs)184 132 Q F0 .089
+(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
+-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
+(when the shell is interacti)224 144 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
+F0 2.5(option. This)224 156 R(also af)2.5 E(fects the editing interf)
+-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
+(errtrace)184 168 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
+184 180 Q F0(Same as)224 192 Q F1<ad54>2.5 E F0(.)A F1(err)184 204 Q
+(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1(hashall)184 216
+Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 228 Q F0
+(Same as)224 240 Q F1<ad48>2.5 E F0(.)A F1(history)184 252 Q F0 .586
+(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
+(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E/F2 9
/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F3 9/Times-Roman@0 SF
-(.)A F0 .587(This option is)5.087 F(on by def)224 192 Q
+(.)A F0 .587(This option is)5.087 F(on by def)224 264 Q
(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-204 Q(eeof)-.18 E F0 1.656(The ef)224 216 R 1.656
+276 Q(eeof)-.18 E F0 1.657(The ef)224 288 R 1.657
(fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10)
-4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-228 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
-.15 E F1 -.1(ke)184 240 S(yw).1 E(ord)-.1 E F0(Same as)224 252 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 264 Q F0(Same as)5.56 E F1<ad6d>2.5 E
-F0(.)A F1(noclob)184 276 Q(ber)-.1 E F0(Same as)224 288 Q F1<ad43>2.5 E
-F0(.)A F1(noexec)184 300 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
-(noglob)184 312 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
-324 Q F0(Currently ignored.)16.66 E F1(notify)184 336 Q F0(Same as)15 E
-F1<ad62>2.5 E F0(.)A F1(nounset)184 348 Q F0(Same as)6.66 E F1<ad75>2.5
-E F0(.)A F1(onecmd)184 360 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
-(ph)184 372 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
-(pipefail)184 384 Q F0 1.03(If set, the return v)7.77 F 1.029
-(alue of a pipeline is the v)-.25 F 1.029
-(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 396 R
+4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
+300 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1 -.1(ke)184 312 S(yw).1 E(ord)-.1 E F0(Same as)224 324 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 336 Q F0(Same as)5.56 E F1<ad6d>2.5 E
+F0(.)A F1(noclob)184 348 Q(ber)-.1 E F0(Same as)224 360 Q F1<ad43>2.5 E
+F0(.)A F1(noexec)184 372 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
+(noglob)184 384 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
+396 Q F0(Currently ignored.)16.66 E F1(notify)184 408 Q F0(Same as)15 E
+F1<ad62>2.5 E F0(.)A F1(nounset)184 420 Q F0(Same as)6.66 E F1<ad75>2.5
+E F0(.)A F1(onecmd)184 432 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
+(ph)184 444 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
+(pipefail)184 456 Q F0 1.029(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.03
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 468 R
1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 408 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 420 Q F0
-2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 480 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 492 Q F0
+2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 432 Q
-/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 444 Q(vileged)
--.1 E F0(Same as)224 456 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 468 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 480 Q F0
-1.465(Use a vi-style command line editing interf)32.22 F 3.966
-(ace. This)-.1 F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F
-(interf)224 492 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 504 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-522 Q F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F5
-(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
-(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
-534 Q F0 1.071(is supplied with no)3.571 F F5(option\255name)3.571 E F0
-3.571(,as)C 1.071(eries of)-3.571 F F1(set)3.572 E F0 1.072
-(commands to recreate the current)3.572 F
-(option settings is displayed on the standard output.)184 546 Q F1<ad70>
-144 558 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F5(privile)4.822 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
-F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.071
-(\214les are not pro-)3.322 F 1.5
-(cessed, shell functions are not inherited from the en)184 570 R 1.501
-(vironment, and the)-.4 F F2(SHELLOPTS)4.001 E F3(,)A F1 -.3(BA)184 582
-S(SHOPTS).3 E F0(,)A F1(CDP)3.186 E -.95(AT)-.74 G(H).95 E F0 3.186(,a)C
+(fers from the)-.25 F(POSIX standard to match the standard \()224 504 Q
+/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 516 Q(vileged)
+-.1 E F0(Same as)224 528 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 540 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 552 Q F0
+1.466(Use a vi-style command line editing interf)32.22 F 3.965
+(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F
+(interf)224 564 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
+(.)A F1(xtrace)184 576 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
+594 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5
+(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
+(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
+606 Q F0 1.072(is supplied with no)3.572 F F5(option\255name)3.572 E F0
+3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
+(commands to recreate the current)3.571 F
+(option settings is displayed on the standard output.)184 618 Q F1<ad70>
+144 630 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F5(privile)4.821 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
+F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.072
+(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 642 R 1.5
+(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F1 -.3(BA)184 654 S
+(SHOPTS).3 E F0(,)A F1(CDP)3.186 E -.95(AT)-.74 G(H).95 E F0 3.186(,a)C
(nd)-3.186 E F1(GLOBIGNORE)3.186 E F0 -.25(va)3.186 G .686
(riables, if the).25 F 3.186(ya)-.15 G .686(ppear in the en)-3.186 F
-(viron-)-.4 E .853(ment, are ignored.)184 594 R .854
-(If the shell is started with the ef)5.853 F(fecti)-.25 E 1.154 -.15
-(ve u)-.25 H .854(ser \(group\) id not equal to).15 F .043
-(the real user \(group\) id, and the)184 606 R F1<ad70>2.543 E F0 .043
+(viron-)-.4 E .854(ment, are ignored.)184 666 R .854
+(If the shell is started with the ef)5.854 F(fecti)-.25 E 1.154 -.15
+(ve u)-.25 H .853(ser \(group\) id not equal to).15 F .043
+(the real user \(group\) id, and the)184 678 R F1<ad70>2.543 E F0 .043
(option is not supplied, these actions are tak)2.543 F .043(en and the)
--.1 F(ef)184 618 Q(fecti)-.25 E 1.666 -.15(ve u)-.25 H 1.366
+-.1 F(ef)184 690 Q(fecti)-.25 E 1.667 -.15(ve u)-.25 H 1.367
(ser id is set to the real user id.).15 F 1.367(If the)6.367 F F1<ad70>
-3.867 E F0 1.367(option is supplied at startup, the)3.867 F(ef)184 630 Q
-(fecti)-.25 E .709 -.15(ve u)-.25 H .409(ser id is not reset.).15 F -.45
-(Tu)5.409 G .409(rning this option of).45 F 2.909(fc)-.25 G .408
-(auses the ef)-2.909 F(fecti)-.25 E .708 -.15(ve u)-.25 H .408
+3.867 E F0 1.366(option is supplied at startup, the)3.866 F(ef)184 702 Q
+(fecti)-.25 E .708 -.15(ve u)-.25 H .408(ser id is not reset.).15 F -.45
+(Tu)5.409 G .409(rning this option of).45 F 2.909(fc)-.25 G .409
+(auses the ef)-2.909 F(fecti)-.25 E .709 -.15(ve u)-.25 H .409
(ser and group).15 F(ids to be set to the real user and group ids.)184
-642 Q F1<ad74>144 654 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
-G(cuting one command.).15 E F1<ad75>144 666 Q F0 -.35(Tr)28.74 G .043
-(eat unset v).35 F .044(ariables and parameters other than the special \
-parameters "@" and "*" as an)-.25 F .183
-(error when performing parameter e)184 678 R 2.683(xpansion. If)-.15 F
--.15(ex)2.683 G .182(pansion is attempted on an unset v).15 F(ari-)-.25
-E .746(able or parameter)184 690 R 3.246(,t)-.4 G .746
-(he shell prints an error message, and, if not interacti)-3.246 F -.15
-(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-702 Q F1<ad76>144 714 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)
-198.725 E 0 Cg EP
+714 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)198.725 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad78>144 84 Q F0 .315(After e)29.3 F .315
+/Times-Bold@0 SF<ad74>144 84 Q F0(Exit after reading and e)30.97 E -.15
+(xe)-.15 G(cuting one command.).15 E F1<ad75>144 96 Q F0 -.35(Tr)28.74 G
+.044(eat unset v).35 F .044(ariables and parameters other than the spec\
+ial parameters "@" and "*" as an)-.25 F .182
+(error when performing parameter e)184 108 R 2.682(xpansion. If)-.15 F
+-.15(ex)2.682 G .183(pansion is attempted on an unset v).15 F(ari-)-.25
+E .746(able or parameter)184 120 R 3.246(,t)-.4 G .746
+(he shell prints an error message, and, if not interacti)-3.246 F -.15
+(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
+132 Q F1<ad76>144 144 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 156 Q F0 .315(After e)29.3 F .315
(xpanding each)-.15 F/F2 10/Times-Italic@0 SF .315(simple command)2.815
F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E
-F0(command,)2.815 E F1(select)2.815 E F0(command,)2.815 E 1.235
-(or arithmetic)184 96 R F1 -.25(fo)3.736 G(r).25 E F0 1.236
+F0(command,)2.815 E F1(select)2.815 E F0(command,)2.815 E 1.236
+(or arithmetic)184 168 R F1 -.25(fo)3.736 G(r).25 E F0 1.236
(command, display the e)3.736 F 1.236(xpanded v)-.15 F 1.236(alue of)
-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0 SF(,)A F0
-(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 108 Q
+(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 180 Q
(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 120 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+<ad42>144 192 Q F0 2.578(The shell performs brace e)27.63 F 2.578
(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 132 Q
-(ault.)-.1 E F1<ad43>144 144 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
-F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 204 Q
+(ault.)-.1 E F1<ad43>144 216 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
+F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
-2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
-3.054(tors. This)184 156 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
+3.053(tors. This)184 228 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 168 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 180 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
--2.603 F F1(ERR)2.603 E F0 .104
-(is inherited by shell functions, command substitutions, and com-)2.603
-F .839(mands e)184 192 R -.15(xe)-.15 G .839(cuted in a subshell en).15
-F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
-(trap is normally not inherited in)3.338 F(such cases.)184 204 Q F1
-<ad48>144 216 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
-(style history substitution.)5.531 F .531(This option is on by def)5.531
-F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 228 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 240 Q F0 1.165
+.15 F(tor)184 240 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 252 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
+-2.604 F F1(ERR)2.604 E F0 .103
+(is inherited by shell functions, command substitutions, and com-)2.604
+F .838(mands e)184 264 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
+(trap is normally not inherited in)3.339 F(such cases.)184 276 Q F1
+<ad48>144 288 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
+(style history substitution.)5.532 F .531(This option is on by def)5.532
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 300 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 312 Q F0 1.164
(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
-(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
-(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
-(that change the current w)184 252 R 2.822(orking directory)-.1 F 7.822
-(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
-(ysical directory structure)-.05 F 2.686(instead. By)184 264 R(def)2.686
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165
+(cuting commands such as).15 F F1(cd)3.665 E F0 2.822
+(that change the current w)184 324 R 2.822(orking directory)-.1 F 7.822
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
+(ysical directory structure)-.05 F 2.685(instead. By)184 336 R(def)2.685
E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 276 Q(.)-.65 E F1<ad54>144
-288 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 348 Q(.)-.65 E F1<ad54>144
+360 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 300 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 372 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 312 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 324 Q
-F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 384 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 396 Q
+F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.401 E(the positional parameters are set to the)184 336 Q
-F2(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
+(Otherwise,)5.4 E(the positional parameters are set to the)184 408 Q F2
+(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
-348 Q F0 1.945(Signal the end of options, cause all remaining)34.3 F F2
-(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G
-1.944(ssigned to the positional)-4.444 F 3.445(parameters. The)184 360 R
-F1<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
-(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
-3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
-(parameters remain unchanged.)184 372 Q .425(The options are of)144
-388.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+420 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
+(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G
+1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 432 R
+F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
+(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
+3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
+(parameters remain unchanged.)184 444 Q .425(The options are of)144
+460.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F .177
-(to be turned of)144 400.8 R 2.677(f. The)-.25 F .178
+(Using + rather than \255 causes these options)5.425 F .178
+(to be turned of)144 472.8 R 2.678(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
-(current set of options may be found in)144 412.8 R F1<24ad>2.566 E F0
+-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
+(current set of options may be found in)144 484.8 R F1<24ad>2.566 E F0
5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
-(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
-(is encountered.)144 424.8 Q F1(shift)108 441.6 Q F0([)2.5 E F2(n)A F0
-(])A .428(The positional parameters from)144 453.6 R F2(n)2.928 E F0
-.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
-.429(rameters represented by the num-).15 F(bers)144 465.6 Q F1($#)2.583
-E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
-(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
--.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
-.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
-(is 0, no parameters are changed.)144 477.6 R(If)5.06 E F2(n)2.92 E F0
+(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
+(is encountered.)144 496.8 Q F1(shift)108 513.6 Q F0([)2.5 E F2(n)A F0
+(])A .429(The positional parameters from)144 525.6 R F2(n)2.929 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
+.428(rameters represented by the num-).15 F(bers)144 537.6 Q F1($#)2.582
+E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
+(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
+-.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
+.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
+(is 0, no parameters are changed.)144 549.6 R(If)5.06 E F2(n)2.92 E F0
.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 489.6 R
-.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
-.143(is greater than)2.883 F F1($#)2.643 E F0
-(or less than zero; otherwise 0.)144 501.6 Q F1(shopt)108 518.4 Q F0([)
+(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 561.6 R
+.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
+.144(is greater than)2.884 F F1($#)2.644 E F0
+(or less than zero; otherwise 0.)144 573.6 Q F1(shopt)108 590.4 Q F0([)
2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 530.4 S .222(ggle the v).8 F .222
+-2.5 E F0(...])2.5 E -.8(To)144 602.4 S .222(ggle the v).8 F .222
(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
<ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 542.4 R(The)
-144 554.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
-d in a form that may be reused as input.)2.827 F .328(Other options)
-5.328 F(ha)144 566.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 578.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 590.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 602.4 Q F0 .003(Suppresses normal out\
+ed, with an indication of whether or not each is set.)144 614.4 R(The)
+144 626.4 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\
+d in a form that may be reused as input.)2.828 F .327(Other options)
+5.327 F(ha)144 638.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 650.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 662.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 674.4 Q F0 .003(Suppresses normal out\
put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 614.4 R .255
-(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
+(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 686.4 R .256
+(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256
(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
-<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
-(all)180 626.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 638.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+<ad71>2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F
+(all)180 698.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 710.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128
-(If either)144 655.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
+(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127
+(If either)144 727.2 R F1<ad73>2.627 E F0(or)2.627 E F1<ad75>2.627 E F0
.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
-(guments, the display is limited to those options which)-.18 F 1.023
-(are set or unset, respecti)144 667.2 R -.15(ve)-.25 G(ly).15 E 6.023
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
-1.024(options are disabled \(unset\) by)3.524 F(def)144 679.2 Q(ault.)
--.1 E 1.544(The return status when listing options is zero if all)144
-696 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
-4.044 F .696
-(When setting or unsetting options, the return status is zero unless an)
-144 708 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
--.25 F(option.)144 720 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)
-198.725 E 0 Cg EP
+(guments, the display is limited to those options which)-.18 F
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(The list of)
-144 84 Q/F1 10/Times-Bold@0 SF(shopt)2.5 E F0(options is:)2.5 E F1
-(autocd)144 102 Q F0 .2
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.024
+(are set or unset, respecti)144 84 R -.15(ve)-.25 G(ly).15 E 6.024(.U)
+-.65 G 1.024(nless otherwise noted, the)-6.024 F/F1 10/Times-Bold@0 SF
+(shopt)3.523 E F0 1.023(options are disabled \(unset\) by)3.523 F(def)
+144 96 Q(ault.)-.1 E 1.544
+(The return status when listing options is zero if all)144 112.8 R/F2 10
+/Times-Italic@0 SF(optnames)4.044 E F0 1.545
+(are enabled, non-zero otherwise.)4.045 F .696
+(When setting or unsetting options, the return status is zero unless an)
+144 124.8 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695
+(alid shell)-.25 F(option.)144 136.8 Q(The list of)144 153.6 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(autocd)144 171.6 Q F0 .199
(If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 114 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+-.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 183.6 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 126 Q(ars)-.1 E F0 .155(If set, an ar)184 138 R .155
-(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
+F1(cdable_v)144 195.6 Q(ars)-.1 E F0 .156(If set, an ar)184 207.6 R .156
+(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 150 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 162 Q F0
+(name of a v)184 219.6 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 231.6 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)
-10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
-(corrected. The)184 174 R 1.487(errors check)3.987 F 1.487
-(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
--.4 G(nd)-3.988 E .552(one character too man)184 186 R 4.352 -.65(y. I)
--.15 H 3.052(fac).65 G .552
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 243.6 R 1.488(errors check)3.988 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
+-.4 G(nd)-3.987 E .552(one character too man)184 255.6 R 4.352 -.65
+(y. I)-.15 H 3.052(fac).65 G .552
(orrection is found, the corrected \214le name is printed, and)-3.052 F
-(the command proceeds.)184 198 Q(This option is only used by interacti)5
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 210 Q F0 2.079
-(If set,)184 222 R F1(bash)4.579 E F0 2.079
-(checks that a command found in the hash table e)4.579 F 2.08
-(xists before trying to)-.15 F -.15(exe)184 234 S(cute it.).15 E
+(the command proceeds.)184 267.6 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(checkhash)144 279.6 Q F0 2.08(If set,)184 291.6 R F1(bash)4.58
+E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079
+(xists before trying to)-.15 F -.15(exe)184 303.6 S(cute it.).15 E
(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 246 Q
-F0 .449(If set,)184 258 R F1(bash)2.949 E F0 .449
-(lists the status of an)2.949 F 2.949(ys)-.15 G .448
-(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.438(shell. If)184 270 R(an)3.438 E 3.438(yj)-.15 G
-.938(obs are running, this causes the e)-3.438 F .938
-(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
-(attempted without an interv)184 282 R 1.456(ening command \(see)-.15 F
-F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G 3.956
-(\). The).15 F(shell)3.956 E(al)184 294 Q -.1(wa)-.1 G(ys postpones e).1
-E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F1
-(checkwinsize)144 306 Q F0 .796(If set,)184 318 R F1(bash)3.296 E F0
-.796(checks the windo)3.296 F 3.296(ws)-.25 G .797
-(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G .797
-(pdates the)-3.297 F -.25(va)184 330 S(lues of).25 E/F2 9/Times-Bold@0
-SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
-F1(cmdhist)144 342 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 315.6
+Q F0 .448(If set,)184 327.6 R F1(bash)2.948 E F0 .448
+(lists the status of an)2.948 F 2.949(ys)-.15 G .449
+(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.439(shell. If)184 339.6 R(an)3.439 E 3.439(yj)-.15 G
+.938(obs are running, this causes the e)-3.439 F .938
+(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 1.456
+(attempted without an interv)184 351.6 R 1.456(ening command \(see)-.15
+F F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G
+3.956(\). The).15 F(shell)3.956 E(al)184 363.6 Q -.1(wa)-.1 G
+(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)
+-2.5 E F1(checkwinsize)144 375.6 Q F0 .797(If set,)184 387.6 R F1(bash)
+3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G .796
+(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G .796
+(pdates the)-3.296 F -.25(va)184 399.6 S(lues of).25 E/F3 9/Times-Bold@0
+SF(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A
+F1(cmdhist)144 411.6 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
(ll lines of a multiple-line command in the same history).15 F(entry)184
-354 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 366 Q
-F0 .419(If set,)184 378 R F1(bash)2.919 E F0 .419(changes its beha)2.919
-F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the conditional command')184 390 Q 2.5(s=)-.55
-G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dirspell)144 402 Q F0 .859
-(If set,)7.77 F F1(bash)3.359 E F0 .858
-(attempts spelling correction on directory names during w)3.359 F .858
+423.6 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 435.6
+Q F0 .42(If set,)184 447.6 R F1(bash)2.92 E F0 .42(changes its beha)2.92
+F .419(vior to that of v)-.2 F .419
+(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E
+(to the conditional command')184 459.6 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G
+(perator)-2.5 E(.)-.55 E F1(dirspell)144 471.6 Q F0 .858(If set,)7.77 F
+F1(bash)3.358 E F0 .858
+(attempts spelling correction on directory names during w)3.358 F .859
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 414 Q(xist.)-.15 E
-F1(dotglob)144 426 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 483.6 Q(xist.)-.15
+E F1(dotglob)144 495.6 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 438 Q F0 1.387
-(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
+(xpansion.)-.15 E F1(execfail)144 507.6 Q F0 1.386
+(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.386(cute the \214le speci\214ed as an).15 F(ar)184 450 Q
+1.387(cute the \214le speci\214ed as an).15 F(ar)184 519.6 Q
(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 462 Q F0
-.716(If set, aliases are e)184 474 R .717(xpanded as described abo)-.15
-F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717
-(This option is enabled)5.217 F(by def)184 486 Q(ault for interacti)-.1
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 498 Q(ug)-.2 E F0
-(If set, beha)184 510 Q(vior intended for use by deb)-.2 E
-(uggers is enabled:)-.2 E F1(1.)184 522 Q F0(The)28.5 E F1<ad46>4.251 E
-F0 1.751(option to the)4.251 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)
-4.251 G 1.751(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 534 Q
-(gument.)-.18 E F1(2.)184 546 Q F0 1.667(If the command run by the)28.5
-F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 558
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 570 Q F0 .841
-(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
-(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
-(exe)220 582 S .488
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 531.6 Q
+F0 .717(If set, aliases are e)184 543.6 R .717(xpanded as described abo)
+-.15 F 1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E F4(.)A F0
+.716(This option is enabled)5.217 F(by def)184 555.6 Q
+(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144
+567.6 Q(ug)-.2 E F0(If set, beha)184 579.6 Q
+(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
+591.6 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F F1
+(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
+(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 603.6
+Q(gument.)-.18 E F1(2.)184 615.6 Q F0 1.667(If the command run by the)
+28.5 F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167
+F 1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220
+627.6 Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 639.6 Q F0 .84
+(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+(exe)220 651.6 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 594 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+(sour)220 663.6 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184
-606 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
-1.275(are updated as described in their descrip-)3.776 F(tions abo)220
-618 Q -.15(ve)-.15 G(.).15 E F1(5.)184 630 Q F0 1.359
+675.6 R(ASH_ARGC)-.3 E F0(and)3.775 E F1 -.3(BA)3.775 G(SH_ARGV).3 E F0
+1.276(are updated as described in their descrip-)3.775 F(tions abo)220
+687.6 Q -.15(ve)-.15 G(.).15 E F1(5.)184 699.6 Q F0 1.359
(Function tracing is enabled:)28.5 F 1.359
(command substitution, shell functions, and sub-)6.359 F(shells in)220
-642 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
-/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
-(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 654 Q F0 .805(Error tracing is enabled:)28.5 F .804
-(command substitution, shell functions, and subshells)5.805 F(in)220 666
-Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
-(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
-(trap.)2.5 E F1(extglob)144 678 Q F0 .4(If set, the e)8.89 F .4
-(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 690 Q
-F0(are enabled.)2.5 E F1(extquote)144 702 Q F0 2.473(If set,)184 714 R
-F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
-E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
--4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 726 Q
-(This option is enabled by def)5 E(ault.)-.1 E(GNU Bash-4.0)72 768 Q
+711.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
+(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(DEB)2.5 E(UG)-.1 E F0
+(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E(GNU Bash-4.0)72 768 Q
(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
@@ -2138,485 +2136,500 @@ BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(failglob)144 84 Q F0 1.424(If set, patterns which f)
-7.77 F 1.425(ail to match \214lenames during pathname e)-.1 F 1.425
-(xpansion result in an)-.15 F -.15(ex)184 96 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 108 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.585(If set, the suf)184 120 R<8c78>-.25 E .585(es speci\214ed by the)
+/Times-Bold@0 SF(6.)184 84 Q F0 .804(Error tracing is enabled:)28.5 F
+.805(command substitution, shell functions, and subshells)5.804 F(in)220
+96 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F2 10
+/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
+(ERR)2.5 E(OR)-.3 E F0(trap.)2.5 E F1(extglob)144 108 Q F0 .4
+(If set, the e)8.89 F .4
+(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 120 Q
+F0(are enabled.)2.5 E F1(extquote)144 132 Q F0 2.473(If set,)184 144 R
+F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+E F0(")A F2(string)A F0 4.973("q)C 2.473(uoting is performed within)
+-4.973 F F1(${)4.973 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
+(pansions).15 E(enclosed in double quotes.)184 156 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 168 Q F0
+1.425(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.424
+(xpansion result in an)-.15 F -.15(ex)184 180 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 192 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 204 R<8c78>-.25 E .585(es speci\214ed by the)
-.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w)
--.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 132 R .32
+-.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 216 R .32
(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
-(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.33
-(pletions. See)184 144 R/F2 9/Times-Bold@0 SF .83(SHELL V)3.33 F
-(ARIABLES)-1.215 E F0(abo)3.08 E 1.13 -.15(ve f)-.15 H .829
-(or a description of).15 F F1(FIGNORE)3.329 E F0 5.829(.T)C .829
-(his option)-5.829 F(is enabled by def)184 156 Q(ault.)-.1 E F1
-(globstar)144 168 Q F0 .178(If set, the pattern)5 F F1(**)2.678 E F0
-.178(used in a pathname e)2.678 F .178(xpansion conte)-.15 F .179
-(xt will match a \214les and zero or)-.15 F 1.298
-(more directories and subdirectories.)184 180 R 1.298
-(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
-3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
-192 Q F1(gnu_errfmt)144 204 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 216 Q F1(histappend)144
-228 Q F0 .383
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.329
+(pletions. See)184 228 R/F3 9/Times-Bold@0 SF .829(SHELL V)3.329 F
+(ARIABLES)-1.215 E F0(abo)3.079 E 1.129 -.15(ve f)-.15 H .83
+(or a description of).15 F F1(FIGNORE)3.33 E F0 5.83(.T)C .83
+(his option)-5.83 F(is enabled by def)184 240 Q(ault.)-.1 E F1(globstar)
+144 252 Q F0 .179(If set, the pattern)5 F F1(**)2.679 E F0 .178
+(used in a pathname e)2.678 F .178(xpansion conte)-.15 F .178
+(xt will match a \214les and zero or)-.15 F 1.297
+(more directories and subdirectories.)184 264 R 1.298
+(If the pattern is follo)6.297 F 1.298(wed by a)-.25 F F1(/)3.798 E F0
+3.798(,o)C 1.298(nly directories)-3.798 F(and subdirectories match.)184
+276 Q F1(gnu_errfmt)144 288 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 300 Q F1(histappend)144
+312 Q F0 .384
(If set, the history list is appended to the \214le named by the v)184
-240 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G
-(ri-).25 E(able when the shell e)184 252 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 264 Q(eedit)-.18
-E F0 .576(If set, and)184 276 R F1 -.18(re)3.076 G(adline).18 E F0 .575
-(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
-(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
-(tory substitution.)184 288 Q F1(histv)144 300 Q(erify)-.1 E F0 .402
-(If set, and)184 312 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+324 R .383(alue of the)-.25 F F1(HISTFILE)2.883 E F0 -.25(va)2.883 G
+(ri-).25 E(able when the shell e)184 336 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 348 Q(eedit)-.18
+E F0 .575(If set, and)184 360 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
+(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
+(tory substitution.)184 372 Q F1(histv)144 384 Q(erify)-.1 E F0 .403
+(If set, and)184 396 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 324 R 5.662(.I)-.55 G .661
-(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 336 S -.25(ff).2 G(er).25 E
+2.903 F .661(passed to the shell parser)184 408 R 5.661(.I)-.55 G .662
+(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 420 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 348 Q F0 1.181(If set, and)184 360 R F1 -.18(re)3.681
-G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
-(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
-372 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-F2(READLINE)3.88 E F0(abo)184 384 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 396 Q F0(If set,)
-184 408 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+(hostcomplete)144 432 Q F0 1.182(If set, and)184 444 R F1 -.18(re)3.682
+G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
+(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
+456 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
+F3(READLINE)3.881 E F0(abo)184 468 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 480 Q F0(If set,)
+184 492 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E F0
(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(interacti)144 420 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 432 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+.15 E(xits.)-.15 E F1(interacti)144 504 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 516 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
(ord and all remaining characters on)-.1 F .967
-(that line to be ignored in an interacti)184 444 R 1.267 -.15(ve s)-.25
-H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 456 Q
-(ault.)-.1 E F1(lithist)144 468 Q F0 .654(If set, and the)15.55 F F1
-(cmdhist)3.154 E F0 .654(option is enabled, multi-line commands are sa)
-3.154 F -.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)
--3.155 F(with embedded ne)184 480 Q
+(that line to be ignored in an interacti)184 528 R 1.267 -.15(ve s)-.25
+H .967(hell \(see).15 F F3(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
+G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 540 Q
+(ault.)-.1 E F1(lithist)144 552 Q F0 .655(If set, and the)15.55 F F1
+(cmdhist)3.155 E F0 .654(option is enabled, multi-line commands are sa)
+3.154 F -.15(ve)-.2 G 3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)
+-3.154 F(with embedded ne)184 564 Q
(wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 492 Q F0 .486
+(login_shell)144 576 Q F0 .486
(The shell sets this option if it is started as a login shell \(see)184
-504 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 516 S(lue may not be changed.).25
-E F1(mailwar)144 528 Q(n)-.15 E F0 .814(If set, and a \214le that)184
-540 R F1(bash)3.314 E F0 .815
-(is checking for mail has been accessed since the last time it)3.314 F
--.1(wa)184 552 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
-(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
-(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 564 Q F0 .146(If set, and)184 576 R F1 -.18
-(re)2.646 G(adline).18 E F0 .146(is being used,)2.646 F F1(bash)2.646 E
-F0 .145(will not attempt to search the)2.646 F F1 -.74(PA)2.645 G(TH)
--.21 E F0 .145(for possible)2.645 F
-(completions when completion is attempted on an empty line.)184 588 Q F1
-(nocaseglob)144 600 Q F0 .436(If set,)184 612 R F1(bash)2.936 E F0 .436
-(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
-H .437(ashion when performing pathname).05 F -.15(ex)184 624 S
+588 R F3(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)2.737 E -.15(ve)
+-.15 G 2.987(\). The).15 F -.25(va)184 600 S(lue may not be changed.).25
+E F1(mailwar)144 612 Q(n)-.15 E F0 .815(If set, and a \214le that)184
+624 R F1(bash)3.315 E F0 .814
+(is checking for mail has been accessed since the last time it)3.315 F
+-.1(wa)184 636 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+(`The mail in)-.74 E F2(mail\214le)2.5 E F0(has been read')2.5 E 2.5('i)
+-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1(no_empty_cmd_completion)144 648
+Q F0 .145(If set, and)184 660 R F1 -.18(re)2.645 G(adline).18 E F0 .145
+(is being used,)2.645 F F1(bash)2.646 E F0 .146
+(will not attempt to search the)2.646 F F1 -.74(PA)2.646 G(TH)-.21 E F0
+.146(for possible)2.646 F
+(completions when completion is attempted on an empty line.)184 672 Q F1
+(nocaseglob)144 684 Q F0 .437(If set,)184 696 R F1(bash)2.937 E F0 .436
+(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
+H .436(ashion when performing pathname).05 F -.15(ex)184 708 S
(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 636 Q F0 1.194(If set,)184
-648 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
-3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
-F(while e)184 660 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
-E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 672 Q F0
-.854(If set,)184 684 R F1(bash)3.354 E F0(allo)3.354 E .855
-(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
-(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
--3.355 E -.15(ex)184 696 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725
-E 0 Cg EP
+-.15(ve)-.15 G(\).).15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)
+198.725 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(pr)144 84 Q(ogcomp)-.18 E F0 .677
-(If set, the programmable completion f)184 96 R .677(acilities \(see)-.1
-F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E -.15
-(ve)-.15 G(\)).15 E(are enabled.)184 108 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 120 Q(omptv)
--.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 132 R 1.448
-(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 144 S .171(pansion, and quote remo).15 F -.25(va)-.15
+/Times-Bold@0 SF(nocasematch)144 84 Q F0 1.193(If set,)184 96 R F1(bash)
+3.693 E F0 1.194(matches patterns in a case\255insensiti)3.693 F 1.494
+-.15(ve f)-.25 H 1.194(ashion when performing matching).05 F(while e)184
+108 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5 E F1([[)2.5 E
+F0(conditional commands.)2.5 E F1(nullglob)144 120 Q F0 .855(If set,)184
+132 R F1(bash)3.355 E F0(allo)3.355 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
+(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
+-3.354 E -.15(ex)184 144 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 156 Q(ogcomp)-.18 E F0 .676
+(If set, the programmable completion f)184 168 R .677(acilities \(see)
+-.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 180 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 192 Q(omptv)
+-.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 204 R 1.448
+(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 216 S .17(pansion, and quote remo).15 F -.25(va)-.15
G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
--.15 F/F2 9/Times-Bold@0 SF(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15
-(ve)-.15 G(.).15 E(This option is enabled by def)184 156 Q(ault.)-.1 E
-F1 -.18(re)144 168 S(stricted_shell).18 E F0 1.069
+-.15 F/F2 9/Times-Bold@0 SF(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E
+-.15(ve)-.15 G(.).15 E(This option is enabled by def)184 228 Q(ault.)-.1
+E F1 -.18(re)144 240 S(stricted_shell).18 E F0 1.069
(The shell sets this option if it is started in restricted mode \(see)
-184 180 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 192 Q 4.178
+184 252 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 264 Q 4.178
(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
-184 204 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+184 276 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 216 Q(erbose)-.1 E F0 .501(If set, the)184 228 R F1
-(shift)3.001 E F0 -.2(bu)3.001 G .501
-(iltin prints an error message when the shift count e).2 F .502
-(xceeds the number)-.15 F(of positional parameters.)184 240 Q F1(sour)
-144 252 Q(cepath)-.18 E F0 .771(If set, the)184 264 R F1(sour)3.271 E
-(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
--3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
-(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
-184 276 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
--.1 E F1(xpg_echo)144 288 Q F0(If set, the)184 300 Q F1(echo)2.5 E F0
--.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
-E(ault.)-.1 E F1(suspend)108 312 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
-(Suspend the e)144 324 R -.15(xe)-.15 G 1.001
-(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
-F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
-3.502 F .023(suspended; the)144 336 R F1<ad66>2.523 E F0 .023
-(option can be used to o)2.523 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .022(The return status is)
-5.022 F 2.5(0u)144 348 S(nless the shell is a login shell and)-2.5 E F1
+F1(shift_v)144 288 Q(erbose)-.1 E F0 .502(If set, the)184 300 R F1
+(shift)3.002 E F0 -.2(bu)3.002 G .501
+(iltin prints an error message when the shift count e).2 F .501
+(xceeds the number)-.15 F(of positional parameters.)184 312 Q F1(sour)
+144 324 Q(cepath)-.18 E F0 .77(If set, the)184 336 R F1(sour)3.27 E(ce)
+-.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F
+.771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771
+(to \214nd the directory containing the)3.021 F
+(\214le supplied as an ar)184 348 Q 2.5(gument. This)-.18 F
+(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 360 Q F0
+(If set, the)184 372 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
+(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
+108 384 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 396 R -.15
+(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)-.25
+G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
+(login shell cannot be)3.501 F .022(suspended; the)144 408 R F1<ad66>
+2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .023(The return status is)
+5.023 F 2.5(0u)144 420 S(nless the shell is a login shell and)-2.5 E F1
<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
-F1(test)108 360 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
-372 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
+F1(test)108 432 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
+444 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
-(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
-(operator and operand must be a separate ar)144 384 R 3.688
-(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
-1.889(described abo)144 396 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
-(CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
-F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89
-(ptions, nor)-4.39 F(does it accept and ignore an ar)144 408 Q
+(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.187
+(operator and operand must be a separate ar)144 456 R 3.688
+(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F
+1.89(described abo)144 468 R 2.19 -.15(ve u)-.15 H(nder).15 E F2
+(CONDITION)4.39 E 1.89(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
+F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889
+(ptions, nor)-4.389 F(does it accept and ignore an ar)144 480 Q
(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .786(Expressions may be combined using the follo)144 426 R .785
+E .785(Expressions may be combined using the follo)144 498 R .786
(wing operators, listed in decreasing order of prece-)-.25 F 2.5
-(dence. The)144 438 R -.25(eva)2.5 G
+(dence. The)144 510 R -.25(eva)2.5 G
(luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
-(w.)-.25 G F1(!)144 450 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(w.)-.25 G F1(!)144 522 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
-144 462 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+144 534 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
(his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 474 Q F3 -.2(ex)
-144 486 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
-(Tr)180 498 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
--.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 510 S(pr1).2 E
-F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 522 S
+(rride the normal precedence of opera-).15 F(tors.)180 546 Q F3 -.2(ex)
+144 558 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
+(Tr)180 570 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
+-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 582 S(pr1).2 E
+F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 594 S
(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G
-(pr2).2 E F0(is true.)2.52 E F1(test)144 538.8 Q F0(and)2.5 E F1([)2.5 E
+(pr2).2 E F0(is true.)2.52 E F1(test)144 610.8 Q F0(and)2.5 E F1([)2.5 E
F0 -.25(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 556.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 568.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 580.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 592.8 Q
+(guments.)-.18 E 2.5(0a)144 628.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 640.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 652.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 664.8 Q
(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 604.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 616.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 676.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 688.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 628.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 640.8 Q .553
+(gument is null.)-.18 F .38(If the \214rst ar)180 700.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .679
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.879 E(TION)180 712.8 Q .552
(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
(xpression is true if the unary test is true.)-.15 F .552
-(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 652.8 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 724.8 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 664.8 S -.18(rg)-2.5 G
-(uments).18 E .023(If the second ar)180 676.8 R .023
-(gument is one of the binary conditional operators listed abo)-.18 F
-.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 688.8 Q
-1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
-1.477(xpression is the result of the binary test)-.15 F .513
-(using the \214rst and third ar)180 700.8 R .513(guments as operands.)
--.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
-.513(operators are considered)3.013 F .972
-(binary operators when there are three ar)180 712.8 R 3.472(guments. If)
--.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
-3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 724.8
-R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
-(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
-F .884(the \214rst)3.384 F(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E
-(18)198.725 E 0 Cg EP
+(xpression is f)-.15 E(alse.)-.1 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)
+148.735 E(18)198.725 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(ar)180 84 Q
-.875(gument is e)-.18 F(xactly)-.15 E/F1 10/Times-Bold@0 SF(\()3.375 E
-F0 .875(and the third ar)3.375 F .875(gument is e)-.18 F(xactly)-.15 E
-F1(\))3.375 E F0 3.374(,t)C .874(he result is the one-ar)-3.374 F
-(gument)-.18 E(test of the second ar)180 96 Q 2.5(gument. Otherwise,)
--.18 F(the e)2.5 E(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 108 S
--.18(rg)-2.5 G(uments).18 E .384(If the \214rst ar)180 120 R .384
-(gument is)-.18 F F1(!)2.884 E F0 2.885(,t)C .385(he result is the ne)
--2.885 F -.05(ga)-.15 G .385(tion of the three-ar).05 F .385(gument e)
--.18 F .385(xpression com-)-.15 F 1.648(posed of the remaining ar)180
-132 R 4.147(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(3a)144
+84 S -.18(rg)-2.5 G(uments).18 E .024(If the second ar)180 96 R .023
+(gument is one of the binary conditional operators listed abo)-.18 F
+.323 -.15(ve u)-.15 H(nder).15 E/F1 9/Times-Bold@0 SF(CON-)2.523 E
+(DITION)180 108 Q 1.477(AL EXPRESSIONS)-.18 F/F2 9/Times-Roman@0 SF(,)A
+F0 1.477(the result of the e)3.727 F 1.477
+(xpression is the result of the binary test)-.15 F .513
+(using the \214rst and third ar)180 120 R .513(guments as operands.)-.18
+F(The)5.513 E/F3 10/Times-Bold@0 SF<ad61>3.013 E F0(and)3.013 E F3<ad6f>
+3.013 E F0 .512(operators are considered)3.013 F .972
+(binary operators when there are three ar)180 132 R 3.472(guments. If)
+-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F3(!)3.472 E F0
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 144 R
+-.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
+(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
+F .883(the \214rst)3.383 F(ar)180 156 Q .874(gument is e)-.18 F(xactly)
+-.15 E F3(\()3.374 E F0 .875(and the third ar)3.374 F .875(gument is e)
+-.18 F(xactly)-.15 E F3(\))3.375 E F0 3.375(,t)C .875
+(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
+180 168 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)-.15
+E(alse.)-.1 E 2.5(4a)144 180 S -.18(rg)-2.5 G(uments).18 E .385
+(If the \214rst ar)180 192 R .385(gument is)-.18 F F3(!)2.885 E F0 2.885
+(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384
+(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-)
+-.15 F 1.647(posed of the remaining ar)180 204 R 4.147
+(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
-(according to precedence using the rules listed abo)180 144 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 156 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
-E 1.635(The e)180 168 R 1.635(xpression is parsed and e)-.15 F -.25(va)
+(according to precedence using the rules listed abo)180 216 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 228 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
+E 1.635(The e)180 240 R 1.635(xpression is parsed and e)-.15 F -.25(va)
-.25 G 1.635(luated according to precedence using the rules listed).25 F
-(abo)180 180 Q -.15(ve)-.15 G(.).15 E F1(times)108 196.8 Q F0 1.229(Pri\
+(abo)180 252 Q -.15(ve)-.15 G(.).15 E F3(times)108 268.8 Q F0 1.229(Pri\
nt the accumulated user and system times for the shell and for processe\
-s run from the shell.)13.23 F(The return status is 0.)144 208.8 Q F1
-(trap)108 225.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F2 10
-/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E
-.702(The command)144 237.6 R F2(ar)3.532 E(g)-.37 E F0 .702
-(is to be read and e)3.422 F -.15(xe)-.15 G .702
-(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
-(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2
-(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
-144 249.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+s run from the shell.)13.23 F(The return status is 0.)144 280.8 Q F3
+(trap)108 297.6 Q F0([)2.5 E F3(\255lp)A F0 2.5(][)C([)-2.5 E/F4 10
+/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F4(sigspec)2.5 E F0(...])2.5 E
+.703(The command)144 309.6 R F4(ar)3.533 E(g)-.37 E F0 .703
+(is to be read and e)3.423 F -.15(xe)-.15 G .702
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202(ss).15 G
+(ignal\(s\))-3.202 E F4(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F4
+(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
+144 321.6 R F4(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F3<ad>3.108 E
F0 3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.658(\(the v)144 261.6 R .658(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659
-(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 273.6 Q F0 .581
-(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
--.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E F0 .58
-(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
-(been supplied, then the trap commands associated with each)144 285.6 R
-F2(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
-F(gu-)-.18 E .86(ments are supplied or if only)144 297.6 R F1<ad70>3.36
-E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
+.659(\(the v)144 333.6 R .659(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F4(ar)3.488 E(g)-.37 E F0 .658
+(is the null string the signal speci\214ed by each)3.378 F F4(sigspec)
+144.34 345.6 Q F0 .58(is ignored by the shell and by the commands it in)
+3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F4(ar)3.411 E(g)-.37 E
+F0 .581(is not present and)3.301 F F3<ad70>3.081 E F0(has)3.081 E 1.215
+(been supplied, then the trap commands associated with each)144 357.6 R
+F4(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
+F(gu-)-.18 E .86(ments are supplied or if only)144 369.6 R F3<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F3(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 309.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F
-4.311(bers. Each)144 321.6 R F2(sigspec)4.651 E F0 1.811
-(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81
-(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
-(names are case insensiti)144 333.6 Q .3 -.15(ve a)-.25 H
-(nd the SIG pre\214x is optional.).15 E 1.648(If a)144 351.6 R F2
-(sigspec)4.488 E F0(is)4.458 E/F3 9/Times-Bold@0 SF(EXIT)4.148 E F0
-1.648(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)
-4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)
--.15 F 1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144
-363.6 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F
-F2(ar)3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167
-(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command)
-3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0
-(com-)3.667 E(mand,)144 375.6 Q F2(select)2.646 E F0 .146(command, e)
-2.646 F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147
-(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147
-(cutes in a).15 F .146(shell function \(see)144 387.6 R F3 .146
-(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0
-.145(option to)2.645 F(the)144 399.6 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7
-(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG)
--.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3
-(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 411.6 Q F2(ar)
-3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
+(signal. The)144 381.6 R F3<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F 4.31
+(bers. Each)144 393.6 R F4(sigspec)4.65 E F0 1.811
+(is either a signal name de\214ned in <)4.62 F F4(signal.h)A F0 1.811
+(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
+(names are case insensiti)144 405.6 Q .3 -.15(ve a)-.25 H
+(nd the SIG pre\214x is optional.).15 E 1.649(If a)144 423.6 R F4
+(sigspec)4.489 E F0(is)4.459 E F1(EXIT)4.149 E F0 1.649
+(\(0\) the command)3.899 F F4(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
+-.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)-.15 F
+1.648(If a)6.648 F F4(sigspec)4.488 E F0(is)4.458 E F1(DEB)144 435.6 Q
+(UG)-.09 E F2(,)A F0 1.167(the command)3.417 F F4(ar)3.997 E(g)-.37 E F0
+1.167(is e)3.887 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
+-.25 G(ry).15 E F4 1.168(simple command)3.667 F F0(,)A F4(for)3.668 E F0
+(command,)3.668 E F4(case)3.668 E F0(com-)3.668 E(mand,)144 447.6 Q F4
+(select)2.647 E F0 .147(command, e)2.647 F -.15(ve)-.25 G .147
+(ry arithmetic).15 F F4(for)2.647 E F0 .146
+(command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146
+(cutes in a).15 F .145(shell function \(see)144 459.6 R F1 .145
+(SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15
+F .146(to the description of the)2.646 F F3(extdeb)2.646 E(ug)-.2 E F0
+.146(option to)2.646 F(the)144 471.6 Q F3(shopt)3.201 E F0 -.2(bu)3.201
+G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F3(DEB)3.2 E
+(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F4(sigspec)3.54 E F0(is)3.51 E
+F1(RETURN)3.2 E F2(,)A F0 .7(the com-)2.95 F(mand)144 483.6 Q F4(ar)
+3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce)
--.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 423.6 Q -.15(xe)
--.15 G(cuting.).15 E .928(If a)144 441.6 R F2(sigspec)3.768 E F0(is)
-3.738 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E
+.644(cuted with the).15 F F3(.)3.144 E F0(or)3.144 E F3(sour)3.144 E(ce)
+-.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 495.6 Q -.15(xe)
+-.15 G(cuting.).15 E .929(If a)144 513.6 R F4(sigspec)3.769 E F0(is)
+3.739 E F1(ERR)3.429 E F2(,)A F0 .929(the command)3.179 F F4(ar)3.759 E
(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F
--.15(ve)-.25 G 3.429(ras).15 G .929(imple command has a non\255zero)
--3.429 F -.15(ex)144 453.6 S 1.009(it status, subject to the follo).15 F
-1.009(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009
-(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008
+-.15(ve)-.25 G 3.429(ras).15 G .928(imple command has a non\255zero)
+-3.429 F -.15(ex)144 525.6 S 1.008(it status, subject to the follo).15 F
+1.009(wing conditions.)-.25 F(The)6.009 E F1(ERR)3.509 E F0 1.009
+(trap is not e)3.259 F -.15(xe)-.15 G 1.009(cuted if the f).15 F 1.009
(ailed com-)-.1 F .324
-(mand is part of the command list immediately follo)144 465.6 R .324
-(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1
-(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F 1.129(in an)144
-477.6 R F2(if)3.639 E F0 1.129(statement, part of a command e)5.589 F
--.15(xe)-.15 G 1.129(cuted in a).15 F F1(&&)3.629 E F0(or)3.629 E/F5 10
-/Symbol SF<efef>3.629 E F0 1.129(list, or if the command')3.629 F 3.628
-(sr)-.55 G(eturn)-3.628 E -.25(va)144 489.6 S(lue is being in).25 E -.15
-(ve)-.4 G(rted via).15 E F1(!)2.5 E F0 5(.T)C
-(hese are the same conditions obe)-5 E(yed by the)-.15 E F1(err)2.5 E
+(mand is part of the command list immediately follo)144 537.6 R .324
+(wing a)-.25 F F3(while)2.824 E F0(or)2.824 E F3(until)2.824 E F0 -.1
+(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F 1.128(in an)144
+549.6 R F4(if)3.639 E F0 1.129(statement, part of a command e)5.589 F
+-.15(xe)-.15 G 1.129(cuted in a).15 F F3(&&)3.629 E F0(or)3.629 E/F5 10
+/Symbol SF<efef>3.629 E F0 1.129(list, or if the command')3.629 F 3.629
+(sr)-.55 G(eturn)-3.629 E -.25(va)144 561.6 S(lue is being in).25 E -.15
+(ve)-.4 G(rted via).15 E F3(!)2.5 E F0 5(.T)C
+(hese are the same conditions obe)-5 E(yed by the)-.15 E F3(err)2.5 E
(exit)-.18 E F0(option.)2.5 E 1.095
(Signals ignored upon entry to the shell cannot be trapped or reset.)144
-507.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
-(being ignored are reset to their original v)144 519.6 R .662
-(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
--.4 F 2.5(created. The)144 531.6 R(return status is f)2.5 E(alse if an)
--.1 E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
-(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108
-548.4 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2
-(name)A F0(...])2.5 E -.4(Wi)144 560.4 S .173
-(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name)
-3.033 E F0 -.1(wo)2.853 G .174
-(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
-F1<ad74>144 572.4 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
-.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
-F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
-(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
-(\214le)5.252 E F0(if)3.522 E F2(name)144.36 584.4 Q F0 .086
-(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
-(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
-(name)2.947 E F0 .087(is not)2.767 F .119
-(found, then nothing is printed, and an e)144 596.4 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
-F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
-(either returns the name of the disk \214le that w)144 608.4 R .855
-(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
-144 620.4 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
-G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
-F1<ad50>3.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189
-E F0 .112(search for each)144 632.4 R F2(name)2.612 E F0 2.612(,e)C -.15
-(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613 F F0
--.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I)
-.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F1<ad70>2.613 E
-F0(and)144 644.4 Q F1<ad50>2.945 E F0 .445(print the hashed v)2.945 F
-.444(alue, not necessarily the \214le that appears \214rst in)-.25 F F3
--.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F1<ad61>2.944
-E F0(option)2.944 E .265(is used,)144 656.4 R F1(type)2.765 E F0 .265
-(prints all of the places that contain an e)2.765 F -.15(xe)-.15 G .265
-(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265
-(his includes aliases)-5.265 F .427(and functions, if and only if the)
-144 668.4 R F1<ad70>2.926 E F0 .426(option is not also used.)2.926 F
-.426(The table of hashed commands is not)5.426 F .548
-(consulted when using)144 680.4 R F1<ad61>3.048 E F0 5.548(.T)C(he)
--5.548 E F1<ad66>3.048 E F0 .549
-(option suppresses shell function lookup, as with the)3.048 F F1
-(command)3.049 E F0 -.2(bu)144 692.4 S(iltin.).2 E F1(type)5 E F0
-(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
-(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E(GNU Bash-4.0)72 768
-Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP
+579.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
+(being ignored are reset to their original v)144 591.6 R .662
+(alues in a subshell or subshell en)-.25 F .662(vironment when one is)
+-.4 F 2.5(created. The)144 603.6 R(return status is f)2.5 E(alse if an)
+-.1 E(y)-.15 E F4(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
+(lid; otherwise).25 E F3(trap)2.5 E F0(returns true.)2.5 E F3(type)108
+620.4 Q F0([)2.5 E F3(\255aftpP)A F0(])A F4(name)2.5 E F0([)2.5 E F4
+(name)A F0(...])2.5 E -.4(Wi)144 632.4 S .174
+(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F4(name)
+3.034 E F0 -.1(wo)2.854 G .173
+(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
+F3<ad74>144 644.4 Q F0 .842(option is used,)3.342 F F3(type)3.342 E F0
+.843(prints a string which is one of)3.343 F F4(alias)3.343 E F0(,).27 E
+F4 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F4(function)3.343 E F0
+(,).24 E F4 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F4
+(\214le)5.253 E F0(if)3.523 E F4(name)144.36 656.4 Q F0 .087
+(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
+(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F4
+(name)2.946 E F0 .086(is not)2.766 F .118
+(found, then nothing is printed, and an e)144 668.4 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
+F3<ad70>2.619 E F0 .119(option is used,)2.619 F F3(type)2.619 E F0 .855
+(either returns the name of the disk \214le that w)144 680.4 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F4(name)3.715 E F0
+.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
+692.4 R/F6 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
+(uld not return).1 F F4(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F3
+<ad50>3.141 E F0 .641(option forces a)3.141 F F1 -.666(PA)3.141 G(TH)
+-.189 E F0 .113(search for each)144 704.4 R F4(name)2.613 E F0 2.613(,e)
+C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613
+F F0 -.1(wo)2.613 G .113(uld not return).1 F F4(\214le)2.613 E F0 5.113
+(.I).18 G 2.613(fa)-5.113 G .112(command is hashed,)-.001 F F3<ad70>
+2.612 E F0(and)144 716.4 Q F3<ad50>2.944 E F0 .444(print the hashed v)
+2.944 F .444(alue, not necessarily the \214le that appears \214rst in)
+-.25 F F1 -.666(PA)2.945 G(TH)-.189 E F2(.)A F0 .445(If the)4.945 F F3
+<ad61>2.945 E F0(option)2.945 E .265(is used,)144 728.4 R F3(type)2.765
+E F0 .265(prints all of the places that contain an e)2.765 F -.15(xe)
+-.15 G .265(cutable named).15 F F4(name)2.765 E F0 5.265(.T).18 G .265
+(his includes aliases)-5.265 F(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735
+E(19)198.725 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(ulimit)108 84 Q F0([)2.5 E F1(\255HST)A
-(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E/F2 10/Times-Italic@0 SF(limit)A
-F0(]])A(Pro)144 96 Q .244(vides control o)-.15 F -.15(ve)-.15 G 2.744
-(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .426
+(and functions, if and only if the)144 84 R/F1 10/Times-Bold@0 SF<ad70>
+2.926 E F0 .426(option is not also used.)2.926 F .427
+(The table of hashed commands is not)5.426 F .549(consulted when using)
+144 96 R F1<ad61>3.049 E F0 5.549(.T)C(he)-5.549 E F1<ad66>3.049 E F0
+.548(option suppresses shell function lookup, as with the)3.049 F F1
+(command)3.048 E F0 -.2(bu)144 108 S(iltin.).2 E F1(type)5 E F0
+(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
+(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 124.8
+Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E/F2 10
+/Times-Italic@0 SF(limit)A F0(]])A(Pro)144 136.8 Q .243(vides control o)
+-.15 F -.15(ve)-.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25
+(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 108 R 3.443(ws)-.25 G .943(uch control.)-3.443 F(The)
-5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
+.944(that allo)144 148.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 120 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208(\
-hard limit cannot be increased by a non-root user once it is set; a sof\
-t limit may)2.709 F .425(be increased up to the v)144 132 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
-F0(nor)2.926 E F1<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-144 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+144 160.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
+(hard limit cannot be increased by a non-root user once it is set; a so\
+ft limit may)2.708 F .426(be increased up to the v)144 172.8 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
+F0(nor)2.925 E F1<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+184.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 156 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+.742(of the special v)144 196.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
C .741(hich stand for the current hard limit, the current)-3.241 F .78
-(soft limit, and no limit, respecti)144 168 R -.15(ve)-.25 G(ly).15 E
+(soft limit, and no limit, respecti)144 208.8 R -.15(ve)-.25 G(ly).15 E
5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 180 R F1<ad48>2.999 E F0 .499
-(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+F .499(resource is printed, unless the)144 220.8 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
(more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 192 Q 2.5(alue. Other)
--.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1<ad61>144 204
-Q F0(All current limits are reported)25.3 E F1<ad62>144 216 Q F0
-(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E F1<ad63>
-144 228 Q F0(The maximum size of core \214les created)25.86 E F1<ad64>
-144 240 Q F0(The maximum size of a process')24.74 E 2.5(sd)-.55 G
-(ata se)-2.5 E(gment)-.15 E F1<ad65>144 252 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 264 Q F0
-(The maximum size of \214les written by the shell and its children)26.97
-E F1<ad69>144 276 Q F0(The maximum number of pending signals)27.52 E F1
-<ad6c>144 288 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F1<ad6d>144 300 Q F0
+(limit name and unit are printed before the v)144 232.8 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
+<ad61>144 244.8 Q F0(All current limits are reported)25.3 E F1<ad62>144
+256.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F1<ad63>144 268.8 Q F0(The maximum size of core \214les created)25.86 E
+F1<ad64>144 280.8 Q F0(The maximum size of a process')24.74 E 2.5(sd)
+-.55 G(ata se)-2.5 E(gment)-.15 E F1<ad65>144 292.8 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 304.8 Q
+F0(The maximum size of \214les written by the shell and its children)
+26.97 E F1<ad69>144 316.8 Q F0(The maximum number of pending signals)
+27.52 E F1<ad6c>144 328.8 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 340.8 Q F0
(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F1<ad6e>144 312 Q F0 .791(The \
-maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
-324 Q F1<ad70>144 336 Q F0
+(ystems do not honor this limit\))-2.5 E F1<ad6e>144 352.8 Q F0 .791(Th\
+e maximum number of open \214le descriptors \(most systems do not allo)
+24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
+(be set\))180 364.8 Q F1<ad70>144 376.8 Q F0
(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
-<ad71>144 348 Q F0(The maximum number of bytes in POSIX message queues)
-24.74 E F1<ad72>144 360 Q F0(The maximum real-time scheduling priority)
-25.86 E F1<ad73>144 372 Q F0(The maximum stack size)26.41 E F1<ad74>144
-384 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
-396 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F1<ad76>144 408 Q F0
+<ad71>144 388.8 Q F0
+(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
+400.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144
+412.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 424.8 Q F0
+(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 436.8 Q
+F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 448.8 Q F0
(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E F1<ad78>144 420 Q F0
-(The maximum number of \214le locks)25.3 E F1<ad54>144 432 Q F0
-(The maximum number of threads)23.63 E(If)144 448.8 Q F2(limit)2.933 E
+(ilable to the shell).25 E F1<ad78>144 460.8 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 472.8 Q F0
+(The maximum number of threads)23.63 E(If)144 489.6 Q F2(limit)2.933 E
F0 .343(is gi)3.523 F -.15(ve)-.25 G .343(n, it is the ne).15 F 2.843
(wv)-.25 G .343(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>
2.843 E F0 .343(option is display only\).)2.843 F .343(If no)5.343 F
-.176(option is gi)144 460.8 R -.15(ve)-.25 G .176(n, then).15 F F1<ad66>
-2.676 E F0 .175(is assumed.)2.676 F -1.11(Va)5.175 G .175
-(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1
-<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 472.8
-Q F1<ad70>2.515 E F0 2.515(,w)C .015
-(hich is in units of 512-byte blocks, and)-2.515 F F1<ad54>2.516 E F0(,)
-A F1<ad62>2.516 E F0(,)A F1<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F1
-<ad75>2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E
-3.788(ues. The)144 484.8 R 1.287(return status is 0 unless an in)3.787 F
+.175(option is gi)144 501.6 R -.15(ve)-.25 G .175(n, then).15 F F1<ad66>
+2.675 E F0 .175(is assumed.)2.675 F -1.11(Va)5.175 G .175
+(lues are in 1024-byte increments, e)1.11 F .176(xcept for)-.15 F F1
+<ad74>2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 513.6
+Q F1<ad70>2.516 E F0 2.516(,w)C .016
+(hich is in units of 512-byte blocks, and)-2.516 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
+<ad75>2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E
+3.787(ues. The)144 525.6 R 1.287(return status is 0 unless an in)3.787 F
-.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
-496.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 513.6 Q F0([)2.5 E F1
+537.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 554.4 Q F0([)2.5 E F1
<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
-(The user \214le-creation mask is set to)144 525.6 R F2(mode)2.7 E F0
+(The user \214le-creation mask is set to)144 566.4 R F2(mode)2.7 E F0
5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 537.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-549.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+pted by)144 578.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+590.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 561.6 R .547
+(printed in symbolic form; the def)144 602.4 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 573.6 Q F0 .551
-(is omitted, the output is in a form that may be reused as input.)3.231
-F .552(The return status is 0 if the)5.552 F(mode w)144 585.6 Q
+(mode)144.38 614.4 Q F0 .552
+(is omitted, the output is in a form that may be reused as input.)3.232
+F .551(The return status is 0 if the)5.551 F(mode w)144 626.4 Q
(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
-(unalias)108 602.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
-(...])2.5 E(Remo)144 614.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+(unalias)108 643.2 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 655.2 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 626.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+F(remo)144 667.2 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F1(unset)108 643.2 Q F0<5bad>2.5 E F1
-(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 655.2 S 3.106
-(re).15 G(ach)-3.106 E F2(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
-.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
-(ariable or function.)-.25 F .607(If no options are supplied, or the)
-5.607 F F1<ad76>144 667.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
-.305(n, each).15 F F2(name)3.165 E F0 .305(refers to a shell v)2.985 F
-2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
-(riables may not be unset.).25 F(If)5.304 E F1<ad66>144 679.2 Q F0 .459
-(is speci\214ed, each)2.959 F F2(name)3.319 E F0 .459
-(refers to a shell function, and the function de\214nition is remo)3.139
-F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 691.2 R .903
-(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
-(rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F
-(If)5.902 E(an)144 703.2 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
-SF(RANDOM)4.284 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
-(LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME)
--.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST)
-4.285 E -.495(AC)-.81 G(K).495 E F0(are)4.035 E .329(unset, the)144
-715.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
--.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)
--.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .328
-(xit status is true)-.15 F(unless a)144 727.2 Q F2(name)2.86 E F0
-(is readonly)2.68 E(.)-.65 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E
-(20)198.725 E 0 Cg EP
+(is not a de\214ned alias.)2.68 E F1(unset)108 684 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 696 S 3.107
+(re).15 G(ach)-3.107 E F2(name)3.107 E F0 3.107(,r).18 G(emo)-3.107 E
+.907 -.15(ve t)-.15 H .607(he corresponding v).15 F .607
+(ariable or function.)-.25 F .606(If no options are supplied, or the)
+5.607 F F1<ad76>144 708 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
+.304(n, each).15 F F2(name)3.164 E F0 .305(refers to a shell v)2.985 F
+2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .305
+(riables may not be unset.).25 F(If)5.305 E F1<ad66>144 720 Q F0 .46
+(is speci\214ed, each)2.96 F F2(name)3.32 E F0 .459
+(refers to a shell function, and the function de\214nition is remo)3.14
+F -.15(ve)-.15 G 2.959(d. Each).15 F(GNU Bash-4.0)72 768 Q(2004 Apr 20)
+148.735 E(20)198.725 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(wait)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0 SF 2.5
-(n.)C(..)-2.5 E F0(])A -.8(Wa)144 96 S .288
-(it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 108 R -.15(ve)-.25 G .722
-(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
--3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0
-(is)3.462 E 1.265(not gi)144 120 R -.15(ve)-.25 G 1.265
-(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
-(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457
-(speci\214es a non-e)144 132 R .457
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .902
+(unset v)144 84 R .902(ariable or function is remo)-.25 F -.15(ve)-.15 G
+3.402(df).15 G .902(rom the en)-3.402 F .903
+(vironment passed to subsequent commands.)-.4 F(If)5.903 E(an)144 96 Q
+4.285(yo)-.15 G(f)-4.285 E/F1 9/Times-Bold@0 SF(RANDOM)4.285 E/F2 9
+/Times-Roman@0 SF(,)A F1(SECONDS)4.035 E F2(,)A F1(LINENO)4.035 E F2(,)A
+F1(HISTCMD)4.035 E F2(,)A F1(FUNCN)4.035 E(AME)-.18 E F2(,)A F1(GR)4.035
+E(OUPS)-.27 E F2(,)A F0(or)4.035 E F1(DIRST)4.284 E -.495(AC)-.81 G(K)
+.495 E F0(are)4.034 E .328(unset, the)144 108 R 2.828(yl)-.15 G .328
+(ose their special properties, e)-2.828 F -.15(ve)-.25 G 2.828(ni).15 G
+2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)-.15 G .328
+(re subsequently reset.)-2.828 F .328(The e)5.328 F .329
+(xit status is true)-.15 F(unless a)144 120 Q/F3 10/Times-Italic@0 SF
+(name)2.86 E F0(is readonly)2.68 E(.)-.65 E/F4 10/Times-Bold@0 SF(wait)
+108 136.8 Q F0([)2.5 E F3 2.5(n.)C(..)-2.5 E F0(])A -.8(Wa)144 148.8 S
+.288(it for each speci\214ed process and return its termination status.)
+.8 F(Each)5.288 E F3(n)3.148 E F0 .287(may be a process ID or a)3.028 F
+.722(job speci\214cation; if a job spec is gi)144 160.8 R -.15(ve)-.25 G
+.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
+(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
+F3(n)3.583 E F0(is)3.463 E 1.266(not gi)144 172.8 R -.15(ve)-.25 G 1.266
+(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
+(nd the return status is zero.)-3.765 F(If)6.265 E F3(n)4.125 E F0 .456
+(speci\214es a non-e)144 184.8 R .457
(xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F -.15(ex)144 144 S
+(Otherwise, the return status is the)5.457 F -.15(ex)144 196.8 S
(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
-/F3 10.95/Times-Bold@0 SF(SEE ALSO)72 160.8 Q F0(bash\(1\), sh\(1\))108
-172.8 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(21)198.725 E 0 Cg EP
+/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 213.6 Q F0(bash\(1\), sh\(1\))108
+225.6 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(21)198.725 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rbash.ps b/doc/rbash.ps
index f09d5fb5..d3ce4b22 100644
--- a/doc/rbash.ps
+++ b/doc/rbash.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Wed Sep 16 21:35:02 2009
+%%CreationDate: Mon Oct 12 10:07:24 2009
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.19 2
diff --git a/doc/version.texi b/doc/version.texi
index aea8988b..dc821900 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -2,9 +2,9 @@
Copyright (C) 1988-2009 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Fri Oct 9 12:07:41 EDT 2009
+@set LASTCHANGE Fri Oct 16 12:23:41 EDT 2009
@set EDITION 4.1
@set VERSION 4.1
-@set UPDATED 9 October 2009
+@set UPDATED 16 October 2009
@set UPDATED-MONTH October 2009
diff --git a/doc/version.texi~ b/doc/version.texi~
index 0fc10d67..aea8988b 100644
--- a/doc/version.texi~
+++ b/doc/version.texi~
@@ -2,9 +2,9 @@
Copyright (C) 1988-2009 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Wed Sep 16 21:33:56 EDT 2009
+@set LASTCHANGE Fri Oct 9 12:07:41 EDT 2009
@set EDITION 4.1
@set VERSION 4.1
-@set UPDATED 16 September 2009
-@set UPDATED-MONTH September 2009
+@set UPDATED 9 October 2009
+@set UPDATED-MONTH October 2009
diff --git a/execute_cmd.c b/execute_cmd.c
index 646ff110..939e2fe7 100644
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -607,7 +607,6 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
else
exec_result = last_command_exit_value;
-
if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
{
last_command_exit_value = exec_result;
@@ -1287,6 +1286,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
{
int user_subshell, return_code, function_value, should_redir_stdin, invert;
int ois, user_coproc;
+ int result;
COMMAND *tcom;
USE_VAR(user_subshell);
@@ -1453,13 +1453,21 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
invert = (tcom->flags & CMD_INVERT_RETURN) != 0;
tcom->flags &= ~CMD_INVERT_RETURN;
+ result = setjmp (top_level);
+
/* If we're inside a function while executing this subshell, we
need to handle a possible `return'. */
function_value = 0;
if (return_catch_flag)
function_value = setjmp (return_catch);
- if (function_value)
+ /* If we're going to exit the shell, we don't want to invert the return
+ status. */
+ if (result == EXITPROG)
+ invert = 0, return_code = last_command_exit_value;
+ else if (result)
+ return_code = EXECUTION_FAILURE;
+ else if (function_value)
return_code = return_catch_value;
else
return_code = execute_command_internal (tcom, asynchronous, NO_PIPE, NO_PIPE, fds_to_close);
diff --git a/execute_cmd.c~ b/execute_cmd.c~
index e2cd6f9a..f65b56d3 100644
--- a/execute_cmd.c~
+++ b/execute_cmd.c~
@@ -607,7 +607,6 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
else
exec_result = last_command_exit_value;
-
if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
{
last_command_exit_value = exec_result;
@@ -1287,6 +1286,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
{
int user_subshell, return_code, function_value, should_redir_stdin, invert;
int ois, user_coproc;
+ int result;
COMMAND *tcom;
USE_VAR(user_subshell);
@@ -1453,13 +1453,24 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
invert = (tcom->flags & CMD_INVERT_RETURN) != 0;
tcom->flags &= ~CMD_INVERT_RETURN;
+ result = setjmp (top_level);
+
/* If we're inside a function while executing this subshell, we
need to handle a possible `return'. */
function_value = 0;
if (return_catch_flag)
function_value = setjmp (return_catch);
- if (function_value)
+if (result)
+ itrace("execute_in_subshell: longjmp to top_level, result = %d last_command_exit_value = %d", result, last_command_exit_value);
+
+ /* If we're going to exit the shell, we don't want to invert the return
+ status. */
+ if (result == EXITPROG)
+ invert = 0, return_code = last_command_exit_value;
+ else if (result)
+ return_code = EXECUTION_FAILURE;
+ else if (function_value)
return_code = return_catch_value;
else
return_code = execute_command_internal (tcom, asynchronous, NO_PIPE, NO_PIPE, fds_to_close);
@@ -3268,7 +3279,7 @@ execute_cond_node (cond)
int oe;
oe = extended_glob;
extended_glob = 1;
- result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP)
+ result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP|TEST_LOCALE)
? EXECUTION_SUCCESS
: EXECUTION_FAILURE;
extended_glob = oe;
diff --git a/lib/glob/glob.c b/lib/glob/glob.c
index 69391f73..66368311 100644
--- a/lib/glob/glob.c
+++ b/lib/glob/glob.c
@@ -1030,7 +1030,7 @@ glob_filename (pathname, flags)
dflags |= GX_ALLDIRS|GX_ADDCURDIR;
#if 0
/* If we want all directories (dflags & GX_ALLDIRS) and we're not
- being called recursively as something like `echo [star][star]/*.o'
+ being called recursively as something like `echo **/*.o'
((flags & GX_ALLDIRS) == 0), we want to prevent glob_vector from
adding a null directory name to the front of the temp_results
array. We turn off ADDCURDIR if not called recursively and
diff --git a/lib/readline/COPYING b/lib/readline/COPYING
index 94a9ed02..7d29222e 100644..120000
--- a/lib/readline/COPYING
+++ b/lib/readline/COPYING
@@ -1,674 +1 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+../../COPYING \ No newline at end of file
diff --git a/lib/readline/ansi_stdlib.h b/lib/readline/ansi_stdlib.h
index 7dc2ee0c..0bfba502 100644..120000
--- a/lib/readline/ansi_stdlib.h
+++ b/lib/readline/ansi_stdlib.h
@@ -1,54 +1 @@
-/* ansi_stdlib.h -- An ANSI Standard stdlib.h. */
-/* A minimal stdlib.h containing extern declarations for those functions
- that bash uses. */
-
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Bash is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#if !defined (_STDLIB_H_)
-#define _STDLIB_H_ 1
-
-/* String conversion functions. */
-extern int atoi ();
-
-extern double atof ();
-extern double strtod ();
-
-/* Memory allocation functions. */
-/* Generic pointer type. */
-#ifndef PTR_T
-
-#if defined (__STDC__)
-# define PTR_T void *
-#else
-# define PTR_T char *
-#endif
-
-#endif /* PTR_T */
-
-extern PTR_T malloc ();
-extern PTR_T realloc ();
-extern void free ();
-
-/* Other miscellaneous functions. */
-extern void abort ();
-extern void exit ();
-extern char *getenv ();
-extern void qsort ();
-
-#endif /* _STDLIB_H */
+../../include/ansi_stdlib.h \ No newline at end of file
diff --git a/lib/readline/doc/fdl.texi b/lib/readline/doc/fdl.texi
index 8805f1a4..68e5eb54 100644..120000
--- a/lib/readline/doc/fdl.texi
+++ b/lib/readline/doc/fdl.texi
@@ -1,506 +1 @@
-@c The GNU Free Documentation License.
-@center Version 1.3, 3 November 2008
-
-@c This file is intended to be included within another document,
-@c hence no sectioning command or @node.
-
-@display
-Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-@uref{http://fsf.org/}
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-@end display
-
-@enumerate 0
-@item
-PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document @dfn{free} in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of ``copyleft'', which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-@item
-APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The ``Document'', below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as ``you''. You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A ``Modified Version'' of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A ``Secondary Section'' is a named appendix or a front-matter section
-of the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall
-subject (or to related matters) and contains nothing that could fall
-directly within that overall subject. (Thus, if the Document is in
-part a textbook of mathematics, a Secondary Section may not explain
-any mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The ``Invariant Sections'' are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The ``Cover Texts'' are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A ``Transparent'' copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not ``Transparent'' is called ``Opaque''.
-
-Examples of suitable formats for Transparent copies include plain
-@sc{ascii} without markup, Texinfo input format, La@TeX{} input
-format, @acronym{SGML} or @acronym{XML} using a publicly available
-@acronym{DTD}, and standard-conforming simple @acronym{HTML},
-PostScript or @acronym{PDF} designed for human modification. Examples
-of transparent image formats include @acronym{PNG}, @acronym{XCF} and
-@acronym{JPG}. Opaque formats include proprietary formats that can be
-read and edited only by proprietary word processors, @acronym{SGML} or
-@acronym{XML} for which the @acronym{DTD} and/or processing tools are
-not generally available, and the machine-generated @acronym{HTML},
-PostScript or @acronym{PDF} produced by some word processors for
-output purposes only.
-
-The ``Title Page'' means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, ``Title Page'' means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-The ``publisher'' means any person or entity that distributes copies
-of the Document to the public.
-
-A section ``Entitled XYZ'' means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as ``Acknowledgements'',
-``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
-of such a section when you modify the Document means that it remains a
-section ``Entitled XYZ'' according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-@item
-VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-@item
-COPYING IN QUANTITY
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-@item
-MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-@enumerate A
-@item
-Use in the Title Page (and on the covers, if any) a title distinct
-from that of the Document, and from those of previous versions
-(which should, if there were any, be listed in the History section
-of the Document). You may use the same title as a previous version
-if the original publisher of that version gives permission.
-
-@item
-List on the Title Page, as authors, one or more persons or entities
-responsible for authorship of the modifications in the Modified
-Version, together with at least five of the principal authors of the
-Document (all of its principal authors, if it has fewer than five),
-unless they release you from this requirement.
-
-@item
-State on the Title page the name of the publisher of the
-Modified Version, as the publisher.
-
-@item
-Preserve all the copyright notices of the Document.
-
-@item
-Add an appropriate copyright notice for your modifications
-adjacent to the other copyright notices.
-
-@item
-Include, immediately after the copyright notices, a license notice
-giving the public permission to use the Modified Version under the
-terms of this License, in the form shown in the Addendum below.
-
-@item
-Preserve in that license notice the full lists of Invariant Sections
-and required Cover Texts given in the Document's license notice.
-
-@item
-Include an unaltered copy of this License.
-
-@item
-Preserve the section Entitled ``History'', Preserve its Title, and add
-to it an item stating at least the title, year, new authors, and
-publisher of the Modified Version as given on the Title Page. If
-there is no section Entitled ``History'' in the Document, create one
-stating the title, year, authors, and publisher of the Document as
-given on its Title Page, then add an item describing the Modified
-Version as stated in the previous sentence.
-
-@item
-Preserve the network location, if any, given in the Document for
-public access to a Transparent copy of the Document, and likewise
-the network locations given in the Document for previous versions
-it was based on. These may be placed in the ``History'' section.
-You may omit a network location for a work that was published at
-least four years before the Document itself, or if the original
-publisher of the version it refers to gives permission.
-
-@item
-For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
-the Title of the section, and preserve in the section all the
-substance and tone of each of the contributor acknowledgements and/or
-dedications given therein.
-
-@item
-Preserve all the Invariant Sections of the Document,
-unaltered in their text and in their titles. Section numbers
-or the equivalent are not considered part of the section titles.
-
-@item
-Delete any section Entitled ``Endorsements''. Such a section
-may not be included in the Modified Version.
-
-@item
-Do not retitle any existing section to be Entitled ``Endorsements'' or
-to conflict in title with any Invariant Section.
-
-@item
-Preserve any Warranty Disclaimers.
-@end enumerate
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled ``Endorsements'', provided it contains
-nothing but endorsements of your Modified Version by various
-parties---for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-@item
-COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled ``History''
-in the various original documents, forming one section Entitled
-``History''; likewise combine any sections Entitled ``Acknowledgements'',
-and any sections Entitled ``Dedications''. You must delete all
-sections Entitled ``Endorsements.''
-
-@item
-COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-@item
-AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an ``aggregate'' if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-@item
-TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled ``Acknowledgements'',
-``Dedications'', or ``History'', the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-@item
-TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense, or distribute it is void, and
-will automatically terminate your rights under this License.
-
-However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.
-
-Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, receipt of a copy of some or all of the same material does
-not give you any rights to use it.
-
-@item
-FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-@uref{http://www.gnu.org/copyleft/}.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License ``or any later version'' applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation. If the Document
-specifies that a proxy can decide which future versions of this
-License can be used, that proxy's public statement of acceptance of a
-version permanently authorizes you to choose that version for the
-Document.
-
-@item
-RELICENSING
-
-``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
-World Wide Web server that publishes copyrightable works and also
-provides prominent facilities for anybody to edit those works. A
-public wiki that anybody can edit is an example of such a server. A
-``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
-site means any set of copyrightable works thus published on the MMC
-site.
-
-``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
-license published by Creative Commons Corporation, a not-for-profit
-corporation with a principal place of business in San Francisco,
-California, as well as future copyleft versions of that license
-published by that same organization.
-
-``Incorporate'' means to publish or republish a Document, in whole or
-in part, as part of another Document.
-
-An MMC is ``eligible for relicensing'' if it is licensed under this
-License, and if all works that were first published under this License
-somewhere other than this MMC, and subsequently incorporated in whole
-or in part into the MMC, (1) had no cover texts or invariant sections,
-and (2) were thus incorporated prior to November 1, 2008.
-
-The operator of an MMC Site may republish an MMC contained in the site
-under CC-BY-SA on the same site at any time before August 1, 2009,
-provided the MMC is eligible for relicensing.
-
-@end enumerate
-
-@page
-@heading ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-@smallexample
-@group
- Copyright (C) @var{year} @var{your name}.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-@end group
-@end smallexample
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with@dots{}Texts.'' line with this:
-
-@smallexample
-@group
- with the Invariant Sections being @var{list their titles}, with
- the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
- being @var{list}.
-@end group
-@end smallexample
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
-@c Local Variables:
-@c ispell-local-pdict: "ispell-dict"
-@c End:
-
+../../../doc/fdl.texi \ No newline at end of file
diff --git a/lib/readline/doc/history.dvi b/lib/readline/doc/history.dvi
index fc4921ea..e16bd2d0 100644
--- a/lib/readline/doc/history.dvi
+++ b/lib/readline/doc/history.dvi
Binary files differ
diff --git a/lib/readline/doc/history.html b/lib/readline/doc/history.html
index 385dc8ea..07216745 100644
--- a/lib/readline/doc/history.html
+++ b/lib/readline/doc/history.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on March, 18 2009 by texi2html 1.64 -->
+<!-- Created on October, 12 2009 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -2115,7 +2115,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2277,7 +2277,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>March, 18 2009</I>
+by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/lib/readline/doc/history.info b/lib/readline/doc/history.info
index 20873dbc..1933ca24 100644
--- a/lib/readline/doc/history.info
+++ b/lib/readline/doc/history.info
@@ -1,9 +1,9 @@
This is history.info, produced by makeinfo version 4.13 from
./history.texi.
-This document describes the GNU History library (version 6.0, 28
-October 2008), a programming tool that provides a consistent user
-interface for recalling lines of previously typed input.
+This document describes the GNU History library (version 6.1, 9 October
+2009), a programming tool that provides a consistent user interface for
+recalling lines of previously typed input.
Copyright (C) 1988-2009 Free Software Foundation, Inc.
@@ -1368,27 +1368,27 @@ Appendix C Function and Variable Index

Tag Table:
-Node: Top1269
-Node: Using History Interactively1914
-Node: History Interaction2422
-Node: Event Designators3846
-Node: Word Designators4781
-Node: Modifiers6420
-Node: Programming with GNU History7645
-Node: Introduction to History8388
-Node: History Storage10078
-Node: History Functions11213
-Node: Initializing History and State Management12202
-Node: History List Management13014
-Node: Information About the History List15046
-Node: Moving Around the History List16543
-Node: Searching the History List17544
-Node: Managing the History File19476
-Node: History Expansion21296
-Node: History Variables23204
-Node: History Programming Example26010
-Node: GNU Free Documentation License28687
-Node: Concept Index53878
-Node: Function and Variable Index54583
+Node: Top1268
+Node: Using History Interactively1913
+Node: History Interaction2421
+Node: Event Designators3845
+Node: Word Designators4780
+Node: Modifiers6419
+Node: Programming with GNU History7644
+Node: Introduction to History8387
+Node: History Storage10077
+Node: History Functions11212
+Node: Initializing History and State Management12201
+Node: History List Management13013
+Node: Information About the History List15045
+Node: Moving Around the History List16542
+Node: Searching the History List17543
+Node: Managing the History File19475
+Node: History Expansion21295
+Node: History Variables23203
+Node: History Programming Example26009
+Node: GNU Free Documentation License28686
+Node: Concept Index53877
+Node: Function and Variable Index54582

End Tag Table
diff --git a/lib/readline/doc/history.log b/lib/readline/doc/history.log
index 16fc6968..4f7d0012 100644
--- a/lib/readline/doc/history.log
+++ b/lib/readline/doc/history.log
@@ -1,6 +1,6 @@
-This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:22
-**/Users/chet/src/bash/src/lib/readline/doc/history.texi
-(/Users/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex
+This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 12 OCT 2009 10:10
+**/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi
+(/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex
Loading texinfo [version 2009-01-18.17]:
\bindingoffset=\dimen16
\normaloffset=\dimen17
@@ -179,11 +179,11 @@ and turning on texinfo input format.) (./history.aux)
Appendix C [20] (./history.vrs) [21] )
Here is how much of TeX's memory you used:
1745 strings out of 97980
- 20831 string characters out of 1221004
- 66068 words of memory out of 1500000
+ 20843 string characters out of 1221004
+ 66066 words of memory out of 1500000
2572 multiletter control sequences out of 10000+50000
32127 words of font info for 112 fonts, out of 1200000 for 2000
51 hyphenation exceptions out of 8191
- 15i,6n,14p,325b,490s stack positions out of 5000i,500n,6000p,200000b,5000s
+ 15i,6n,14p,329b,490s stack positions out of 5000i,500n,6000p,200000b,5000s
Output written on history.dvi (24 pages, 85440 bytes).
diff --git a/lib/readline/doc/history.ps b/lib/readline/doc/history.ps
index 2154d47d..d08e971c 100644
--- a/lib/readline/doc/history.ps
+++ b/lib/readline/doc/history.ps
@@ -11,7 +11,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
%DVIPSParameters: dpi=300
-%DVIPSSource: TeX output 2009.03.18:0822
+%DVIPSSource: TeX output 2009.10.12:1010
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -3205,19 +3205,19 @@ TeXDict begin
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 75 659 a Fs(GNU)33 b(History)e(Library)p
-75 709 1800 17 v 960 757 a Fr(Edition)14 b(6.0,)g(for)h
-Fq(History)f(Library)g Fr(V)l(ersion)h(6.0.)1608 811
-y(Octob)q(er)h(2008)75 2467 y Fp(Chet)22 b(Ramey)-6 b(,)23
+75 709 1800 17 v 960 757 a Fr(Edition)14 b(6.1,)g(for)h
+Fq(History)f(Library)g Fr(V)l(ersion)h(6.1.)1608 811
+y(Octob)q(er)h(2009)75 2467 y Fp(Chet)22 b(Ramey)-6 b(,)23
b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 75 1512 a Fr(This)17 b(do)q(cumen)o(t)i(describ)q
-(es)f(the)g(GNU)g(History)f(library)f(\(v)o(ersion)h(6.0,)g(28)g(Octob)
-q(er)i(2008\),)e(a)g(pro-)75 1567 y(gramming)10 b(to)q(ol)g(that)g(pro)
-o(vides)h(a)g(consisten)o(t)f(user)i(in)o(terface)e(for)h(recalling)f
-(lines)g(of)h(previously)g(t)o(yp)q(ed)75 1621 y(input.)75
-1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fo(\015)k
+TeXDict begin 2 1 bop 75 1512 a Fr(This)11 b(do)q(cumen)o(t)i(describ)q
+(es)f(the)g(GNU)g(History)e(library)h(\(v)o(ersion)g(6.1,)g(9)g(Octob)q
+(er)i(2009\),)d(a)i(program-)75 1567 y(ming)18 b(to)q(ol)g(that)h(pro)o
+(vides)f(a)h(consisten)o(t)f(user)h(in)o(terface)f(for)h(recalling)e
+(lines)i(of)f(previously)h(t)o(yp)q(ed)75 1621 y(input.)75
+1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fo(\015)c
Fr(1988{2009)e(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)75
1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g
(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o(ual)f(pro)o
diff --git a/lib/readline/doc/readline.dvi b/lib/readline/doc/readline.dvi
index e34fe90c..12d9d0e8 100644
--- a/lib/readline/doc/readline.dvi
+++ b/lib/readline/doc/readline.dvi
Binary files differ
diff --git a/lib/readline/doc/readline.html b/lib/readline/doc/readline.html
index ba87f635..d419c563 100644
--- a/lib/readline/doc/readline.html
+++ b/lib/readline/doc/readline.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on March, 18 2009 by texi2html 1.64 -->
+<!-- Created on October, 12 2009 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -652,6 +652,12 @@ mode, where the keystrokes are most similar to Emacs. This variable can be
set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
<P>
+<DT><CODE>echo-control-characters</CODE>
+<DD>When set to <SAMP>`on'</SAMP>, on operating systems that indicate they support it,
+readline echoes a character corresponding to a signal generated from the
+keyboard. The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>enable-keypad</CODE>
<DD><A NAME="IDX13"></A>
When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
@@ -659,6 +665,13 @@ keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>enable-meta-key</CODE>
+<DD>When set to <SAMP>`on'</SAMP>, Readline will try to enable any meta modifier
+key the terminal claims to support when it is called. On many terminals,
+the meta key is used to send eight-bit characters.
+The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>expand-tilde</CODE>
<DD><A NAME="IDX14"></A>
If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
@@ -802,8 +815,23 @@ of ringing the bell.
The default value is <SAMP>`off'</SAMP>.
<P>
-<DT><CODE>visible-stats</CODE>
+<DT><CODE>skip-completed-text</CODE>
<DD><A NAME="IDX30"></A>
+If set to <SAMP>`on'</SAMP>, this alters the default completion behavior when
+inserting a single match into the line. It's only active when
+performing completion in the middle of a word. If enabled, readline
+does not insert characters from the completion that match characters
+after point in the word being completed, so portions of the word
+following the cursor are not duplicated.
+For instance, if this is enabled, attempting completion when the cursor
+is after the <SAMP>`e'</SAMP> in <SAMP>`Makefile'</SAMP> will result in <SAMP>`Makefile'</SAMP>
+rather than <SAMP>`Makefilefile'</SAMP>, assuming there is a single possible
+completion.
+The default value is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>visible-stats</CODE>
+<DD><A NAME="IDX31"></A>
If set to <SAMP>`on'</SAMP>, a character denoting a file's type
is appended to the filename when listing possible
completions. The default is <SAMP>`off'</SAMP>.
@@ -1219,54 +1247,54 @@ The text between the point and mark is referred to as the <EM>region</EM>.
<H3> 1.4.1 Commands For Moving </H3>
<!--docid::SEC14::-->
<DL COMPACT>
-<A NAME="IDX31"></A>
+<A NAME="IDX32"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX32"></A>
+<DD><A NAME="IDX33"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX33"></A>
+<A NAME="IDX34"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX34"></A>
+<DD><A NAME="IDX35"></A>
Move to the end of the line.
<P>
-<A NAME="IDX35"></A>
+<A NAME="IDX36"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX36"></A>
+<DD><A NAME="IDX37"></A>
Move forward a character.
<P>
-<A NAME="IDX37"></A>
+<A NAME="IDX38"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX38"></A>
+<DD><A NAME="IDX39"></A>
Move back a character.
<P>
-<A NAME="IDX39"></A>
+<A NAME="IDX40"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX40"></A>
+<DD><A NAME="IDX41"></A>
Move forward to the end of the next word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX41"></A>
+<A NAME="IDX42"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX42"></A>
+<DD><A NAME="IDX43"></A>
Move back to the start of the current or previous word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX43"></A>
+<A NAME="IDX44"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX44"></A>
+<DD><A NAME="IDX45"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX45"></A>
+<A NAME="IDX46"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX46"></A>
+<DD><A NAME="IDX47"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1292,9 +1320,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX47"></A>
+<A NAME="IDX48"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX48"></A>
+<DD><A NAME="IDX49"></A>
Accept the line regardless of where the cursor is.
If this line is
non-empty, it may be added to the history list for future recall with
@@ -1303,81 +1331,81 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX49"></A>
+<A NAME="IDX50"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX50"></A>
+<DD><A NAME="IDX51"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX51"></A>
+<A NAME="IDX52"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX52"></A>
+<DD><A NAME="IDX53"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX53"></A>
+<A NAME="IDX54"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX54"></A>
+<DD><A NAME="IDX55"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX55"></A>
+<A NAME="IDX56"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX56"></A>
+<DD><A NAME="IDX57"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX57"></A>
+<A NAME="IDX58"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX58"></A>
+<DD><A NAME="IDX59"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX59"></A>
+<A NAME="IDX60"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX60"></A>
+<DD><A NAME="IDX61"></A>
Search forward starting at the current line and moving `down' through
the the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX61"></A>
+<A NAME="IDX62"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX62"></A>
+<DD><A NAME="IDX63"></A>
Search backward starting at the current line and moving `up'
through the history as necessary using a non-incremental search
for a string supplied by the user.
<P>
-<A NAME="IDX63"></A>
+<A NAME="IDX64"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX64"></A>
+<DD><A NAME="IDX65"></A>
Search forward starting at the current line and moving `down'
through the the history as necessary using a non-incremental search
for a string supplied by the user.
<P>
-<A NAME="IDX65"></A>
+<A NAME="IDX66"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX66"></A>
+<DD><A NAME="IDX67"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX67"></A>
+<A NAME="IDX68"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX68"></A>
+<DD><A NAME="IDX69"></A>
Search backward through the history for the string of characters
between the start of the current line and the point. This
is a non-incremental search. By default, this command is unbound.
<P>
-<A NAME="IDX69"></A>
+<A NAME="IDX70"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX70"></A>
+<DD><A NAME="IDX71"></A>
Insert the first argument to the previous command (usually
the second word on the previous line) at point.
With an argument <VAR>n</VAR>,
@@ -1388,9 +1416,9 @@ Once the argument <VAR>n</VAR> is computed, the argument is extracted
as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
<P>
-<A NAME="IDX71"></A>
+<A NAME="IDX72"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX72"></A>
+<DD><A NAME="IDX73"></A>
Insert last argument to the previous command (the last word of the
previous history entry). With an
argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -1422,52 +1450,52 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<P>
<DL COMPACT>
-<A NAME="IDX73"></A>
+<A NAME="IDX74"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX74"></A>
+<DD><A NAME="IDX75"></A>
Delete the character at point. If point is at the
beginning of the line, there are no characters in the line, and
the last character typed was not bound to <CODE>delete-char</CODE>, then
return EOF.
<P>
-<A NAME="IDX75"></A>
+<A NAME="IDX76"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX76"></A>
+<DD><A NAME="IDX77"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX77"></A>
+<A NAME="IDX78"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX78"></A>
+<DD><A NAME="IDX79"></A>
Delete the character under the cursor, unless the cursor is at the
end of the line, in which case the character behind the cursor is
deleted. By default, this is not bound to a key.
<P>
-<A NAME="IDX79"></A>
+<A NAME="IDX80"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX80"></A>
+<DD><A NAME="IDX81"></A>
Add the next character typed to the line verbatim. This is
how to insert key sequences like <KBD>C-q</KBD>, for example.
<P>
-<A NAME="IDX81"></A>
+<A NAME="IDX82"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX82"></A>
+<DD><A NAME="IDX83"></A>
Insert a tab character.
<P>
-<A NAME="IDX83"></A>
+<A NAME="IDX84"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX84"></A>
+<DD><A NAME="IDX85"></A>
Insert yourself.
<P>
-<A NAME="IDX85"></A>
+<A NAME="IDX86"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX86"></A>
+<DD><A NAME="IDX87"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1476,39 +1504,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX87"></A>
+<A NAME="IDX88"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX88"></A>
+<DD><A NAME="IDX89"></A>
Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
the last two words on the line.
<P>
-<A NAME="IDX89"></A>
+<A NAME="IDX90"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX90"></A>
+<DD><A NAME="IDX91"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX91"></A>
+<A NAME="IDX92"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX92"></A>
+<DD><A NAME="IDX93"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX93"></A>
+<A NAME="IDX94"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX94"></A>
+<DD><A NAME="IDX95"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX95"></A>
+<A NAME="IDX96"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX96"></A>
+<DD><A NAME="IDX97"></A>
Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
@@ -1548,106 +1576,106 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX97"></A>
+<A NAME="IDX98"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX98"></A>
+<DD><A NAME="IDX99"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX99"></A>
+<A NAME="IDX100"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX100"></A>
+<DD><A NAME="IDX101"></A>
Kill backward to the beginning of the line.
<P>
-<A NAME="IDX101"></A>
+<A NAME="IDX102"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX102"></A>
+<DD><A NAME="IDX103"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX103"></A>
+<A NAME="IDX104"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX104"></A>
+<DD><A NAME="IDX105"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX105"></A>
+<A NAME="IDX106"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX106"></A>
+<DD><A NAME="IDX107"></A>
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <CODE>forward-word</CODE>.
<P>
-<A NAME="IDX107"></A>
+<A NAME="IDX108"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX108"></A>
+<DD><A NAME="IDX109"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX109"></A>
+<A NAME="IDX110"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX110"></A>
+<DD><A NAME="IDX111"></A>
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX111"></A>
+<A NAME="IDX112"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX112"></A>
+<DD><A NAME="IDX113"></A>
Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX113"></A>
+<A NAME="IDX114"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX114"></A>
+<DD><A NAME="IDX115"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX115"></A>
+<A NAME="IDX116"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX116"></A>
+<DD><A NAME="IDX117"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX117"></A>
+<A NAME="IDX118"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX118"></A>
+<DD><A NAME="IDX119"></A>
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<P>
-<A NAME="IDX119"></A>
+<A NAME="IDX120"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX120"></A>
+<DD><A NAME="IDX121"></A>
Copy the word before point to the kill buffer.
The word boundaries are the same as <CODE>backward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX121"></A>
+<A NAME="IDX122"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX122"></A>
+<DD><A NAME="IDX123"></A>
Copy the word following point to the kill buffer.
The word boundaries are the same as <CODE>forward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX123"></A>
+<A NAME="IDX124"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX124"></A>
+<DD><A NAME="IDX125"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX125"></A>
+<A NAME="IDX126"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX126"></A>
+<DD><A NAME="IDX127"></A>
Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
</DL>
@@ -1671,16 +1699,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX127"></A>
+<A NAME="IDX128"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX128"></A>
+<DD><A NAME="IDX129"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX129"></A>
+<A NAME="IDX130"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX130"></A>
+<DD><A NAME="IDX131"></A>
This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -1715,30 +1743,30 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX131"></A>
+<A NAME="IDX132"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX132"></A>
+<DD><A NAME="IDX133"></A>
Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
The default is filename completion.
<P>
-<A NAME="IDX133"></A>
+<A NAME="IDX134"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX134"></A>
+<DD><A NAME="IDX135"></A>
List the possible completions of the text before point.
<P>
-<A NAME="IDX135"></A>
+<A NAME="IDX136"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX136"></A>
+<DD><A NAME="IDX137"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX137"></A>
+<A NAME="IDX138"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX138"></A>
+<DD><A NAME="IDX139"></A>
Similar to <CODE>complete</CODE>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -1753,9 +1781,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX139"></A>
+<A NAME="IDX140"></A>
+<DT><CODE>menu-complete-backward ()</CODE>
+<DD><A NAME="IDX141"></A>
+Identical to <CODE>menu-complete</CODE>, but moves backward through the list
+of possible completions, as if <CODE>menu-complete</CODE> had been given a
+negative argument.
+<P>
+
+<A NAME="IDX142"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX140"></A>
+<DD><A NAME="IDX143"></A>
Deletes the character under the cursor if not at the beginning or
end of the line (like <CODE>delete-char</CODE>).
If at the end of the line, behaves identically to
@@ -1784,22 +1820,22 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX141"></A>
+<A NAME="IDX144"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX142"></A>
+<DD><A NAME="IDX145"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX143"></A>
+<A NAME="IDX146"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX144"></A>
+<DD><A NAME="IDX147"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX145"></A>
+<A NAME="IDX148"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX146"></A>
+<DD><A NAME="IDX149"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
@@ -1825,87 +1861,99 @@ in the macro appear as if typed at the keyboard.
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX147"></A>
+<A NAME="IDX150"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX148"></A>
+<DD><A NAME="IDX151"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX149"></A>
+<A NAME="IDX152"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX150"></A>
+<DD><A NAME="IDX153"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX151"></A>
+<A NAME="IDX154"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX152"></A>
+<DD><A NAME="IDX155"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX153"></A>
+<A NAME="IDX156"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX154"></A>
+<DD><A NAME="IDX157"></A>
Metafy the next character typed. This is for keyboards
without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
<KBD>M-f</KBD>.
<P>
-<A NAME="IDX155"></A>
+<A NAME="IDX158"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX156"></A>
+<DD><A NAME="IDX159"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX157"></A>
+<A NAME="IDX160"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX158"></A>
+<DD><A NAME="IDX161"></A>
Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
command enough times to get back to the beginning.
<P>
-<A NAME="IDX159"></A>
+<A NAME="IDX162"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX160"></A>
+<DD><A NAME="IDX163"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX161"></A>
+<A NAME="IDX164"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX162"></A>
+<DD><A NAME="IDX165"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX163"></A>
+<A NAME="IDX166"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX164"></A>
+<DD><A NAME="IDX167"></A>
Swap the point with the mark. The current cursor position is set to
the saved position, and the old cursor position is saved as the mark.
<P>
-<A NAME="IDX165"></A>
+<A NAME="IDX168"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX166"></A>
+<DD><A NAME="IDX169"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<P>
-<A NAME="IDX167"></A>
+<A NAME="IDX170"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX168"></A>
+<DD><A NAME="IDX171"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<P>
-<A NAME="IDX169"></A>
+<A NAME="IDX172"></A>
+<DT><CODE>skip-csi-sequence ()</CODE>
+<DD><A NAME="IDX173"></A>
+Read enough characters to consume a multi-key sequence such as those
+defined for keys like Home and End. Such sequences begin with a
+Control Sequence Indicator (CSI), usually ESC-[. If this sequence is
+bound to "\e[", keys producing such sequences will have no effect
+unless explicitly bound to a readline command, instead of inserting
+stray characters into the editing buffer. This is unbound by default,
+but usually bound to ESC-[.
+<P>
+
+<A NAME="IDX174"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX170"></A>
+<DD><A NAME="IDX175"></A>
Without a numeric argument, the value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -1916,43 +1964,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX171"></A>
+<A NAME="IDX176"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX172"></A>
+<DD><A NAME="IDX177"></A>
Print all of the functions and their key bindings to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX173"></A>
+<A NAME="IDX178"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX174"></A>
+<DD><A NAME="IDX179"></A>
Print all of the settable variables and their values to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX175"></A>
+<A NAME="IDX180"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX176"></A>
+<DD><A NAME="IDX181"></A>
Print all of the Readline key sequences bound to macros and the
strings they output. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX177"></A>
+<A NAME="IDX182"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX178"></A>
+<DD><A NAME="IDX183"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX179"></A>
+<A NAME="IDX184"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX180"></A>
+<DD><A NAME="IDX185"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -2087,8 +2135,8 @@ the simplest way possible, perhaps to replace calls in your code to
<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
</P><P>
-<A NAME="IDX181"></A>
-<A NAME="IDX182"></A>
+<A NAME="IDX186"></A>
+<A NAME="IDX187"></A>
</P><P>
The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
@@ -2404,7 +2452,7 @@ command functions.
These variables are available to function writers.
</P><P>
-<A NAME="IDX183"></A>
+<A NAME="IDX188"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_line_buffer</B>
<DD>This is the line gathered so far. You are welcome to modify the
@@ -2414,7 +2462,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX184"></A>
+<A NAME="IDX189"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_point</B>
<DD>The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
@@ -2422,7 +2470,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX185"></A>
+<A NAME="IDX190"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_end</B>
<DD>The number of characters present in <CODE>rl_line_buffer</CODE>. When
@@ -2431,7 +2479,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX186"></A>
+<A NAME="IDX191"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_mark</B>
<DD>The <VAR>mark</VAR> (saved position) in the current line. If set, the mark
@@ -2439,7 +2487,7 @@ and point define a <EM>region</EM>.
</DL>
</P><P>
-<A NAME="IDX187"></A>
+<A NAME="IDX192"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_done</B>
<DD>Setting this to a non-zero value causes Readline to return the current
@@ -2447,7 +2495,7 @@ line immediately.
</DL>
</P><P>
-<A NAME="IDX188"></A>
+<A NAME="IDX193"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_num_chars_to_read</B>
<DD>Setting this to a positive value before calling <CODE>readline()</CODE> causes
@@ -2456,7 +2504,7 @@ than reading up to a character bound to <CODE>accept-line</CODE>.
</DL>
</P><P>
-<A NAME="IDX189"></A>
+<A NAME="IDX194"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_pending_input</B>
<DD>Setting this to a value makes it the next keystroke read. This is a
@@ -2464,7 +2512,7 @@ way to stuff a single character into the input stream.
</DL>
</P><P>
-<A NAME="IDX190"></A>
+<A NAME="IDX195"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_dispatching</B>
<DD>Set to a non-zero value if a function is being called from a key binding;
@@ -2473,7 +2521,7 @@ they were called directly or by Readline's dispatching mechanism.
</DL>
</P><P>
-<A NAME="IDX191"></A>
+<A NAME="IDX196"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_erase_empty_line</B>
<DD>Setting this to a non-zero value causes Readline to completely erase
@@ -2483,7 +2531,7 @@ the beginning of the newly-blank line.
</DL>
</P><P>
-<A NAME="IDX192"></A>
+<A NAME="IDX197"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_prompt</B>
<DD>The prompt Readline uses. This is set from the argument to
@@ -2493,7 +2541,7 @@ be used to modify the prompt string after calling <CODE>readline()</CODE>.
</DL>
</P><P>
-<A NAME="IDX193"></A>
+<A NAME="IDX198"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_display_prompt</B>
<DD>The string displayed as the prompt. This is usually identical to
@@ -2502,7 +2550,7 @@ use the prompt string as a message area, such as incremental search.
</DL>
</P><P>
-<A NAME="IDX194"></A>
+<A NAME="IDX199"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_already_prompted</B>
<DD>If an application wishes to display the prompt itself, rather than have
@@ -2515,14 +2563,14 @@ never sets it.
</DL>
</P><P>
-<A NAME="IDX195"></A>
+<A NAME="IDX200"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_library_version</B>
<DD>The version number of this revision of the library.
</DL>
</P><P>
-<A NAME="IDX196"></A>
+<A NAME="IDX201"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_readline_version</B>
<DD>An integer encoding the current version of the library. The encoding is
@@ -2533,7 +2581,7 @@ value 0x0402.
</DL>
</P><P>
-<A NAME="IDX197"></A>
+<A NAME="IDX202"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_gnu_readline_p</B>
<DD>Always set to 1, denoting that this is GNU readline rather than some
@@ -2541,7 +2589,7 @@ emulation.
</DL>
</P><P>
-<A NAME="IDX198"></A>
+<A NAME="IDX203"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_terminal_name</B>
<DD>The terminal type, used for initialization. If not set by the application,
@@ -2550,7 +2598,7 @@ the first time it is called.
</DL>
</P><P>
-<A NAME="IDX199"></A>
+<A NAME="IDX204"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_readline_name</B>
<DD>This variable is set to a unique name by each application using Readline.
@@ -2559,7 +2607,7 @@ The value allows conditional parsing of the inputrc file
</DL>
</P><P>
-<A NAME="IDX200"></A>
+<A NAME="IDX205"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_instream</B>
<DD>The stdio stream from which Readline reads input.
@@ -2567,7 +2615,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdin</VAR>.
</DL>
</P><P>
-<A NAME="IDX201"></A>
+<A NAME="IDX206"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
<DD>The stdio stream to which Readline performs output.
@@ -2575,7 +2623,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdout</VAR>.
</DL>
</P><P>
-<A NAME="IDX202"></A>
+<A NAME="IDX207"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_prefer_env_winsize</B>
<DD>If non-zero, Readline gives values found in the <CODE>LINES</CODE> and
@@ -2584,7 +2632,7 @@ from the kernel when computing the screen dimensions.
</DL>
</P><P>
-<A NAME="IDX203"></A>
+<A NAME="IDX208"></A>
<DL>
<DT><U>Variable:</U> rl_command_func_t * <B>rl_last_func</B>
<DD>The address of the last command function Readline executed. May be used to
@@ -2593,7 +2641,7 @@ example.
</DL>
</P><P>
-<A NAME="IDX204"></A>
+<A NAME="IDX209"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_startup_hook</B>
<DD>If non-zero, this is the address of a function to call just
@@ -2601,7 +2649,7 @@ before <CODE>readline</CODE> prints the first prompt.
</DL>
</P><P>
-<A NAME="IDX205"></A>
+<A NAME="IDX210"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_pre_input_hook</B>
<DD>If non-zero, this is the address of a function to call after
@@ -2610,7 +2658,7 @@ starts reading input characters.
</DL>
</P><P>
-<A NAME="IDX206"></A>
+<A NAME="IDX211"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_event_hook</B>
<DD>If non-zero, this is the address of a function to call periodically
@@ -2620,7 +2668,7 @@ is no keyboard input.
</DL>
</P><P>
-<A NAME="IDX207"></A>
+<A NAME="IDX212"></A>
<DL>
<DT><U>Variable:</U> rl_getc_func_t * <B>rl_getc_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2630,7 +2678,7 @@ to get a character from the input stream. By default, it is set to
</DL>
</P><P>
-<A NAME="IDX208"></A>
+<A NAME="IDX213"></A>
<DL>
<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_redisplay_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2640,7 +2688,7 @@ redisplay function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A
</DL>
</P><P>
-<A NAME="IDX209"></A>
+<A NAME="IDX214"></A>
<DL>
<DT><U>Variable:</U> rl_vintfunc_t * <B>rl_prep_term_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2651,7 +2699,7 @@ By default, this is set to <CODE>rl_prep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX210"></A>
+<A NAME="IDX215"></A>
<DL>
<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_deprep_term_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2662,7 +2710,7 @@ By default, this is set to <CODE>rl_deprep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX211"></A>
+<A NAME="IDX216"></A>
<DL>
<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
@@ -2670,7 +2718,7 @@ currently executing readline function was found.
</DL>
</P><P>
-<A NAME="IDX212"></A>
+<A NAME="IDX217"></A>
<DL>
<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
@@ -2678,14 +2726,14 @@ last key binding occurred.
</DL>
</P><P>
-<A NAME="IDX213"></A>
+<A NAME="IDX218"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_executing_macro</B>
<DD>This variable is set to the text of any currently-executing macro.
</DL>
</P><P>
-<A NAME="IDX214"></A>
+<A NAME="IDX219"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_readline_state</B>
<DD>A variable with bit values that encapsulate the current Readline state.
@@ -2755,7 +2803,7 @@ and is about to return the line to the caller.
</DL>
</P><P>
-<A NAME="IDX215"></A>
+<A NAME="IDX220"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_explicit_arg</B>
<DD>Set to a non-zero value if an explicit numeric argument was specified by
@@ -2763,7 +2811,7 @@ the user. Only valid in a bindable command function.
</DL>
</P><P>
-<A NAME="IDX216"></A>
+<A NAME="IDX221"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_numeric_arg</B>
<DD>Set to the value of any numeric argument explicitly specified by the user
@@ -2772,7 +2820,7 @@ command function.
</DL>
</P><P>
-<A NAME="IDX217"></A>
+<A NAME="IDX222"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_editing_mode</B>
<DD>Set to a value denoting Readline's current editing mode. A value of
@@ -2850,7 +2898,7 @@ programmer, should bind the functions you write to descriptive names as
well. Readline provides a function for doing that:
</P><P>
-<A NAME="IDX218"></A>
+<A NAME="IDX223"></A>
<DL>
<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(const char *name, rl_command_func_t *function, int key)</I>
<DD>Add <VAR>name</VAR> to the list of named functions. Make <VAR>function</VAR> be
@@ -2890,23 +2938,23 @@ get run. You can make your own keymaps, copy existing keymaps, and tell
Readline which keymap to use.
</P><P>
-<A NAME="IDX219"></A>
+<A NAME="IDX224"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>(void)</I>
<DD>Returns a new, empty keymap. The space for the keymap is allocated with
<CODE>malloc()</CODE>; the caller should free it by calling
-<CODE>rl_discard_keymap()</CODE> when done.
+<CODE>rl_free_keymap()</CODE> when done.
</DL>
</P><P>
-<A NAME="IDX220"></A>
+<A NAME="IDX225"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
<DD>Return a new keymap which is a copy of <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX221"></A>
+<A NAME="IDX226"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>(void)</I>
<DD>Return a new keymap with the printing characters bound to rl_insert,
@@ -2915,10 +2963,19 @@ the Meta digits bound to produce numeric arguments.
</DL>
</P><P>
-<A NAME="IDX222"></A>
+<A NAME="IDX227"></A>
<DL>
<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
-<DD>Free the storage associated with <VAR>keymap</VAR>.
+<DD>Free the storage associated with the data in <VAR>keymap</VAR>.
+The caller should free <VAR>keymap</VAR>.
+</DL>
+</P><P>
+
+<A NAME="IDX228"></A>
+<DL>
+<DT><U>Function:</U> void <B>rl_free_keymap</B> <I>(Keymap keymap)</I>
+<DD>Free all storage associated with <VAR>keymap</VAR>. This calls
+<CODE>rl_discard_keymap</CODE> to free subordindate keymaps and macros.
</DL>
</P><P>
@@ -2926,21 +2983,21 @@ Readline has several internal keymaps. These functions allow you to
change which keymap is active.
</P><P>
-<A NAME="IDX223"></A>
+<A NAME="IDX229"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>(void)</I>
<DD>Returns the currently active keymap.
</DL>
</P><P>
-<A NAME="IDX224"></A>
+<A NAME="IDX230"></A>
<DL>
<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I>
<DD>Makes <VAR>keymap</VAR> the currently active keymap.
</DL>
</P><P>
-<A NAME="IDX225"></A>
+<A NAME="IDX231"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(const char *name)</I>
<DD>Return the keymap matching <VAR>name</VAR>. <VAR>name</VAR> is one which would
@@ -2948,7 +3005,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
</DL>
</P><P>
-<A NAME="IDX226"></A>
+<A NAME="IDX232"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
<DD>Return the name matching <VAR>keymap</VAR>. <VAR>name</VAR> is one which would
@@ -2993,7 +3050,7 @@ initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
These functions manage key bindings.
</P><P>
-<A NAME="IDX227"></A>
+<A NAME="IDX233"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, rl_command_func_t *function)</I>
<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> in the currently active keymap.
@@ -3001,7 +3058,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX228"></A>
+<A NAME="IDX234"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
<DD>Bind <VAR>key</VAR> to <VAR>function</VAR> in <VAR>map</VAR>.
@@ -3009,7 +3066,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX229"></A>
+<A NAME="IDX235"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_if_unbound</B> <I>(int key, rl_command_func_t *function)</I>
<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> if it is not already bound in the
@@ -3019,7 +3076,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX230"></A>
+<A NAME="IDX236"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_if_unbound_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> if it is not already bound in <VAR>map</VAR>.
@@ -3028,7 +3085,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX231"></A>
+<A NAME="IDX237"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I>
<DD>Bind <VAR>key</VAR> to the null function in the currently active keymap.
@@ -3036,7 +3093,7 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX232"></A>
+<A NAME="IDX238"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I>
<DD>Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>.
@@ -3044,21 +3101,21 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX233"></A>
+<A NAME="IDX239"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
<DD>Unbind all keys that execute <VAR>function</VAR> in <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX234"></A>
+<A NAME="IDX240"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_command_in_map</B> <I>(const char *command, Keymap map)</I>
<DD>Unbind all keys that are bound to <VAR>command</VAR> in <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX235"></A>
+<A NAME="IDX241"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq</B> <I>(const char *keyseq, rl_command_func_t *function)</I>
<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
@@ -3068,7 +3125,7 @@ The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX236"></A>
+<A NAME="IDX242"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq_in_map</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
@@ -3078,14 +3135,14 @@ The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX237"></A>
+<A NAME="IDX243"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_key</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
<DD>Equivalent to <CODE>rl_bind_keyseq_in_map</CODE>.
</DL>
</P><P>
-<A NAME="IDX238"></A>
+<A NAME="IDX244"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq_if_unbound</B> <I>(const char *keyseq, rl_command_func_t *function)</I>
<DD>Binds <VAR>keyseq</VAR> to <VAR>function</VAR> if it is not already bound in the
@@ -3095,7 +3152,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX239"></A>
+<A NAME="IDX245"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq_if_unbound_in_map</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
<DD>Binds <VAR>keyseq</VAR> to <VAR>function</VAR> if it is not already bound in <VAR>map</VAR>.
@@ -3104,7 +3161,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX240"></A>
+<A NAME="IDX246"></A>
<DL>
<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, const char *keyseq, char *data, Keymap map)</I>
<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the arbitrary
@@ -3115,7 +3172,7 @@ necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX241"></A>
+<A NAME="IDX247"></A>
<DL>
<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I>
<DD>Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and
@@ -3124,7 +3181,7 @@ perform any key bindings and variable assignments found
</DL>
</P><P>
-<A NAME="IDX242"></A>
+<A NAME="IDX248"></A>
<DL>
<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(const char *filename)</I>
<DD>Read keybindings and variable assignments from <VAR>filename</VAR>
@@ -3155,14 +3212,14 @@ and the functions invoked by a particular key sequence. You may also
associate a new function name with an arbitrary function.
</P><P>
-<A NAME="IDX243"></A>
+<A NAME="IDX249"></A>
<DL>
<DT><U>Function:</U> rl_command_func_t * <B>rl_named_function</B> <I>(const char *name)</I>
<DD>Return the function with name <VAR>name</VAR>.
</DL>
</P><P>
-<A NAME="IDX244"></A>
+<A NAME="IDX250"></A>
<DL>
<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq</B> <I>(const char *keyseq, Keymap map, int *type)</I>
<DD>Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
@@ -3172,7 +3229,7 @@ it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</
</DL>
</P><P>
-<A NAME="IDX245"></A>
+<A NAME="IDX251"></A>
<DL>
<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(rl_command_func_t *function)</I>
<DD>Return an array of strings representing the key sequences used to
@@ -3180,7 +3237,7 @@ invoke <VAR>function</VAR> in the current keymap.
</DL>
</P><P>
-<A NAME="IDX246"></A>
+<A NAME="IDX252"></A>
<DL>
<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
<DD>Return an array of strings representing the key sequences used to
@@ -3188,7 +3245,7 @@ invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX247"></A>
+<A NAME="IDX253"></A>
<DL>
<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
<DD>Print the readline function names and the key sequences currently
@@ -3198,14 +3255,14 @@ the list is formatted in such a way that it can be made part of an
</DL>
</P><P>
-<A NAME="IDX248"></A>
+<A NAME="IDX254"></A>
<DL>
<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>(void)</I>
<DD>Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
</DL>
</P><P>
-<A NAME="IDX249"></A>
+<A NAME="IDX255"></A>
<DL>
<DT><U>Function:</U> const char ** <B>rl_funmap_names</B> <I>(void)</I>
<DD>Return a NULL terminated array of known function names. The array is
@@ -3215,7 +3272,7 @@ should free the array, but not the pointers, using <CODE>free</CODE> or
</DL>
</P><P>
-<A NAME="IDX250"></A>
+<A NAME="IDX256"></A>
<DL>
<DT><U>Function:</U> int <B>rl_add_funmap_entry</B> <I>(const char *name, rl_command_func_t *function)</I>
<DD>Add <VAR>name</VAR> to the list of bindable Readline command names, and make
@@ -3270,7 +3327,7 @@ tells what to undo, not how to undo it. <CODE>UNDO_BEGIN</CODE> and
<CODE>rl_end_undo_group()</CODE>.
</P><P>
-<A NAME="IDX251"></A>
+<A NAME="IDX257"></A>
<DL>
<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>(void)</I>
<DD>Begins saving undo information in a group construct. The undo
@@ -3280,7 +3337,7 @@ information usually comes from calls to <CODE>rl_insert_text()</CODE> and
</DL>
</P><P>
-<A NAME="IDX252"></A>
+<A NAME="IDX258"></A>
<DL>
<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>(void)</I>
<DD>Closes the current undo group started with <CODE>rl_begin_undo_group
@@ -3289,7 +3346,7 @@ for each call to <CODE>rl_begin_undo_group()</CODE>.
</DL>
</P><P>
-<A NAME="IDX253"></A>
+<A NAME="IDX259"></A>
<DL>
<DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I>
<DD>Remember how to undo an event (according to <VAR>what</VAR>). The affected
@@ -3297,14 +3354,14 @@ text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VA
</DL>
</P><P>
-<A NAME="IDX254"></A>
+<A NAME="IDX260"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free_undo_list</B> <I>(void)</I>
<DD>Free the existing undo list.
</DL>
</P><P>
-<A NAME="IDX255"></A>
+<A NAME="IDX261"></A>
<DL>
<DT><U>Function:</U> int <B>rl_do_undo</B> <I>(void)</I>
<DD>Undo the first thing on the undo list. Returns <CODE>0</CODE> if there was
@@ -3318,7 +3375,7 @@ once, just before you modify the text. You must supply the indices of
the text range that you are going to modify.
</P><P>
-<A NAME="IDX256"></A>
+<A NAME="IDX262"></A>
<DL>
<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
<DD>Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a
@@ -3345,7 +3402,7 @@ that text.
<!--docid::SEC35::-->
<P>
-<A NAME="IDX257"></A>
+<A NAME="IDX263"></A>
<DL>
<DT><U>Function:</U> void <B>rl_redisplay</B> <I>(void)</I>
<DD>Change what's displayed on the screen to reflect the current contents
@@ -3353,7 +3410,7 @@ of <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX258"></A>
+<A NAME="IDX264"></A>
<DL>
<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>(void)</I>
<DD>Force the line to be updated and redisplayed, whether or not
@@ -3361,7 +3418,7 @@ Readline thinks the screen display is correct.
</DL>
</P><P>
-<A NAME="IDX259"></A>
+<A NAME="IDX265"></A>
<DL>
<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>(void)</I>
<DD>Tell the update functions that we have moved onto a new (empty) line,
@@ -3369,7 +3426,7 @@ usually after ouputting a newline.
</DL>
</P><P>
-<A NAME="IDX260"></A>
+<A NAME="IDX266"></A>
<DL>
<DT><U>Function:</U> int <B>rl_on_new_line_with_prompt</B> <I>(void)</I>
<DD>Tell the update functions that we have moved onto a new line, with
@@ -3381,7 +3438,7 @@ It should be used after setting <VAR>rl_already_prompted</VAR>.
</DL>
</P><P>
-<A NAME="IDX261"></A>
+<A NAME="IDX267"></A>
<DL>
<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>(void)</I>
<DD>Reset the display state to a clean state and redisplay the current line
@@ -3389,14 +3446,14 @@ starting on a new line.
</DL>
</P><P>
-<A NAME="IDX262"></A>
+<A NAME="IDX268"></A>
<DL>
<DT><U>Function:</U> int <B>rl_crlf</B> <I>(void)</I>
<DD>Move the cursor to the start of the next screen line.
</DL>
</P><P>
-<A NAME="IDX263"></A>
+<A NAME="IDX269"></A>
<DL>
<DT><U>Function:</U> int <B>rl_show_char</B> <I>(int c)</I>
<DD>Display character <VAR>c</VAR> on <CODE>rl_outstream</CODE>.
@@ -3407,7 +3464,7 @@ redisplay.
</DL>
</P><P>
-<A NAME="IDX264"></A>
+<A NAME="IDX270"></A>
<DL>
<DT><U>Function:</U> int <B>rl_message</B> <I>(const char *, <small>...</small>)</I>
<DD>The arguments are a format string as would be supplied to <CODE>printf</CODE>,
@@ -3420,7 +3477,7 @@ before calling this function.
</DL>
</P><P>
-<A NAME="IDX265"></A>
+<A NAME="IDX271"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
<DD>Clear the message in the echo area. If the prompt was saved with a call to
@@ -3429,7 +3486,7 @@ call <CODE>rl_restore_prompt</CODE> before calling this function.
</DL>
</P><P>
-<A NAME="IDX266"></A>
+<A NAME="IDX272"></A>
<DL>
<DT><U>Function:</U> void <B>rl_save_prompt</B> <I>(void)</I>
<DD>Save the local Readline prompt display state in preparation for
@@ -3437,7 +3494,7 @@ displaying a new message in the message area with <CODE>rl_message()</CODE>.
</DL>
</P><P>
-<A NAME="IDX267"></A>
+<A NAME="IDX273"></A>
<DL>
<DT><U>Function:</U> void <B>rl_restore_prompt</B> <I>(void)</I>
<DD>Restore the local Readline prompt display state saved by the most
@@ -3448,7 +3505,7 @@ corresponding call to <CODE>rl_clear_message</CODE>.
</DL>
</P><P>
-<A NAME="IDX268"></A>
+<A NAME="IDX274"></A>
<DL>
<DT><U>Function:</U> int <B>rl_expand_prompt</B> <I>(char *prompt)</I>
<DD>Expand any special character sequences in <VAR>prompt</VAR> and set up the
@@ -3466,7 +3523,7 @@ be used to embed terminal-specific escape sequences in prompts.
</DL>
</P><P>
-<A NAME="IDX269"></A>
+<A NAME="IDX275"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_prompt</B> <I>(const char *prompt)</I>
<DD>Make Readline use <VAR>prompt</VAR> for subsequent redisplay. This calls
@@ -3493,7 +3550,7 @@ to the result.
<!--docid::SEC36::-->
<P>
-<A NAME="IDX270"></A>
+<A NAME="IDX276"></A>
<DL>
<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(const char *text)</I>
<DD>Insert <VAR>text</VAR> into the line at the current cursor position.
@@ -3501,7 +3558,7 @@ Returns the number of characters inserted.
</DL>
</P><P>
-<A NAME="IDX271"></A>
+<A NAME="IDX277"></A>
<DL>
<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
<DD>Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
@@ -3509,7 +3566,7 @@ Returns the number of characters deleted.
</DL>
</P><P>
-<A NAME="IDX272"></A>
+<A NAME="IDX278"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
<DD>Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
@@ -3517,7 +3574,7 @@ the current line.
</DL>
</P><P>
-<A NAME="IDX273"></A>
+<A NAME="IDX279"></A>
<DL>
<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
<DD>Copy the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line
@@ -3529,7 +3586,7 @@ not a kill, a new kill ring slot is used.
</DL>
</P><P>
-<A NAME="IDX274"></A>
+<A NAME="IDX280"></A>
<DL>
<DT><U>Function:</U> int <B>rl_push_macro_input</B> <I>(char *macro)</I>
<DD>Cause <VAR>macro</VAR> to be inserted into the line, as if it had been invoked
@@ -3556,7 +3613,7 @@ by a key bound to a macro. Not especially useful; use
<!--docid::SEC37::-->
<P>
-<A NAME="IDX275"></A>
+<A NAME="IDX281"></A>
<DL>
<DT><U>Function:</U> int <B>rl_read_key</B> <I>(void)</I>
<DD>Return the next character available from Readline's current input stream.
@@ -3568,7 +3625,7 @@ the <CODE>rl_event_hook</CODE> variable.
</DL>
</P><P>
-<A NAME="IDX276"></A>
+<A NAME="IDX282"></A>
<DL>
<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *stream)</I>
<DD>Return the next character available from <VAR>stream</VAR>, which is assumed to
@@ -3576,7 +3633,7 @@ be the keyboard.
</DL>
</P><P>
-<A NAME="IDX277"></A>
+<A NAME="IDX283"></A>
<DL>
<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
<DD>Insert <VAR>c</VAR> into the Readline input stream. It will be "read"
@@ -3587,7 +3644,7 @@ before Readline attempts to read characters from the terminal with
</DL>
</P><P>
-<A NAME="IDX278"></A>
+<A NAME="IDX284"></A>
<DL>
<DT><U>Function:</U> int <B>rl_execute_next</B> <I>(int c)</I>
<DD>Make <VAR>c</VAR> be the next command to be executed when <CODE>rl_read_key()</CODE>
@@ -3595,7 +3652,7 @@ is called. This sets <VAR>rl_pending_input</VAR>.
</DL>
</P><P>
-<A NAME="IDX279"></A>
+<A NAME="IDX285"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_pending_input</B> <I>(void)</I>
<DD>Unset <VAR>rl_pending_input</VAR>, effectively negating the effect of any
@@ -3604,7 +3661,7 @@ pending input has not already been read with <CODE>rl_read_key()</CODE>.
</DL>
</P><P>
-<A NAME="IDX280"></A>
+<A NAME="IDX286"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_keyboard_input_timeout</B> <I>(int u)</I>
<DD>While waiting for keyboard input in <CODE>rl_read_key()</CODE>, Readline will
@@ -3634,7 +3691,7 @@ Returns the old timeout value.
<!--docid::SEC38::-->
<P>
-<A NAME="IDX281"></A>
+<A NAME="IDX287"></A>
<DL>
<DT><U>Function:</U> void <B>rl_prep_terminal</B> <I>(int meta_flag)</I>
<DD>Modify the terminal settings for Readline's use, so <CODE>readline()</CODE>
@@ -3644,7 +3701,7 @@ read eight-bit input.
</DL>
</P><P>
-<A NAME="IDX282"></A>
+<A NAME="IDX288"></A>
<DL>
<DT><U>Function:</U> void <B>rl_deprep_terminal</B> <I>(void)</I>
<DD>Undo the effects of <CODE>rl_prep_terminal()</CODE>, leaving the terminal in
@@ -3653,7 +3710,7 @@ the state in which it was before the most recent call to
</DL>
</P><P>
-<A NAME="IDX283"></A>
+<A NAME="IDX289"></A>
<DL>
<DT><U>Function:</U> void <B>rl_tty_set_default_bindings</B> <I>(Keymap kmap)</I>
<DD>Read the operating system's terminal editing characters (as would be
@@ -3662,7 +3719,7 @@ The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX284"></A>
+<A NAME="IDX290"></A>
<DL>
<DT><U>Function:</U> void <B>rl_tty_unset_default_bindings</B> <I>(Keymap kmap)</I>
<DD>Reset the bindings manipulated by <CODE>rl_tty_set_default_bindings</CODE> so
@@ -3671,7 +3728,7 @@ The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX285"></A>
+<A NAME="IDX291"></A>
<DL>
<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(const char *terminal_name)</I>
<DD>Reinitialize Readline's idea of the terminal settings using
@@ -3699,7 +3756,7 @@ environment variable is used.
<!--docid::SEC39::-->
<P>
-<A NAME="IDX286"></A>
+<A NAME="IDX292"></A>
<DL>
<DT><U>Function:</U> int <B>rl_save_state</B> <I>(struct readline_state *sp)</I>
<DD>Save a snapshot of Readline's internal state to <VAR>sp</VAR>.
@@ -3709,7 +3766,7 @@ The caller is responsible for allocating the structure.
</DL>
</P><P>
-<A NAME="IDX287"></A>
+<A NAME="IDX293"></A>
<DL>
<DT><U>Function:</U> int <B>rl_restore_state</B> <I>(struct readline_state *sp)</I>
<DD>Restore Readline's internal state to that stored in <VAR>sp</VAR>, which must
@@ -3720,7 +3777,7 @@ The caller is responsible for freeing the structure.
</DL>
</P><P>
-<A NAME="IDX288"></A>
+<A NAME="IDX294"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free</B> <I>(void *mem)</I>
<DD>Deallocate the memory pointed to by <VAR>mem</VAR>. <VAR>mem</VAR> must have been
@@ -3728,7 +3785,7 @@ allocated by <CODE>malloc</CODE>.
</DL>
</P><P>
-<A NAME="IDX289"></A>
+<A NAME="IDX295"></A>
<DL>
<DT><U>Function:</U> void <B>rl_replace_line</B> <I>(const char *text, int clear_undo)</I>
<DD>Replace the contents of <CODE>rl_line_buffer</CODE> with <VAR>text</VAR>.
@@ -3738,7 +3795,7 @@ current line is cleared.
</DL>
</P><P>
-<A NAME="IDX290"></A>
+<A NAME="IDX296"></A>
<DL>
<DT><U>Function:</U> void <B>rl_extend_line_buffer</B> <I>(int len)</I>
<DD>Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
@@ -3746,7 +3803,7 @@ characters, possibly reallocating it if necessary.
</DL>
</P><P>
-<A NAME="IDX291"></A>
+<A NAME="IDX297"></A>
<DL>
<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
<DD>Initialize or re-initialize Readline's internal state.
@@ -3755,21 +3812,21 @@ reading any input.
</DL>
</P><P>
-<A NAME="IDX292"></A>
+<A NAME="IDX298"></A>
<DL>
<DT><U>Function:</U> int <B>rl_ding</B> <I>(void)</I>
<DD>Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
</DL>
</P><P>
-<A NAME="IDX293"></A>
+<A NAME="IDX299"></A>
<DL>
<DT><U>Function:</U> int <B>rl_alphabetic</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is an alphabetic character.
</DL>
</P><P>
-<A NAME="IDX294"></A>
+<A NAME="IDX300"></A>
<DL>
<DT><U>Function:</U> void <B>rl_display_match_list</B> <I>(char **matches, int len, int max)</I>
<DD>A convenience function for displaying a list of strings in
@@ -3786,28 +3843,28 @@ The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
Applications should refrain from using them.
</P><P>
-<A NAME="IDX295"></A>
+<A NAME="IDX301"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_uppercase_p</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
</DL>
</P><P>
-<A NAME="IDX296"></A>
+<A NAME="IDX302"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_lowercase_p</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
</DL>
</P><P>
-<A NAME="IDX297"></A>
+<A NAME="IDX303"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_digit_p</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is a numeric character.
</DL>
</P><P>
-<A NAME="IDX298"></A>
+<A NAME="IDX304"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_to_upper</B> <I>(int c)</I>
<DD>If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
@@ -3815,7 +3872,7 @@ uppercase character.
</DL>
</P><P>
-<A NAME="IDX299"></A>
+<A NAME="IDX305"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_to_lower</B> <I>(int c)</I>
<DD>If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
@@ -3823,7 +3880,7 @@ lowercase character.
</DL>
</P><P>
-<A NAME="IDX300"></A>
+<A NAME="IDX306"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_digit_value</B> <I>(int c)</I>
<DD>If <VAR>c</VAR> is a number, return the value it represents.
@@ -3848,7 +3905,7 @@ lowercase character.
<!--docid::SEC40::-->
<P>
-<A NAME="IDX301"></A>
+<A NAME="IDX307"></A>
<DL>
<DT><U>Function:</U> int <B>rl_macro_bind</B> <I>(const char *keyseq, const char *macro, Keymap map)</I>
<DD>Bind the key sequence <VAR>keyseq</VAR> to invoke the macro <VAR>macro</VAR>.
@@ -3858,7 +3915,7 @@ use <CODE>rl_generic_bind()</CODE> instead.
</DL>
</P><P>
-<A NAME="IDX302"></A>
+<A NAME="IDX308"></A>
<DL>
<DT><U>Function:</U> void <B>rl_macro_dumper</B> <I>(int readable)</I>
<DD>Print the key sequences bound to macros and their values, using
@@ -3868,7 +3925,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX303"></A>
+<A NAME="IDX309"></A>
<DL>
<DT><U>Function:</U> int <B>rl_variable_bind</B> <I>(const char *variable, const char *value)</I>
<DD>Make the Readline variable <VAR>variable</VAR> have <VAR>value</VAR>.
@@ -3878,7 +3935,7 @@ file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax<
</DL>
</P><P>
-<A NAME="IDX304"></A>
+<A NAME="IDX310"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_variable_value</B> <I>(const char *variable)</I>
<DD>Return a string representing the value of the Readline variable <VAR>variable</VAR>.
@@ -3886,7 +3943,7 @@ For boolean variables, this string is either <SAMP>`on'</SAMP> or <SAMP>`off'</S
</DL>
</P><P>
-<A NAME="IDX305"></A>
+<A NAME="IDX311"></A>
<DL>
<DT><U>Function:</U> void <B>rl_variable_dumper</B> <I>(int readable)</I>
<DD>Print the readline variable names and their current values
@@ -3896,7 +3953,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX306"></A>
+<A NAME="IDX312"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_paren_blink_timeout</B> <I>(int u)</I>
<DD>Set the time interval (in microseconds) that Readline waits when showing
@@ -3904,7 +3961,7 @@ a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
</DL>
</P><P>
-<A NAME="IDX307"></A>
+<A NAME="IDX313"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_get_termcap</B> <I>(const char *cap)</I>
<DD>Retrieve the string value of the termcap capability <VAR>cap</VAR>.
@@ -3942,7 +3999,7 @@ also be invoked as a `callback' function from an event loop. There
are functions available to make this easy.
</P><P>
-<A NAME="IDX308"></A>
+<A NAME="IDX314"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(const char *prompt, rl_vcpfunc_t *lhandler)</I>
<DD>Set up the terminal for readline I/O and display the initial
@@ -3952,7 +4009,7 @@ The function takes the text of the line as an argument.
</DL>
</P><P>
-<A NAME="IDX309"></A>
+<A NAME="IDX315"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>(void)</I>
<DD>Whenever an application determines that keyboard input is available, it
@@ -3971,7 +4028,7 @@ the terminal settings are modified for Readline's use again.
</DL>
</P><P>
-<A NAME="IDX310"></A>
+<A NAME="IDX316"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>(void)</I>
<DD>Restore the terminal to its initial state and remove the line handler.
@@ -4129,7 +4186,7 @@ values of these variables only when calling <CODE>readline()</CODE>, not in
a signal handler, so Readline's internal signal state is not corrupted.
</P><P>
-<A NAME="IDX311"></A>
+<A NAME="IDX317"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_signals</B>
<DD>If this variable is non-zero, Readline will install signal handlers for
@@ -4141,7 +4198,7 @@ The default value of <CODE>rl_catch_signals</CODE> is 1.
</DL>
</P><P>
-<A NAME="IDX312"></A>
+<A NAME="IDX318"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
<DD>If this variable is non-zero, Readline will install a signal handler for
@@ -4159,7 +4216,7 @@ Readline provides convenience functions to do the necessary terminal
and internal state cleanup upon receipt of a signal.
</P><P>
-<A NAME="IDX313"></A>
+<A NAME="IDX319"></A>
<DL>
<DT><U>Function:</U> void <B>rl_cleanup_after_signal</B> <I>(void)</I>
<DD>This function will reset the state of the terminal to what it was before
@@ -4169,7 +4226,7 @@ all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
</DL>
</P><P>
-<A NAME="IDX314"></A>
+<A NAME="IDX320"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free_line_state</B> <I>(void)</I>
<DD>This will free any partial state associated with the current input line
@@ -4181,7 +4238,7 @@ current input line.
</DL>
</P><P>
-<A NAME="IDX315"></A>
+<A NAME="IDX321"></A>
<DL>
<DT><U>Function:</U> void <B>rl_reset_after_signal</B> <I>(void)</I>
<DD>This will reinitialize the terminal and reinstall any Readline signal
@@ -4196,7 +4253,7 @@ Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
is received.
</P><P>
-<A NAME="IDX316"></A>
+<A NAME="IDX322"></A>
<DL>
<DT><U>Function:</U> void <B>rl_echo_signal_char</B> <I>(int sig)</I>
<DD>If an application wishes to install its own signal handlers, but still
@@ -4206,14 +4263,14 @@ function with <VAR>sig</VAR> set to <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, o
</DL>
</P><P>
-<A NAME="IDX317"></A>
+<A NAME="IDX323"></A>
<DL>
<DT><U>Function:</U> void <B>rl_resize_terminal</B> <I>(void)</I>
<DD>Update Readline's internal screen size by reading values from the kernel.
</DL>
</P><P>
-<A NAME="IDX318"></A>
+<A NAME="IDX324"></A>
<DL>
<DT><U>Function:</U> void <B>rl_set_screen_size</B> <I>(int rows, int cols)</I>
<DD>Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
@@ -4227,7 +4284,7 @@ is still interested in the screen dimensions, Readline's idea of the screen
size may be queried.
</P><P>
-<A NAME="IDX319"></A>
+<A NAME="IDX325"></A>
<DL>
<DT><U>Function:</U> void <B>rl_get_screen_size</B> <I>(int *rows, int *cols)</I>
<DD>Return Readline's idea of the terminal's size in the
@@ -4235,7 +4292,7 @@ variables pointed to by the arguments.
</DL>
</P><P>
-<A NAME="IDX320"></A>
+<A NAME="IDX326"></A>
<DL>
<DT><U>Function:</U> void <B>rl_reset_screen_size</B> <I>(void)</I>
<DD>Cause Readline to reobtain the screen size and recalculate its dimensions.
@@ -4245,7 +4302,7 @@ variables pointed to by the arguments.
The following functions install and remove Readline's signal handlers.
</P><P>
-<A NAME="IDX321"></A>
+<A NAME="IDX327"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_signals</B> <I>(void)</I>
<DD>Install Readline's signal handler for <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>,
@@ -4255,7 +4312,7 @@ The following functions install and remove Readline's signal handlers.
</DL>
</P><P>
-<A NAME="IDX322"></A>
+<A NAME="IDX328"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_signals</B> <I>(void)</I>
<DD>Remove all of the Readline signal handlers installed by
@@ -4368,7 +4425,7 @@ Such a generator function is referred to as an
</OL>
<P>
-<A NAME="IDX323"></A>
+<A NAME="IDX329"></A>
<DL>
<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
<DD>Complete the word at or before point. You have supplied the function
@@ -4377,7 +4434,7 @@ that does the initial simple matching selection algorithm (see
</DL>
</P><P>
-<A NAME="IDX324"></A>
+<A NAME="IDX330"></A>
<DL>
<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
<DD>This is a pointer to the generator function for
@@ -4413,7 +4470,7 @@ Here is the complete list of callable completion functions present in
Readline.
</P><P>
-<A NAME="IDX325"></A>
+<A NAME="IDX331"></A>
<DL>
<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
<DD>Complete the word at or before point. <VAR>what_to_do</VAR> says what to do
@@ -4427,7 +4484,7 @@ a common prefix.
</DL>
</P><P>
-<A NAME="IDX326"></A>
+<A NAME="IDX332"></A>
<DL>
<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
<DD>Complete the word at or before point. You have supplied the function
@@ -4439,7 +4496,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX327"></A>
+<A NAME="IDX333"></A>
<DL>
<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key)</I>
<DD>List the possible completions. See description of <CODE>rl_complete
@@ -4448,7 +4505,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX328"></A>
+<A NAME="IDX334"></A>
<DL>
<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key)</I>
<DD>Insert the list of possible completions into the line, deleting the
@@ -4457,7 +4514,7 @@ This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SA
</DL>
</P><P>
-<A NAME="IDX329"></A>
+<A NAME="IDX335"></A>
<DL>
<DT><U>Function:</U> int <B>rl_completion_mode</B> <I>(rl_command_func_t *cfunc)</I>
<DD>Returns the apppriate value to pass to <CODE>rl_complete_internal()</CODE>
@@ -4469,7 +4526,7 @@ the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX330"></A>
+<A NAME="IDX336"></A>
<DL>
<DT><U>Function:</U> char ** <B>rl_completion_matches</B> <I>(const char *text, rl_compentry_func_t *entry_func)</I>
<DD>Returns an array of strings which is a list of completions for
@@ -4487,7 +4544,7 @@ when there are no more matches.
</DL>
</P><P>
-<A NAME="IDX331"></A>
+<A NAME="IDX337"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_filename_completion_function</B> <I>(const char *text, int state)</I>
<DD>A generator function for filename completion in the general case.
@@ -4498,7 +4555,7 @@ Readline functions).
</DL>
</P><P>
-<A NAME="IDX332"></A>
+<A NAME="IDX338"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_username_completion_function</B> <I>(const char *text, int state)</I>
<DD>A completion generator for usernames. <VAR>text</VAR> contains a partial
@@ -4526,7 +4583,7 @@ for subsequent calls.
<!--docid::SEC47::-->
<P>
-<A NAME="IDX333"></A>
+<A NAME="IDX339"></A>
<DL>
<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
<DD>A pointer to the generator function for <CODE>rl_completion_matches()</CODE>.
@@ -4535,7 +4592,7 @@ the default filename completer.
</DL>
</P><P>
-<A NAME="IDX334"></A>
+<A NAME="IDX340"></A>
<DL>
<DT><U>Variable:</U> rl_completion_func_t * <B>rl_attempted_completion_function</B>
<DD>A pointer to an alternative function to create matches.
@@ -4552,7 +4609,7 @@ completion even if this function returns no matches.
</DL>
</P><P>
-<A NAME="IDX335"></A>
+<A NAME="IDX341"></A>
<DL>
<DT><U>Variable:</U> rl_quote_func_t * <B>rl_filename_quoting_function</B>
<DD>A pointer to a function that will quote a filename in an
@@ -4569,7 +4626,7 @@ to reset this character.
</DL>
</P><P>
-<A NAME="IDX336"></A>
+<A NAME="IDX342"></A>
<DL>
<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_dequoting_function</B>
<DD>A pointer to a function that will remove application-specific quoting
@@ -4582,7 +4639,7 @@ that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
</DL>
</P><P>
-<A NAME="IDX337"></A>
+<A NAME="IDX343"></A>
<DL>
<DT><U>Variable:</U> rl_linebuf_func_t * <B>rl_char_is_quoted_p</B>
<DD>A pointer to a function to call that determines whether or not a specific
@@ -4595,7 +4652,7 @@ used to break words for the completer.
</DL>
</P><P>
-<A NAME="IDX338"></A>
+<A NAME="IDX344"></A>
<DL>
<DT><U>Variable:</U> rl_compignore_func_t * <B>rl_ignore_some_completions_function</B>
<DD>This function, if defined, is called by the completer when real filename
@@ -4608,7 +4665,7 @@ from the array must be freed.
</DL>
</P><P>
-<A NAME="IDX339"></A>
+<A NAME="IDX345"></A>
<DL>
<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_completion_hook</B>
<DD>This function, if defined, is allowed to modify the directory portion
@@ -4627,7 +4684,26 @@ be passed directly to <CODE>opendir()</CODE>.
</DL>
</P><P>
-<A NAME="IDX340"></A>
+<A NAME="IDX346"></A>
+<DL>
+<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_rewrite_hook</B>
+<DD>If non-zero, this is the address of a function called when reading
+directory entries from the filesystem for completion and comparing
+them to the partial word to be completed. The function should
+perform any necesary application or system-specific conversion on
+the filename, such as converting between character sets or converting
+from a filesystem format to a character input format.
+The function takes two arguments: <VAR>fname</VAR>, the filename to be converted,
+and <VAR>fnlen</VAR>, its length in bytes.
+It must either return its first argument (if no conversion takes place)
+or the converted filename in newly-allocated memory. The converted
+form is used to compare against the word to be completed, and, if it
+matches, is added to the list of matches. Readline will free the
+allocated string.
+</DL>
+</P><P>
+
+<A NAME="IDX347"></A>
<DL>
<DT><U>Variable:</U> rl_compdisp_func_t * <B>rl_completion_display_matches_hook</B>
<DD>If non-zero, then this is the address of a function to call when
@@ -4644,7 +4720,7 @@ function may be called from this hook.
</DL>
</P><P>
-<A NAME="IDX341"></A>
+<A NAME="IDX348"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_basic_word_break_characters</B>
<DD>The basic list of characters that signal a break between words for the
@@ -4654,14 +4730,14 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX342"></A>
+<A NAME="IDX349"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_basic_quote_characters</B>
<DD>A list of quote characters which can cause a word break.
</DL>
</P><P>
-<A NAME="IDX343"></A>
+<A NAME="IDX350"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_completer_word_break_characters</B>
<DD>The list of characters that signal a break between words for
@@ -4670,7 +4746,7 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX344"></A>
+<A NAME="IDX351"></A>
<DL>
<DT><U>Variable:</U> rl_cpvfunc_t * <B>rl_completion_word_break_hook</B>
<DD>If non-zero, this is the address of a function to call when Readline is
@@ -4682,7 +4758,7 @@ returns <CODE>NULL</CODE>, <CODE>rl_completer_word_break_characters</CODE> is us
</DL>
</P><P>
-<A NAME="IDX345"></A>
+<A NAME="IDX352"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_completer_quote_characters</B>
<DD>A list of characters which can be used to quote a substring of the line.
@@ -4692,7 +4768,7 @@ unless they also appear within this list.
</DL>
</P><P>
-<A NAME="IDX346"></A>
+<A NAME="IDX353"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_filename_quote_characters</B>
<DD>A list of characters that cause a filename to be quoted by the completer
@@ -4700,7 +4776,7 @@ when they appear in a completed filename. The default is the null string.
</DL>
</P><P>
-<A NAME="IDX347"></A>
+<A NAME="IDX354"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_special_prefixes</B>
<DD>The list of characters that are word break characters, but should be
@@ -4711,7 +4787,7 @@ shell variables and hostnames.
</DL>
</P><P>
-<A NAME="IDX348"></A>
+<A NAME="IDX355"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_query_items</B>
<DD>Up to this many items will be displayed in response to a
@@ -4721,7 +4797,7 @@ indicates that Readline should never ask the user.
</DL>
</P><P>
-<A NAME="IDX349"></A>
+<A NAME="IDX356"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_append_character</B>
<DD>When a single completion alternative matches at the end of the command
@@ -4734,7 +4810,7 @@ an application-specific command line syntax specification.
</DL>
</P><P>
-<A NAME="IDX350"></A>
+<A NAME="IDX357"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_suppress_append</B>
<DD>If non-zero, <VAR>rl_completion_append_character</VAR> is not appended to
@@ -4744,7 +4820,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX351"></A>
+<A NAME="IDX358"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_quote_character</B>
<DD>When Readline is completing quoted text, as delimited by one of the
@@ -4754,7 +4830,7 @@ This is set before any application-specific completion function is called.
</DL>
</P><P>
-<A NAME="IDX352"></A>
+<A NAME="IDX359"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_suppress_quote</B>
<DD>If non-zero, Readline does not append a matching quote character when
@@ -4764,7 +4840,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX353"></A>
+<A NAME="IDX360"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_found_quote</B>
<DD>When Readline is completing quoted text, it sets this variable
@@ -4774,7 +4850,7 @@ This is set before any application-specific completion function is called.
</DL>
</P><P>
-<A NAME="IDX354"></A>
+<A NAME="IDX361"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_mark_symlink_dirs</B>
<DD>If non-zero, a slash will be appended to completed filenames that are
@@ -4789,7 +4865,7 @@ function modifies the value, the user's preferences are honored.
</DL>
</P><P>
-<A NAME="IDX355"></A>
+<A NAME="IDX362"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
<DD>If non-zero, then duplicates in the matches are removed.
@@ -4797,7 +4873,7 @@ The default is 1.
</DL>
</P><P>
-<A NAME="IDX356"></A>
+<A NAME="IDX363"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
<DD>Non-zero means that the results of the matches are to be treated as
@@ -4811,7 +4887,7 @@ characters in <CODE>rl_filename_quote_characters</CODE> and
</DL>
</P><P>
-<A NAME="IDX357"></A>
+<A NAME="IDX364"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
<DD>Non-zero means that the results of the matches are to be quoted using
@@ -4825,7 +4901,7 @@ by <CODE>rl_filename_quoting_function</CODE>.
</DL>
</P><P>
-<A NAME="IDX358"></A>
+<A NAME="IDX365"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
<DD>If an application-specific completion function assigned to
@@ -4836,7 +4912,7 @@ It should be set only by an application's completion function.
</DL>
</P><P>
-<A NAME="IDX359"></A>
+<A NAME="IDX366"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_sort_completion_matches</B>
<DD>If an application sets this variable to 0, Readline will not sort the
@@ -4848,7 +4924,7 @@ matches.
</DL>
</P><P>
-<A NAME="IDX360"></A>
+<A NAME="IDX367"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_type</B>
<DD>Set to a character describing the type of completion Readline is currently
@@ -4860,7 +4936,7 @@ the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX361"></A>
+<A NAME="IDX368"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_invoking_key</B>
<DD>Set to the final character in the key sequence that invoked one of the
@@ -4870,7 +4946,7 @@ function is called.
</DL>
</P><P>
-<A NAME="IDX362"></A>
+<A NAME="IDX369"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
<DD>If this variable is non-zero, completion is inhibited. The completion
@@ -6017,7 +6093,7 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">notation, readline</A></TD><TD valign=top><A HREF="rlman.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX182">readline, function</A></TD><TD valign=top><A HREF="rlman.html#SEC24">2.1 Basic Behavior</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX187">readline, function</A></TD><TD valign=top><A HREF="rlman.html#SEC24">2.1 Basic Behavior</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX4">variables, readline</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
@@ -6109,403 +6185,410 @@ to permit their use in free software.
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX149"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX150"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX47"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX152"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX153"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX48"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX49"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX37"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX38"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX75"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX39"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX76"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX99"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX77"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX100"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX101"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX108"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX41"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX109"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX42"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX53"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX43"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX54"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX31"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX55"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX32"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX33"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX5">bell-style</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX6">bind-tty-special-chars</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX145"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX146"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX93"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX148"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX149"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX94"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX165"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX166"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX167"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX168"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX43"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX95"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX168"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX169"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX170"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX171"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX44"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX45"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX7">comment-begin</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX131"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX132"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX133"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX8">completion-prefix-display-length</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX9">completion-query-items</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX10">convert-meta</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX119"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX120"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX121"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX121"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX122"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX117"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX123"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX118"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX119"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX73"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX74"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX139"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX140"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX113"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX75"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX142"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX143"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX114"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX127"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX115"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX128"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX129"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX11">disable-completion</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX151"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX152"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX91"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX154"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX155"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX92"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX171"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX172"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX175"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX176"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX173"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX174"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX93"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX176"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX177"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX180"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX181"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX178"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX12">editing-mode</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX177"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX178"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX182"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX183"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX13">enable-keypad</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX143"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX144"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX55"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX146"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX147"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX56"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX33"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX57"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX34"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX163"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX164"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX35"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX166"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX167"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX14">expand-tilde</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX77"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX78"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX35"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX79"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX36"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX59"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX37"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX60"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX39"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX61"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX40"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX41"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX15">history-preserve-point</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX67"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX68"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX65"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX69"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX66"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX67"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX16">history-size</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX17">horizontal-scroll-mode</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX18">input-meta</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX169"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX170"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX135"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX174"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX175"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX136"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX137"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX20">isearch-terminators</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX21">keymap</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX97"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX98"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX115"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX99"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX116"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX103"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX117"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX104"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX105"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX105"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX106"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX22">mark-modified-lines</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX23">mark-symlinked-directories</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX24">match-hidden-files</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX137"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX138"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX139"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX140"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX141"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX19">meta-flag</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX51"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX52"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX63"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX53"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX64"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX61"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX65"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX62"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX63"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX25">output-meta</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX95"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX96"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX97"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX26">page-completions</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX133"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX134"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX153"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX154"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX49"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX135"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX156"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX157"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX50"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX51"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX79"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX80"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX81"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX147"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX148"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX181"><CODE>readline</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC24">2.1 Basic Behavior</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX45"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX150"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX151"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX186"><CODE>readline</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC24">2.1 Basic Behavior</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX46"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX57"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX47"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX58"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX59"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX27">revert-all-at-newline</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX157"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX158"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX218"><CODE>rl_add_defun</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC30">2.4.1 Naming a Function</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX253"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX194">rl_already_prompted</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX358">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX251"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX227"><CODE>rl_bind_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX229"><CODE>rl_bind_key_if_unbound</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX230"><CODE>rl_bind_key_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX228"><CODE>rl_bind_key_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX235"><CODE>rl_bind_keyseq</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX238"><CODE>rl_bind_keyseq_if_unbound</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX239"><CODE>rl_bind_keyseq_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236"><CODE>rl_bind_keyseq_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX212">rl_binding_keymap</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311">rl_catch_signals</A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX265"><CODE>rl_clear_message</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX279"><CODE>rl_clear_pending_input</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX345">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX343">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349">rl_completion_append_character</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324">rl_completion_entry_function</A></TD><TD valign=top><A HREF="rlman.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333">rl_completion_entry_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX353">rl_completion_found_quote</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX361">rl_completion_invoking_key</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX354">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX348">rl_completion_query_items</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX351">rl_completion_quote_character</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX350">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX352">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX360">rl_completion_type</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX344">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220"><CODE>rl_copy_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX272"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX262"><CODE>rl_crlf</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX271"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX210">rl_deprep_term_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX222"><CODE>rl_discard_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX190">rl_dispatching</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX193">rl_display_prompt</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX187">rl_done</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316"><CODE>rl_echo_signal_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX217">rl_editing_mode</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX185">rl_end</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX191">rl_erase_empty_line</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX206">rl_event_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX278"><CODE>rl_execute_next</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX211">rl_executing_keymap</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX213">rl_executing_macro</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX268"><CODE>rl_expand_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX215">rl_explicit_arg</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX356">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX346">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX357">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX335">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX258"><CODE>rl_forced_update_display</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_free</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX254"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX247"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX244"><CODE>rl_function_of_keyseq</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX249"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX240"><CODE>rl_generic_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX223"><CODE>rl_get_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX225"><CODE>rl_get_keymap_by_name</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX226"><CODE>rl_get_keymap_name</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_get_termcap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX276"><CODE>rl_getc</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX207">rl_getc_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX197">rl_gnu_readline_p</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX362">rl_inhibit_completion</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX270"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX200">rl_instream</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX246"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX273"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX203">rl_last_func</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195">rl_library_version</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX183">rl_line_buffer</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_macro_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302"><CODE>rl_macro_dumper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX219"><CODE>rl_make_bare_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX221"><CODE>rl_make_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX186">rl_mark</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX264"><CODE>rl_message</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX256"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243"><CODE>rl_named_function</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX188">rl_num_chars_to_read</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216">rl_numeric_arg</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><CODE>rl_on_new_line</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX260"><CODE>rl_on_new_line_with_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX201">rl_outstream</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX241"><CODE>rl_parse_and_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX189">rl_pending_input</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX184">rl_point</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX205">rl_pre_input_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX202">rl_prefer_env_winsize</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX209">rl_prep_term_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX281"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX192">rl_prompt</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX274"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX242"><CODE>rl_read_init_file</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX275"><CODE>rl_read_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX199">rl_readline_name</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX214">rl_readline_state</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX196">rl_readline_version</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><CODE>rl_redisplay</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX208">rl_redisplay_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><CODE>rl_reset_line_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320"><CODE>rl_reset_screen_size</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX267"><CODE>rl_restore_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_restore_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_save_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_save_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX237"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX280"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX224"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX269"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_show_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX359">rl_sort_completion_matches</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX347">rl_special_prefixes</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX204">rl_startup_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX277"><CODE>rl_stuff_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX198">rl_terminal_name</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX283"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_tty_unset_default_bindings</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX234"><CODE>rl_unbind_command_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX233"><CODE>rl_unbind_function_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX231"><CODE>rl_unbind_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX232"><CODE>rl_unbind_key_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_variable_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>rl_variable_dumper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_variable_value</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX160"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX161"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX223"><CODE>rl_add_defun</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC30">2.4.1 Naming a Function</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX256"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX199">rl_already_prompted</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX365">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX348">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX233"><CODE>rl_bind_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX235"><CODE>rl_bind_key_if_unbound</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236"><CODE>rl_bind_key_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX234"><CODE>rl_bind_key_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX241"><CODE>rl_bind_keyseq</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX244"><CODE>rl_bind_keyseq_if_unbound</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245"><CODE>rl_bind_keyseq_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX242"><CODE>rl_bind_keyseq_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX217">rl_binding_keymap</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317">rl_catch_signals</A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX343">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX271"><CODE>rl_clear_message</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_clear_pending_input</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX352">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX350">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX356">rl_completion_append_character</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX347">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330">rl_completion_entry_function</A></TD><TD valign=top><A HREF="rlman.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339">rl_completion_entry_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX360">rl_completion_found_quote</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX368">rl_completion_invoking_key</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX361">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX335"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355">rl_completion_query_items</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX358">rl_completion_quote_character</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX357">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX359">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX367">rl_completion_type</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX351">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX225"><CODE>rl_copy_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX278"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX268"><CODE>rl_crlf</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX277"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX215">rl_deprep_term_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX345">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX227"><CODE>rl_discard_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195">rl_dispatching</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX198">rl_display_prompt</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX192">rl_done</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_echo_signal_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX222">rl_editing_mode</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX190">rl_end</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX258"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX196">rl_erase_empty_line</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX211">rl_event_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_execute_next</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216">rl_executing_keymap</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX218">rl_executing_macro</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX274"><CODE>rl_expand_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220">rl_explicit_arg</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX363">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX353">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX364">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX346">rl_filename_rewrite_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX264"><CODE>rl_forced_update_display</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_free</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX228"><CODE>rl_free_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX260"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX253"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250"><CODE>rl_function_of_keyseq</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX246"><CODE>rl_generic_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX229"><CODE>rl_get_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX231"><CODE>rl_get_keymap_by_name</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX232"><CODE>rl_get_keymap_name</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_get_termcap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><CODE>rl_getc</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX212">rl_getc_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX202">rl_gnu_readline_p</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX362">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX344">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX369">rl_inhibit_completion</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX276"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX205">rl_instream</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX251"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX279"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX208">rl_last_func</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX200">rl_library_version</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX188">rl_line_buffer</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX254"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_macro_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_macro_dumper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX224"><CODE>rl_make_bare_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX226"><CODE>rl_make_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX191">rl_mark</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX270"><CODE>rl_message</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX262"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX249"><CODE>rl_named_function</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX193">rl_num_chars_to_read</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX221">rl_numeric_arg</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX265"><CODE>rl_on_new_line</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_on_new_line_with_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX206">rl_outstream</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX247"><CODE>rl_parse_and_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX194">rl_pending_input</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX189">rl_point</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX210">rl_pre_input_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX207">rl_prefer_env_winsize</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX214">rl_prep_term_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX197">rl_prompt</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX280"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248"><CODE>rl_read_init_file</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX281"><CODE>rl_read_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX204">rl_readline_name</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX219">rl_readline_state</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX201">rl_readline_version</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_redisplay</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX213">rl_redisplay_function</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX267"><CODE>rl_reset_line_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326"><CODE>rl_reset_screen_size</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX273"><CODE>rl_restore_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_restore_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX272"><CODE>rl_save_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292"><CODE>rl_save_state</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX230"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX275"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX269"><CODE>rl_show_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX366">rl_sort_completion_matches</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX354">rl_special_prefixes</A></TD><TD valign=top><A HREF="rlman.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX209">rl_startup_hook</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX283"><CODE>rl_stuff_char</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX203">rl_terminal_name</A></TD><TD valign=top><A HREF="rlman.html#SEC28">2.3 Readline Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_tty_unset_default_bindings</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX240"><CODE>rl_unbind_command_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX239"><CODE>rl_unbind_function_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX237"><CODE>rl_unbind_key</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX238"><CODE>rl_unbind_key_in_map</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_variable_bind</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_variable_dumper</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_variable_value</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX83"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX84"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX161"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX162"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX85"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX164"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX165"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX28">show-all-if-ambiguous</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX29">show-all-if-unmodified</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX141"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX142"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX30">skip-completed-text</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX172"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX173"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX144"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX145"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX81"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX82"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX159"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX160"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX85"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX83"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX162"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX163"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX86"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX87"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX87"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX88"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX89"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX155"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX156"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX129"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX158"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX159"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX130"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX111"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX131"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX112"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX101"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX113"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX102"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX109"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX103"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX110"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX89"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX111"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX90"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX91"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX180"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX30">visible-stats</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX184"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX185"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX31">visible-stats</A></TD><TD valign=top><A HREF="rlman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX123"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX124"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX71"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX125"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX72"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX69"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX73"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX70"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX125"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX71"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX126"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX127"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="rlman.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
&nbsp;
@@ -6712,7 +6795,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -6874,7 +6957,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>March, 18 2009</I>
+by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/lib/readline/doc/readline.info b/lib/readline/doc/readline.info
index bec65ef9..fdc21036 100644
--- a/lib/readline/doc/readline.info
+++ b/lib/readline/doc/readline.info
@@ -1,8 +1,8 @@
This is readline.info, produced by makeinfo version 4.13 from
./rlman.texi.
-This manual describes the GNU Readline Library (version 6.0, 28 October
-2008), a library which aids in the consistency of user interface across
+This manual describes the GNU Readline Library (version 6.1, 9 October
+2009), a library which aids in the consistency of user interface across
discrete programs which provide a command line interface.
Copyright (C) 1988-2009 Free Software Foundation, Inc.
@@ -441,11 +441,22 @@ Variable Settings
editing mode, where the keystrokes are most similar to Emacs.
This variable can be set to either `emacs' or `vi'.
+ `echo-control-characters'
+ When set to `on', on operating systems that indicate they
+ support it, readline echoes a character corresponding to a
+ signal generated from the keyboard. The default is `on'.
+
`enable-keypad'
When set to `on', Readline will try to enable the application
keypad when it is called. Some systems need this to enable
the arrow keys. The default is `off'.
+ `enable-meta-key'
+ When set to `on', Readline will try to enable any meta
+ modifier key the terminal claims to support when it is
+ called. On many terminals, the meta key is used to send
+ eight-bit characters. The default is `on'.
+
`expand-tilde'
If set to `on', tilde expansion is performed when Readline
attempts word completion. The default is `off'.
@@ -548,6 +559,19 @@ Variable Settings
be listed immediately instead of ringing the bell. The
default value is `off'.
+ `skip-completed-text'
+ If set to `on', this alters the default completion behavior
+ when inserting a single match into the line. It's only
+ active when performing completion in the middle of a word.
+ If enabled, readline does not insert characters from the
+ completion that match characters after point in the word
+ being completed, so portions of the word following the cursor
+ are not duplicated. For instance, if this is enabled,
+ attempting completion when the cursor is after the `e' in
+ `Makefile' will result in `Makefile' rather than
+ `Makefilefile', assuming there is a single possible
+ completion. The default value is `off'.
+
`visible-stats'
If set to `on', a character denoting a file's type is
appended to the filename when listing possible completions.
@@ -1162,6 +1186,11 @@ File: readline.info, Node: Commands For Completion, Next: Keyboard Macros, Pr
command is intended to be bound to <TAB>, but is unbound by
default.
+`menu-complete-backward ()'
+ Identical to `menu-complete', but moves backward through the list
+ of possible completions, as if `menu-complete' had been given a
+ negative argument.
+
`delete-char-or-list ()'
Deletes the character under the cursor if not at the beginning or
end of the line (like `delete-char'). If at the end of the line,
@@ -1238,6 +1267,15 @@ File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up:
of that character. A negative count searches for subsequent
occurrences.
+`skip-csi-sequence ()'
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
+ with a Control Sequence Indicator (CSI), usually ESC-[. If this
+ sequence is bound to "\e[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
+ This is unbound by default, but usually bound to ESC-[.
+
`insert-comment (M-#)'
Without a numeric argument, the value of the `comment-begin'
variable is inserted at the beginning of the current line. If a
@@ -1903,7 +1941,7 @@ which keymap to use.
-- Function: Keymap rl_make_bare_keymap (void)
Returns a new, empty keymap. The space for the keymap is
allocated with `malloc()'; the caller should free it by calling
- `rl_discard_keymap()' when done.
+ `rl_free_keymap()' when done.
-- Function: Keymap rl_copy_keymap (Keymap map)
Return a new keymap which is a copy of MAP.
@@ -1915,7 +1953,12 @@ which keymap to use.
arguments.
-- Function: void rl_discard_keymap (Keymap keymap)
- Free the storage associated with KEYMAP.
+ Free the storage associated with the data in KEYMAP. The caller
+ should free KEYMAP.
+
+ -- Function: void rl_free_keymap (Keymap keymap)
+ Free all storage associated with KEYMAP. This calls
+ `rl_discard_keymap' to free subordindate keymaps and macros.
Readline has several internal keymaps. These functions allow you to
change which keymap is active.
@@ -2930,6 +2973,21 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
from the directory name, because its result will be passed
directly to `opendir()'.
+ -- Variable: rl_dequote_func_t * rl_filename_rewrite_hook
+ If non-zero, this is the address of a function called when reading
+ directory entries from the filesystem for completion and comparing
+ them to the partial word to be completed. The function should
+ perform any necesary application or system-specific conversion on
+ the filename, such as converting between character sets or
+ converting from a filesystem format to a character input format.
+ The function takes two arguments: FNAME, the filename to be
+ converted, and FNLEN, its length in bytes. It must either return
+ its first argument (if no conversion takes place) or the converted
+ filename in newly-allocated memory. The converted form is used to
+ compare against the word to be completed, and, if it matches, is
+ added to the list of matches. Readline will free the allocated
+ string.
+
-- Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
If non-zero, then this is the address of a function to call when
completing a word would normally display the list of possible
@@ -4141,7 +4199,7 @@ Function and Variable Index
(line 45)
* delete-char (C-d): Commands For Text. (line 6)
* delete-char-or-list (): Commands For Completion.
- (line 30)
+ (line 35)
* delete-horizontal-space (): Commands For Killing.
(line 37)
* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
@@ -4151,15 +4209,15 @@ Function and Variable Index
(line 14)
* downcase-word (M-l): Commands For Text. (line 45)
* dump-functions (): Miscellaneous Commands.
- (line 61)
+ (line 70)
* dump-macros (): Miscellaneous Commands.
- (line 73)
+ (line 82)
* dump-variables (): Miscellaneous Commands.
- (line 67)
+ (line 76)
* editing-mode: Readline Init File Syntax.
(line 85)
* enable-keypad: Readline Init File Syntax.
- (line 91)
+ (line 96)
* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
* end-of-history (M->): Commands For History.
(line 22)
@@ -4167,32 +4225,32 @@ Function and Variable Index
* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
(line 36)
* expand-tilde: Readline Init File Syntax.
- (line 96)
+ (line 107)
* forward-backward-delete-char (): Commands For Text. (line 15)
* forward-char (C-f): Commands For Moving. (line 12)
* forward-search-history (C-s): Commands For History.
(line 30)
* forward-word (M-f): Commands For Moving. (line 18)
* history-preserve-point: Readline Init File Syntax.
- (line 100)
+ (line 111)
* history-search-backward (): Commands For History.
(line 50)
* history-search-forward (): Commands For History.
(line 45)
* history-size: Readline Init File Syntax.
- (line 106)
+ (line 117)
* horizontal-scroll-mode: Readline Init File Syntax.
- (line 111)
+ (line 122)
* input-meta: Readline Init File Syntax.
- (line 118)
+ (line 129)
* insert-comment (M-#): Miscellaneous Commands.
- (line 51)
+ (line 60)
* insert-completions (M-*): Commands For Completion.
(line 14)
* isearch-terminators: Readline Init File Syntax.
- (line 125)
+ (line 136)
* keymap: Readline Init File Syntax.
- (line 132)
+ (line 143)
* kill-line (C-k): Commands For Killing.
(line 6)
* kill-region (): Commands For Killing.
@@ -4202,15 +4260,17 @@ Function and Variable Index
* kill-word (M-d): Commands For Killing.
(line 19)
* mark-modified-lines: Readline Init File Syntax.
- (line 145)
+ (line 156)
* mark-symlinked-directories: Readline Init File Syntax.
- (line 150)
+ (line 161)
* match-hidden-files: Readline Init File Syntax.
- (line 155)
+ (line 166)
* menu-complete (): Commands For Completion.
(line 18)
+* menu-complete-backward (): Commands For Completion.
+ (line 30)
* meta-flag: Readline Init File Syntax.
- (line 118)
+ (line 129)
* next-history (C-n): Commands For History.
(line 16)
* non-incremental-forward-search-history (M-n): Commands For History.
@@ -4218,10 +4278,10 @@ Function and Variable Index
* non-incremental-reverse-search-history (M-p): Commands For History.
(line 35)
* output-meta: Readline Init File Syntax.
- (line 162)
+ (line 173)
* overwrite-mode (): Commands For Text. (line 53)
* page-completions: Readline Init File Syntax.
- (line 167)
+ (line 178)
* possible-completions (M-?): Commands For Completion.
(line 11)
* prefix-meta (<ESC>): Miscellaneous Commands.
@@ -4236,7 +4296,7 @@ Function and Variable Index
* reverse-search-history (C-r): Commands For History.
(line 26)
* revert-all-at-newline: Readline Init File Syntax.
- (line 177)
+ (line 188)
* revert-line (M-r): Miscellaneous Commands.
(line 25)
* rl_add_defun: Function Naming. (line 20)
@@ -4248,11 +4308,11 @@ Function and Variable Index
* rl_attempted_completion_function: Completion Variables.
(line 12)
* rl_attempted_completion_over: Completion Variables.
- (line 210)
+ (line 225)
* rl_basic_quote_characters: Completion Variables.
- (line 99)
+ (line 114)
* rl_basic_word_break_characters: Completion Variables.
- (line 93)
+ (line 108)
* rl_begin_undo_group: Allowing Undoing. (line 29)
* rl_bind_key: Binding Keys. (line 22)
* rl_bind_key_if_unbound: Binding Keys. (line 32)
@@ -4285,39 +4345,39 @@ Function and Variable Index
* rl_complete_internal: Completion Functions.
(line 10)
* rl_completer_quote_characters: Completion Variables.
- (line 116)
+ (line 131)
* rl_completer_word_break_characters: Completion Variables.
- (line 102)
+ (line 117)
* rl_completion_append_character: Completion Variables.
- (line 140)
+ (line 155)
* rl_completion_display_matches_hook: Completion Variables.
- (line 80)
+ (line 95)
* rl_completion_entry_function <1>: How Completing Works.
(line 55)
* rl_completion_entry_function: Completion Variables.
(line 7)
* rl_completion_found_quote: Completion Variables.
- (line 168)
+ (line 183)
* rl_completion_invoking_key: Completion Variables.
- (line 233)
+ (line 248)
* rl_completion_mark_symlink_dirs: Completion Variables.
- (line 175)
+ (line 190)
* rl_completion_matches: Completion Functions.
(line 45)
* rl_completion_mode: Completion Functions.
(line 37)
* rl_completion_query_items: Completion Variables.
- (line 134)
+ (line 149)
* rl_completion_quote_character: Completion Variables.
- (line 156)
+ (line 171)
* rl_completion_suppress_append: Completion Variables.
- (line 150)
+ (line 165)
* rl_completion_suppress_quote: Completion Variables.
- (line 162)
+ (line 177)
* rl_completion_type: Completion Variables.
- (line 225)
+ (line 240)
* rl_completion_word_break_hook: Completion Variables.
- (line 107)
+ (line 122)
* rl_copy_keymap: Keymaps. (line 17)
* rl_copy_text: Modifying Text. (line 15)
* rl_crlf: Redisplay. (line 30)
@@ -4347,19 +4407,22 @@ Function and Variable Index
* rl_explicit_arg: Readline Variables. (line 261)
* rl_extend_line_buffer: Utility Functions. (line 27)
* rl_filename_completion_desired: Completion Variables.
- (line 190)
+ (line 205)
* rl_filename_completion_function: Completion Functions.
(line 59)
* rl_filename_dequoting_function: Completion Variables.
(line 37)
* rl_filename_quote_characters: Completion Variables.
- (line 122)
+ (line 137)
* rl_filename_quoting_desired: Completion Variables.
- (line 200)
+ (line 215)
* rl_filename_quoting_function: Completion Variables.
(line 24)
+* rl_filename_rewrite_hook: Completion Variables.
+ (line 80)
* rl_forced_update_display: Redisplay. (line 11)
* rl_free: Utility Functions. (line 18)
+* rl_free_keymap: Keymaps. (line 30)
* rl_free_line_state: Readline Signal Handling.
(line 72)
* rl_free_undo_list: Allowing Undoing. (line 45)
@@ -4370,9 +4433,9 @@ Function and Variable Index
* rl_funmap_names: Associating Function Names and Bindings.
(line 40)
* rl_generic_bind: Binding Keys. (line 89)
-* rl_get_keymap: Keymaps. (line 32)
-* rl_get_keymap_by_name: Keymaps. (line 38)
-* rl_get_keymap_name: Keymaps. (line 43)
+* rl_get_keymap: Keymaps. (line 37)
+* rl_get_keymap_by_name: Keymaps. (line 43)
+* rl_get_keymap_name: Keymaps. (line 48)
* rl_get_screen_size: Readline Signal Handling.
(line 108)
* rl_get_termcap: Miscellaneous Functions.
@@ -4381,11 +4444,11 @@ Function and Variable Index
* rl_getc_function: Readline Variables. (line 130)
* rl_gnu_readline_p: Readline Variables. (line 83)
* rl_ignore_completion_duplicates: Completion Variables.
- (line 186)
+ (line 201)
* rl_ignore_some_completions_function: Completion Variables.
(line 56)
* rl_inhibit_completion: Completion Variables.
- (line 239)
+ (line 254)
* rl_initialize: Utility Functions. (line 31)
* rl_insert_completions: Completion Functions.
(line 32)
@@ -4450,7 +4513,7 @@ Function and Variable Index
* rl_save_state: Utility Functions. (line 7)
* rl_set_key: Binding Keys. (line 73)
* rl_set_keyboard_input_timeout: Character Input. (line 35)
-* rl_set_keymap: Keymaps. (line 35)
+* rl_set_keymap: Keymaps. (line 40)
* rl_set_paren_blink_timeout: Miscellaneous Functions.
(line 37)
* rl_set_prompt: Redisplay. (line 78)
@@ -4460,9 +4523,9 @@ Function and Variable Index
(line 119)
* rl_show_char: Redisplay. (line 33)
* rl_sort_completion_matches: Completion Variables.
- (line 217)
+ (line 232)
* rl_special_prefixes: Completion Variables.
- (line 127)
+ (line 142)
* rl_startup_hook: Readline Variables. (line 115)
* rl_stuff_char: Character Input. (line 19)
* rl_terminal_name: Readline Variables. (line 87)
@@ -4484,9 +4547,13 @@ Function and Variable Index
* set-mark (C-@): Miscellaneous Commands.
(line 32)
* show-all-if-ambiguous: Readline Init File Syntax.
- (line 183)
+ (line 194)
* show-all-if-unmodified: Readline Init File Syntax.
- (line 189)
+ (line 200)
+* skip-completed-text: Readline Init File Syntax.
+ (line 209)
+* skip-csi-sequence (): Miscellaneous Commands.
+ (line 51)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* transpose-chars (C-t): Commands For Text. (line 30)
* transpose-words (M-t): Commands For Text. (line 36)
@@ -4501,7 +4568,7 @@ Function and Variable Index
(line 28)
* upcase-word (M-u): Commands For Text. (line 41)
* visible-stats: Readline Init File Syntax.
- (line 198)
+ (line 222)
* yank (C-y): Commands For Killing.
(line 59)
* yank-last-arg (M-. or M-_): Commands For History.
@@ -4514,57 +4581,57 @@ Function and Variable Index

Tag Table:
-Node: Top1285
-Node: Command Line Editing1942
-Node: Introduction and Notation2594
-Node: Readline Interaction4217
-Node: Readline Bare Essentials5409
-Node: Readline Movement Commands7199
-Node: Readline Killing Commands8165
-Node: Readline Arguments10086
-Node: Searching11131
-Node: Readline Init File13283
-Node: Readline Init File Syntax14437
-Node: Conditional Init Constructs27390
-Node: Sample Init File29924
-Node: Bindable Readline Commands33042
-Node: Commands For Moving34100
-Node: Commands For History34962
-Node: Commands For Text38087
-Node: Commands For Killing40814
-Node: Numeric Arguments42957
-Node: Commands For Completion44097
-Node: Keyboard Macros45642
-Node: Miscellaneous Commands46214
-Node: Readline vi Mode49576
-Node: Programming with GNU Readline51400
-Node: Basic Behavior52386
-Node: Custom Functions55803
-Node: Readline Typedefs57287
-Node: Function Writing58926
-Node: Readline Variables60233
-Node: Readline Convenience Functions70899
-Node: Function Naming71889
-Node: Keymaps73151
-Node: Binding Keys74923
-Node: Associating Function Names and Bindings79470
-Node: Allowing Undoing81755
-Node: Redisplay84305
-Node: Modifying Text88205
-Node: Character Input89451
-Node: Terminal Management91349
-Node: Utility Functions92785
-Node: Miscellaneous Functions95876
-Node: Alternate Interface98173
-Node: A Readline Example100332
-Node: Readline Signal Handling102235
-Node: Custom Completers108423
-Node: How Completing Works109143
-Node: Completion Functions112457
-Node: Completion Variables116029
-Node: A Short Completion Example129134
-Node: GNU Free Documentation License141913
-Node: Concept Index167106
-Node: Function and Variable Index168627
+Node: Top1284
+Node: Command Line Editing1941
+Node: Introduction and Notation2593
+Node: Readline Interaction4216
+Node: Readline Bare Essentials5408
+Node: Readline Movement Commands7198
+Node: Readline Killing Commands8164
+Node: Readline Arguments10085
+Node: Searching11130
+Node: Readline Init File13282
+Node: Readline Init File Syntax14436
+Node: Conditional Init Constructs28642
+Node: Sample Init File31176
+Node: Bindable Readline Commands34294
+Node: Commands For Moving35352
+Node: Commands For History36214
+Node: Commands For Text39339
+Node: Commands For Killing42066
+Node: Numeric Arguments44209
+Node: Commands For Completion45349
+Node: Keyboard Macros47087
+Node: Miscellaneous Commands47659
+Node: Readline vi Mode51516
+Node: Programming with GNU Readline53340
+Node: Basic Behavior54326
+Node: Custom Functions57743
+Node: Readline Typedefs59227
+Node: Function Writing60866
+Node: Readline Variables62173
+Node: Readline Convenience Functions72839
+Node: Function Naming73829
+Node: Keymaps75091
+Node: Binding Keys77084
+Node: Associating Function Names and Bindings81631
+Node: Allowing Undoing83916
+Node: Redisplay86466
+Node: Modifying Text90366
+Node: Character Input91612
+Node: Terminal Management93510
+Node: Utility Functions94946
+Node: Miscellaneous Functions98037
+Node: Alternate Interface100334
+Node: A Readline Example102493
+Node: Readline Signal Handling104396
+Node: Custom Completers110584
+Node: How Completing Works111304
+Node: Completion Functions114618
+Node: Completion Variables118190
+Node: A Short Completion Example132204
+Node: GNU Free Documentation License144983
+Node: Concept Index170176
+Node: Function and Variable Index171697

End Tag Table
diff --git a/lib/readline/doc/readline.ps b/lib/readline/doc/readline.ps
index cbaf2dd2..f4fa025c 100644
--- a/lib/readline/doc/readline.ps
+++ b/lib/readline/doc/readline.ps
@@ -11,7 +11,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi
%DVIPSParameters: dpi=300
-%DVIPSSource: TeX output 2009.03.18:0822
+%DVIPSSource: TeX output 2009.10.12:1010
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -3901,16 +3901,16 @@ TeXDict begin
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 75 659 a Ft(GNU)33 b(Readline)f(Library)p
-75 709 1800 17 v 936 757 a Fs(Edition)15 b(6.0,)e(for)i
-Fr(Readline)f(Library)g Fs(V)l(ersion)h(6.0.)1608 811
-y(Octob)q(er)h(2008)75 2467 y Fq(Chet)22 b(Ramey)-6 b(,)23
+75 709 1800 17 v 936 757 a Fs(Edition)15 b(6.1,)e(for)i
+Fr(Readline)f(Library)g Fs(V)l(ersion)h(6.1.)1608 811
+y(Octob)q(er)h(2009)75 2467 y Fq(Chet)22 b(Ramey)-6 b(,)23
b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 75 1512 a Fs(This)14 b(man)o(ual)g(describ)q(es)h
-(the)g(GNU)f(Readline)h(Library)f(\(v)o(ersion)g(6.0,)f(28)h(Octob)q
-(er)h(2008\),)e(a)h(library)75 1567 y(whic)o(h)19 b(aids)h(in)f(the)h
+TeXDict begin 2 1 bop 75 1512 a Fs(This)16 b(man)o(ual)f(describ)q(es)i
+(the)g(GNU)f(Readline)g(Library)g(\(v)o(ersion)f(6.1,)h(9)g(Octob)q(er)
+g(2009\),)f(a)h(library)75 1567 y(whic)o(h)j(aids)h(in)f(the)h
(consistency)f(of)g(user)h(in)o(terface)f(across)g(discrete)g(programs)
g(whic)o(h)g(pro)o(vide)g(a)75 1621 y(command)c(line)g(in)o(terface.)75
1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fp(\015)g
@@ -3973,10 +3973,10 @@ h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
827 y(1.3.1)43 b(Readline)16 b(Init)f(File)f(Syn)o(tax)9
b Fm(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23
-b Fs(4)200 882 y(1.3.2)43 b(Conditional)14 b(Init)h(Constructs)5
-b Fm(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)19
-b Fs(9)200 937 y(1.3.3)43 b(Sample)16 b(Init)f(File)7
+b Fs(4)200 882 y(1.3.2)43 b(Conditional)14 b(Init)h(Constructs)e
+Fm(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29
+b Fs(10)200 937 y(1.3.3)43 b(Sample)16 b(Init)f(File)7
b Fm(:)f(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fs(10)137 992 y(1.4)45
@@ -4003,7 +4003,7 @@ b Fs(16)200 1266 y(1.4.5)43 b(Sp)q(ecifying)16 b(Numeric)f(Argumen)o
1375 y(1.4.7)43 b(Keyb)q(oard)16 b(Macros)c Fm(:)6 b(:)h(:)g(:)h(:)f(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26
-b Fs(17)200 1430 y(1.4.8)43 b(Some)16 b(Miscellaneous)e(Commands)f
+b Fs(18)200 1430 y(1.4.8)43 b(Some)16 b(Miscellaneous)e(Commands)f
Fm(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fs(18)137 1485
y(1.5)45 b(Readline)15 b(vi)g(Mo)q(de)c Fm(:)c(:)h(:)f(:)g(:)g(:)g(:)h
@@ -4388,21 +4388,22 @@ o(ed)f(in)h(the)h(Readline)f(init)g(\014le.)36 b(Blank)20
b(lines)g(are)75 1532 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e
(a)i(`)p Fr(#)p Fs(')e(are)h(commen)o(ts.)35 b(Lines)21
b(b)q(eginning)g(with)f(a)g(`)p Fr($)p Fs(')f(indicate)75
-1587 y(conditional)12 b(constructs)i(\(see)g(Section)f(1.3.2)g
-([Conditional)e(Init)j(Constructs],)f(page)h(9\).)k(Other)c(lines)75
-1642 y(denote)h(v)m(ariable)g(settings)f(and)i(k)o(ey)f(bindings.)75
-1716 y(V)l(ariable)f(Settings)315 1771 y(Y)l(ou)20 b(can)h(mo)q(dify)f
-(the)g(run-time)g(b)q(eha)o(vior)g(of)f(Readline)i(b)o(y)f(altering)f
-(the)h(v)m(alues)g(of)315 1826 y(v)m(ariables)c(in)h(Readline)g(using)f
-(the)h Fr(set)g Fs(command)f(within)g(the)h(init)f(\014le.)25
-b(The)17 b(syn)o(tax)315 1880 y(is)e(simple:)435 1945
-y Fr(set)23 b Fk(variable)28 b(value)315 2009 y Fs(Here,)14
-b(for)f(example,)g(is)g(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)
-f(Emacs-lik)o(e)g(k)o(ey)g(binding)h(to)315 2064 y(use)i
-Fr(vi)e Fs(line)h(editing)g(commands:)435 2129 y Fr(set)23
-b(editing-mode)g(vi)315 2193 y Fs(V)l(ariable)17 b(names)g(and)h(v)m
-(alues,)g(where)f(appropriate,)g(are)g(recognized)h(without)e(regard)
-315 2248 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g
+1587 y(conditional)g(constructs)i(\(see)f(Section)h(1.3.2)e
+([Conditional)g(Init)h(Constructs],)h(page)f(10\).)36
+b(Other)75 1642 y(lines)15 b(denote)g(v)m(ariable)g(settings)f(and)h(k)
+o(ey)g(bindings.)75 1716 y(V)l(ariable)f(Settings)315
+1771 y(Y)l(ou)20 b(can)h(mo)q(dify)f(the)g(run-time)g(b)q(eha)o(vior)g
+(of)f(Readline)i(b)o(y)f(altering)f(the)h(v)m(alues)g(of)315
+1826 y(v)m(ariables)c(in)h(Readline)g(using)f(the)h Fr(set)g
+Fs(command)f(within)g(the)h(init)f(\014le.)25 b(The)17
+b(syn)o(tax)315 1880 y(is)e(simple:)435 1945 y Fr(set)23
+b Fk(variable)28 b(value)315 2009 y Fs(Here,)14 b(for)f(example,)g(is)g
+(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)f(Emacs-lik)o(e)g(k)o
+(ey)g(binding)h(to)315 2064 y(use)i Fr(vi)e Fs(line)h(editing)g
+(commands:)435 2129 y Fr(set)23 b(editing-mode)g(vi)315
+2193 y Fs(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g(where)f
+(appropriate,)g(are)g(recognized)h(without)e(regard)315
+2248 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g
(ignored.)315 2312 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g
(b)q(e)i(set)e(to)g(on)g(or)g(o\013)t(\))f(are)h(set)h(to)f(on)g(if)g
(the)h(v)m(alue)f(is)315 2367 y(n)o(ull)g(or)f(empt)o(y)l(,)h
@@ -4473,294 +4474,322 @@ b(By)12 b(default,)h(Readline)f(starts)g(up)h(in)f(Emacs)g(editing)g
(mo)q(de,)555 2378 y(where)j(the)f(k)o(eystrok)o(es)g(are)g(most)g
(similar)f(to)g(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555
2433 y(b)q(e)i(set)f(to)f(either)h(`)p Fr(emacs)p Fs(')f(or)h(`)p
-Fr(vi)p Fs('.)315 2506 y Fr(enable-keypad)555 2560 y
-Fs(When)d(set)f(to)h(`)p Fr(on)p Fs(',)e(Readline)i(will)f(try)g(to)g
-(enable)h(the)g(application)e(k)o(eypad)555 2615 y(when)k(it)e(is)h
-(called.)19 b(Some)13 b(systems)g(need)h(this)f(to)g(enable)g(the)h
-(arro)o(w)e(k)o(eys.)555 2670 y(The)j(default)g(is)g(`)p
-Fr(off)p Fs('.)p eop end
+Fr(vi)p Fs('.)315 2506 y Fr(echo-control-characters)555
+2560 y Fs(When)h(set)e(to)h(`)p Fr(on)p Fs(',)f(on)h(op)q(erating)f
+(systems)h(that)f(indicate)h(they)g(supp)q(ort)555 2615
+y(it,)g(readline)g(ec)o(ho)q(es)h(a)g(c)o(haracter)f(corresp)q(onding)h
+(to)f(a)g(signal)g(generated)555 2670 y(from)f(the)i(k)o(eyb)q(oard.)k
+(The)15 b(default)g(is)f(`)p Fr(on)p Fs('.)p eop end
%%Page: 6 10
TeXDict begin 6 9 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(6)315 149 y Fr(expand-tilde)555 204 y
-Fs(If)14 b(set)g(to)f(`)p Fr(on)p Fs(',)f(tilde)i(expansion)f(is)h(p)q
-(erformed)g(when)g(Readline)g(attempts)555 259 y(w)o(ord)h(completion.)
-k(The)c(default)g(is)f(`)p Fr(off)p Fs('.)315 348 y Fr
-(history-preserve-point)555 403 y Fs(If)21 b(set)g(to)f(`)p
-Fr(on)p Fs(',)h(the)g(history)f(co)q(de)h(attempts)f(to)g(place)h(the)g
-(p)q(oin)o(t)f(\(the)555 458 y(curren)o(t)d(cursor)h(p)q(osition\))e
-(at)h(the)h(same)f(lo)q(cation)f(on)i(eac)o(h)g(history)e(line)555
-512 y(retriev)o(ed)i(with)f Fr(previous-history)f Fs(or)i
-Fr(next-history)p Fs(.)27 b(The)18 b(default)555 567
-y(is)d(`)p Fr(off)p Fs('.)315 656 y Fr(history-size)555
-711 y Fs(Set)20 b(the)f(maxim)o(um)g(n)o(um)o(b)q(er)h(of)f(history)f
-(en)o(tries)h(sa)o(v)o(ed)g(in)g(the)h(history)555 766
-y(list.)25 b(If)17 b(set)g(to)g(zero,)g(the)g(n)o(um)o(b)q(er)h(of)f
-(en)o(tries)f(in)h(the)g(history)g(list)f(is)g(not)555
-821 y(limited.)315 910 y Fr(horizontal-scroll-mode)555
-965 y Fs(This)i(v)m(ariable)f(can)h(b)q(e)g(set)g(to)f(either)h(`)p
+(Editing)1075 b(6)315 149 y Fr(enable-keypad)555 204
+y Fs(When)12 b(set)f(to)h(`)p Fr(on)p Fs(',)e(Readline)i(will)f(try)g
+(to)g(enable)h(the)g(application)e(k)o(eypad)555 259
+y(when)k(it)e(is)h(called.)19 b(Some)13 b(systems)g(need)h(this)f(to)g
+(enable)g(the)h(arro)o(w)e(k)o(eys.)555 314 y(The)j(default)g(is)g(`)p
+Fr(off)p Fs('.)315 389 y Fr(enable-meta-key)555 444 y
+Fs(When)20 b(set)g(to)f(`)p Fr(on)p Fs(',)h(Readline)g(will)e(try)i(to)
+f(enable)h(an)o(y)g(meta)f(mo)q(di\014er)555 499 y(k)o(ey)i(the)g
+(terminal)e(claims)h(to)g(supp)q(ort)h(when)h(it)e(is)g(called.)37
+b(On)21 b(man)o(y)555 554 y(terminals,)16 b(the)i(meta)f(k)o(ey)h(is)f
+(used)h(to)f(send)h(eigh)o(t-bit)e(c)o(haracters.)27
+b(The)555 608 y(default)15 b(is)f(`)p Fr(on)p Fs('.)315
+684 y Fr(expand-tilde)555 738 y Fs(If)g(set)g(to)f(`)p
+Fr(on)p Fs(',)f(tilde)i(expansion)f(is)h(p)q(erformed)g(when)g
+(Readline)g(attempts)555 793 y(w)o(ord)h(completion.)k(The)c(default)g
+(is)f(`)p Fr(off)p Fs('.)315 869 y Fr(history-preserve-point)555
+923 y Fs(If)21 b(set)g(to)f(`)p Fr(on)p Fs(',)h(the)g(history)f(co)q
+(de)h(attempts)f(to)g(place)h(the)g(p)q(oin)o(t)f(\(the)555
+978 y(curren)o(t)d(cursor)h(p)q(osition\))e(at)h(the)h(same)f(lo)q
+(cation)f(on)i(eac)o(h)g(history)e(line)555 1033 y(retriev)o(ed)i(with)
+f Fr(previous-history)f Fs(or)i Fr(next-history)p Fs(.)27
+b(The)18 b(default)555 1088 y(is)d(`)p Fr(off)p Fs('.)315
+1163 y Fr(history-size)555 1218 y Fs(Set)20 b(the)f(maxim)o(um)g(n)o
+(um)o(b)q(er)h(of)f(history)f(en)o(tries)h(sa)o(v)o(ed)g(in)g(the)h
+(history)555 1273 y(list.)25 b(If)17 b(set)g(to)g(zero,)g(the)g(n)o(um)
+o(b)q(er)h(of)f(en)o(tries)f(in)h(the)g(history)g(list)f(is)g(not)555
+1328 y(limited.)315 1403 y Fr(horizontal-scroll-mode)555
+1458 y Fs(This)i(v)m(ariable)f(can)h(b)q(e)g(set)g(to)f(either)h(`)p
Fr(on)p Fs(')f(or)g(`)p Fr(off)p Fs('.)27 b(Setting)18
-b(it)f(to)g(`)p Fr(on)p Fs(')555 1019 y(means)c(that)f(the)i(text)e(of)
+b(it)f(to)g(`)p Fr(on)p Fs(')555 1512 y(means)c(that)f(the)i(text)e(of)
h(the)g(lines)g(b)q(eing)g(edited)g(will)f(scroll)g(horizon)o(tally)555
-1074 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g
-(than)h(the)g(width)f(of)h(the)555 1129 y(screen,)e(instead)e(of)h
+1567 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g
+(than)h(the)g(width)f(of)h(the)555 1622 y(screen,)e(instead)e(of)h
(wrapping)f(on)o(to)g(a)h(new)g(screen)h(line.)19 b(By)13
-b(default,)g(this)555 1184 y(v)m(ariable)i(is)f(set)h(to)g(`)p
-Fr(off)p Fs('.)315 1273 y Fr(input-meta)555 1328 y Fs(If)h(set)f(to)g
+b(default,)g(this)555 1677 y(v)m(ariable)i(is)f(set)h(to)g(`)p
+Fr(off)p Fs('.)315 1752 y Fr(input-meta)555 1807 y Fs(If)h(set)f(to)g
(`)p Fr(on)p Fs(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g
-(\(it)g(will)f(not)h(clear)555 1382 y(the)20 b(eigh)o(th)f(bit)g(in)h
+(\(it)g(will)f(not)h(clear)555 1862 y(the)20 b(eigh)o(th)f(bit)g(in)h
(the)g(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555
-1437 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
+1917 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
b(The)20 b(default)g(v)m(alue)g(is)g(`)p Fr(off)p Fs('.)33
-b(The)555 1492 y(name)15 b Fr(meta-flag)f Fs(is)h(a)g(synon)o(ym)g(for)
-f(this)h(v)m(ariable.)315 1581 y Fr(isearch-terminators)555
-1636 y Fs(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
-(terminate)f(an)h(incremen)o(tal)555 1691 y(searc)o(h)12
+b(The)555 1971 y(name)15 b Fr(meta-flag)f Fs(is)h(a)g(synon)o(ym)g(for)
+f(this)h(v)m(ariable.)315 2047 y Fr(isearch-terminators)555
+2101 y Fs(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
+(terminate)f(an)h(incremen)o(tal)555 2156 y(searc)o(h)12
b(without)g(subsequen)o(tly)g(executing)h(the)f(c)o(haracter)g(as)g(a)g
-(command)555 1745 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
+(command)555 2211 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
(page)f(3\).)40 b(If)23 b(this)f(v)m(ariable)f(has)h(not)555
-1800 y(b)q(een)d(giv)o(en)e(a)g(v)m(alue,)i(the)f(c)o(haracters)e
+2266 y(b)q(een)d(giv)o(en)e(a)g(v)m(alue,)i(the)f(c)o(haracters)e
Fr(ESC)i Fs(and)g Fk(C-J)f Fs(will)f(terminate)h(an)555
-1855 y(incremen)o(tal)d(searc)o(h.)315 1944 y Fr(keymap)96
+2321 y(incremen)o(tal)d(searc)o(h.)315 2396 y Fr(keymap)96
b Fs(Sets)19 b(Readline's)h(idea)f(of)g(the)g(curren)o(t)h(k)o(eymap)f
-(for)f(k)o(ey)i(binding)f(com-)555 1999 y(mands.)41 b(Acceptable)22
+(for)f(k)o(ey)i(binding)f(com-)555 2451 y(mands.)41 b(Acceptable)22
b Fr(keymap)g Fs(names)g(are)f Fr(emacs)p Fs(,)i Fr(emacs-standard)p
-Fs(,)555 2054 y Fr(emacs-meta)p Fs(,)49 b Fr(emacs-ctlx)p
+Fs(,)555 2506 y Fr(emacs-meta)p Fs(,)49 b Fr(emacs-ctlx)p
Fs(,)g Fr(vi)p Fs(,)h Fr(vi-move)p Fs(,)f Fr(vi-command)p
-Fs(,)g(and)555 2108 y Fr(vi-insert)p Fs(.)31 b Fr(vi)20
+Fs(,)g(and)555 2560 y Fr(vi-insert)p Fs(.)31 b Fr(vi)20
b Fs(is)f(equiv)m(alen)o(t)g(to)g Fr(vi-command)p Fs(;)g
-Fr(emacs)g Fs(is)g(equiv)m(alen)o(t)555 2163 y(to)c Fr(emacs-standard)p
+Fr(emacs)g Fs(is)g(equiv)m(alen)o(t)555 2615 y(to)c Fr(emacs-standard)p
Fs(.)20 b(The)d(default)e(v)m(alue)h(is)g Fr(emacs)p
-Fs(.)21 b(The)16 b(v)m(alue)g(of)g(the)555 2218 y Fr(editing-mode)e
-Fs(v)m(ariable)g(also)g(a\013ects)h(the)g(default)g(k)o(eymap.)315
-2307 y Fr(mark-directories)555 2362 y Fs(If)k(set)g(to)g(`)p
-Fr(on)p Fs(',)f(completed)h(directory)g(names)g(ha)o(v)o(e)f(a)h(slash)
-g(app)q(ended.)555 2417 y(The)c(default)g(is)g(`)p Fr(on)p
-Fs('.)315 2506 y Fr(mark-modified-lines)555 2560 y Fs(This)j(v)m
-(ariable,)f(when)i(set)e(to)h(`)p Fr(on)p Fs(',)f(causes)h(Readline)g
-(to)f(displa)o(y)g(an)h(as-)555 2615 y(terisk)e(\(`)p
-Fr(*)p Fs('\))f(at)i(the)f(start)g(of)h(history)e(lines)i(whic)o(h)f
-(ha)o(v)o(e)h(b)q(een)h(mo)q(di\014ed.)555 2670 y(This)d(v)m(ariable)f
-(is)h(`)p Fr(off)p Fs(')f(b)o(y)h(default.)p eop end
+Fs(.)21 b(The)16 b(v)m(alue)g(of)g(the)555 2670 y Fr(editing-mode)e
+Fs(v)m(ariable)g(also)g(a\013ects)h(the)g(default)g(k)o(eymap.)p
+eop end
%%Page: 7 11
TeXDict begin 7 10 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(7)315 149 y Fr(mark-symlinked-directories)555
-204 y Fs(If)23 b(set)f(to)f(`)p Fr(on)p Fs(',)i(completed)f(names)h
-(whic)o(h)f(are)g(sym)o(b)q(olic)g(links)f(to)h(di-)555
-259 y(rectories)g(ha)o(v)o(e)h(a)g(slash)f(app)q(ended)j(\(sub)s(ject)e
-(to)f(the)i(v)m(alue)f(of)g Fr(mark-)555 314 y(directories)p
-Fs(\).)18 b(The)d(default)g(is)g(`)p Fr(off)p Fs('.)315
-387 y Fr(match-hidden-files)555 442 y Fs(This)c(v)m(ariable,)g(when)g
-(set)g(to)g(`)p Fr(on)p Fs(',)f(causes)h(Readline)h(to)e(matc)o(h)h
-(\014les)g(whose)555 496 y(names)22 b(b)q(egin)g(with)g(a)f(`)p
-Fr(.)p Fs(')h(\(hidden)g(\014les\))g(when)g(p)q(erforming)g(\014lename)
-555 551 y(completion,)f(unless)g(the)g(leading)f(`)p
-Fr(.)p Fs(')g(is)g(supplied)h(b)o(y)g(the)f(user)h(in)g(the)555
-606 y(\014lename)15 b(to)g(b)q(e)h(completed.)k(This)14
-b(v)m(ariable)h(is)g(`)p Fr(on)p Fs(')f(b)o(y)h(default.)315
-679 y Fr(output-meta)555 734 y Fs(If)j(set)f(to)g(`)p
-Fr(on)p Fs(',)g(Readline)h(will)f(displa)o(y)g(c)o(haracters)f(with)i
-(the)f(eigh)o(th)g(bit)555 789 y(set)h(directly)g(rather)f(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-844 y(default)15 b(is)f(`)p Fr(off)p Fs('.)315 917 y
-Fr(page-completions)555 971 y Fs(If)j(set)g(to)f(`)p
-Fr(on)p Fs(',)g(Readline)h(uses)h(an)e(in)o(ternal)g
-Fr(more)p Fs(-lik)o(e)g(pager)h(to)f(displa)o(y)555 1026
-y(a)g(screenful)g(of)g(p)q(ossible)g(completions)f(at)h(a)g(time.)22
-b(This)16 b(v)m(ariable)f(is)h(`)p Fr(on)p Fs(')555 1081
-y(b)o(y)f(default.)315 1154 y Fr(print-completions-horizont)o(ally)555
-1209 y Fs(If)d(set)g(to)f(`)p Fr(on)p Fs(',)h(Readline)g(will)e(displa)
-o(y)i(completions)f(with)g(matc)o(hes)g(sorted)555 1264
-y(horizon)o(tally)20 b(in)h(alphab)q(etical)g(order,)i(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 1318 y(The)15 b(default)g(is)g(`)p
-Fr(off)p Fs('.)315 1391 y Fr(revert-all-at-newline)555
-1446 y Fs(If)g(set)g(to)f(`)p Fr(on)p Fs(',)f(Readline)i(will)f(undo)h
+(Editing)1075 b(7)315 149 y Fr(mark-directories)555 204
+y Fs(If)19 b(set)g(to)g(`)p Fr(on)p Fs(',)f(completed)h(directory)g
+(names)g(ha)o(v)o(e)f(a)h(slash)g(app)q(ended.)555 259
+y(The)c(default)g(is)g(`)p Fr(on)p Fs('.)315 338 y Fr
+(mark-modified-lines)555 393 y Fs(This)j(v)m(ariable,)f(when)i(set)e
+(to)h(`)p Fr(on)p Fs(',)f(causes)h(Readline)g(to)f(displa)o(y)g(an)h
+(as-)555 448 y(terisk)e(\(`)p Fr(*)p Fs('\))f(at)i(the)f(start)g(of)h
+(history)e(lines)i(whic)o(h)f(ha)o(v)o(e)h(b)q(een)h(mo)q(di\014ed.)555
+503 y(This)d(v)m(ariable)f(is)h(`)p Fr(off)p Fs(')f(b)o(y)h(default.)
+315 582 y Fr(mark-symlinked-directories)555 637 y Fs(If)23
+b(set)f(to)f(`)p Fr(on)p Fs(',)i(completed)f(names)h(whic)o(h)f(are)g
+(sym)o(b)q(olic)g(links)f(to)h(di-)555 691 y(rectories)g(ha)o(v)o(e)h
+(a)g(slash)f(app)q(ended)j(\(sub)s(ject)e(to)f(the)i(v)m(alue)f(of)g
+Fr(mark-)555 746 y(directories)p Fs(\).)18 b(The)d(default)g(is)g(`)p
+Fr(off)p Fs('.)315 825 y Fr(match-hidden-files)555 880
+y Fs(This)c(v)m(ariable,)g(when)g(set)g(to)g(`)p Fr(on)p
+Fs(',)f(causes)h(Readline)h(to)e(matc)o(h)h(\014les)g(whose)555
+935 y(names)22 b(b)q(egin)g(with)g(a)f(`)p Fr(.)p Fs(')h(\(hidden)g
+(\014les\))g(when)g(p)q(erforming)g(\014lename)555 990
+y(completion,)f(unless)g(the)g(leading)f(`)p Fr(.)p Fs(')g(is)g
+(supplied)h(b)o(y)g(the)f(user)h(in)g(the)555 1044 y(\014lename)15
+b(to)g(b)q(e)h(completed.)k(This)14 b(v)m(ariable)h(is)g(`)p
+Fr(on)p Fs(')f(b)o(y)h(default.)315 1124 y Fr(output-meta)555
+1178 y Fs(If)j(set)f(to)g(`)p Fr(on)p Fs(',)g(Readline)h(will)f(displa)
+o(y)g(c)o(haracters)f(with)i(the)f(eigh)o(th)g(bit)555
+1233 y(set)h(directly)g(rather)f(than)h(as)g(a)g(meta-pre\014xed)h
+(escap)q(e)g(sequence.)30 b(The)555 1288 y(default)15
+b(is)f(`)p Fr(off)p Fs('.)315 1367 y Fr(page-completions)555
+1422 y Fs(If)j(set)g(to)f(`)p Fr(on)p Fs(',)g(Readline)h(uses)h(an)e
+(in)o(ternal)g Fr(more)p Fs(-lik)o(e)g(pager)h(to)f(displa)o(y)555
+1477 y(a)g(screenful)g(of)g(p)q(ossible)g(completions)f(at)h(a)g(time.)
+22 b(This)16 b(v)m(ariable)f(is)h(`)p Fr(on)p Fs(')555
+1531 y(b)o(y)f(default.)315 1611 y Fr(print-completions-horizont)o
+(ally)555 1665 y Fs(If)d(set)g(to)f(`)p Fr(on)p Fs(',)h(Readline)g
+(will)e(displa)o(y)i(completions)f(with)g(matc)o(hes)g(sorted)555
+1720 y(horizon)o(tally)20 b(in)h(alphab)q(etical)g(order,)i(rather)e
+(than)g(do)o(wn)h(the)g(screen.)555 1775 y(The)15 b(default)g(is)g(`)p
+Fr(off)p Fs('.)315 1854 y Fr(revert-all-at-newline)555
+1909 y Fs(If)g(set)g(to)f(`)p Fr(on)p Fs(',)f(Readline)i(will)f(undo)h
(all)f(c)o(hanges)g(to)h(history)e(lines)i(b)q(efore)555
-1501 y(returning)f(when)h Fr(accept-line)e Fs(is)g(executed.)21
-b(By)14 b(default,)g(history)f(lines)555 1556 y(ma)o(y)20
+1964 y(returning)f(when)h Fr(accept-line)e Fs(is)g(executed.)21
+b(By)14 b(default,)g(history)f(lines)555 2019 y(ma)o(y)20
b(b)q(e)i(mo)q(di\014ed)f(and)g(retain)f(individual)g(undo)i(lists)d
-(across)i(calls)f(to)555 1611 y Fr(readline)p Fs(.)f(The)c(default)g
-(is)g(`)p Fr(off)p Fs('.)315 1684 y Fr(show-all-if-ambiguous)555
-1738 y Fs(This)g(alters)e(the)j(default)e(b)q(eha)o(vior)h(of)f(the)h
-(completion)f(functions.)20 b(If)15 b(set)555 1793 y(to)e(`)p
+(across)i(calls)f(to)555 2073 y Fr(readline)p Fs(.)f(The)c(default)g
+(is)g(`)p Fr(off)p Fs('.)315 2152 y Fr(show-all-if-ambiguous)555
+2207 y Fs(This)g(alters)e(the)j(default)e(b)q(eha)o(vior)h(of)f(the)h
+(completion)f(functions.)20 b(If)15 b(set)555 2262 y(to)e(`)p
Fr(on)p Fs(',)g(w)o(ords)g(whic)o(h)g(ha)o(v)o(e)h(more)f(than)g(one)h
-(p)q(ossible)g(completion)f(cause)555 1848 y(the)20 b(matc)o(hes)f(to)f
+(p)q(ossible)g(completion)f(cause)555 2317 y(the)20 b(matc)o(hes)f(to)f
(b)q(e)j(listed)d(immediately)g(instead)h(of)g(ringing)g(the)g(b)q
-(ell.)555 1903 y(The)c(default)g(v)m(alue)h(is)e(`)p
-Fr(off)p Fs('.)315 1976 y Fr(show-all-if-unmodified)555
-2031 y Fs(This)19 b(alters)f(the)i(default)e(b)q(eha)o(vior)h(of)g(the)
-h(completion)e(functions)h(in)g(a)555 2086 y(fashion)12
+(ell.)555 2372 y(The)c(default)g(v)m(alue)h(is)e(`)p
+Fr(off)p Fs('.)315 2451 y Fr(show-all-if-unmodified)555
+2506 y Fs(This)19 b(alters)f(the)i(default)e(b)q(eha)o(vior)h(of)g(the)
+h(completion)e(functions)h(in)g(a)555 2560 y(fashion)12
b(similar)f(to)g Fi(sho)o(w-all-if-am)o(biguous)r Fs(.)17
b(If)c(set)f(to)g(`)p Fr(on)p Fs(',)f(w)o(ords)h(whic)o(h)555
-2140 y(ha)o(v)o(e)j(more)g(than)g(one)h(p)q(ossible)f(completion)f
-(without)h(an)o(y)g(p)q(ossible)g(par-)555 2195 y(tial)20
+2615 y(ha)o(v)o(e)j(more)g(than)g(one)h(p)q(ossible)f(completion)f
+(without)h(an)o(y)g(p)q(ossible)g(par-)555 2670 y(tial)20
b(completion)g(\(the)h(p)q(ossible)g(completions)f(don't)h(share)g(a)f
-(common)555 2250 y(pre\014x\))15 b(cause)h(the)f(matc)o(hes)g(to)f(b)q
-(e)i(listed)e(immediately)g(instead)h(of)f(ring-)555
-2305 y(ing)h(the)g(b)q(ell.)20 b(The)15 b(default)g(v)m(alue)g(is)g(`)p
-Fr(off)p Fs('.)315 2378 y Fr(visible-stats)555 2433 y
-Fs(If)h(set)g(to)f(`)p Fr(on)p Fs(',)g(a)h(c)o(haracter)f(denoting)g(a)
-h(\014le's)g(t)o(yp)q(e)g(is)f(app)q(ended)j(to)d(the)555
-2487 y(\014lename)g(when)h(listing)e(p)q(ossible)h(completions.)j(The)e
-(default)f(is)f(`)p Fr(off)p Fs('.)75 2560 y(Key)i(Bindings)315
-2615 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)e(k)o(ey)i(bindings)f
-(in)h(the)g(init)f(\014le)h(is)g(simple.)37 b(First)19
-b(y)o(ou)315 2670 y(need)c(to)e(\014nd)h(the)g(name)g(of)g(the)f
-(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19
-b(The)14 b(follo)o(wing)p eop end
+(common)p eop end
%%Page: 8 12
TeXDict begin 8 11 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(8)315 149 y(sections)17 b(con)o(tain)h(tables)f(of)g
-(the)h(command)g(name,)g(the)g(default)g(k)o(eybinding,)g(if)f(an)o(y)l
-(,)315 204 y(and)e(a)g(short)g(description)g(of)f(what)h(the)g(command)
-g(do)q(es.)315 271 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)f(place)h(on)g(a)f(line)h(in)g(the)g(init)315
-326 y(\014le)f(the)g(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)h(to)f
-(bind)h(the)g(command)g(to,)f(a)g(colon,)h(and)g(then)315
-381 y(the)f(name)g(of)g(the)g(command.)22 b(There)17
+(Editing)1075 b(8)555 149 y(pre\014x\))15 b(cause)h(the)f(matc)o(hes)g
+(to)f(b)q(e)i(listed)e(immediately)g(instead)h(of)f(ring-)555
+204 y(ing)h(the)g(b)q(ell.)20 b(The)15 b(default)g(v)m(alue)g(is)g(`)p
+Fr(off)p Fs('.)315 281 y Fr(skip-completed-text)555 336
+y Fs(If)i(set)f(to)g(`)p Fr(on)p Fs(',)f(this)h(alters)f(the)i(default)
+f(completion)f(b)q(eha)o(vior)h(when)h(in-)555 391 y(serting)d(a)g
+(single)g(matc)o(h)g(in)o(to)f(the)i(line.)k(It's)14
+b(only)g(activ)o(e)g(when)h(p)q(erform-)555 445 y(ing)i(completion)f
+(in)h(the)h(middle)f(of)g(a)g(w)o(ord.)25 b(If)18 b(enabled,)g
+(readline)f(do)q(es)555 500 y(not)j(insert)g(c)o(haracters)f(from)h
+(the)g(completion)f(that)h(matc)o(h)g(c)o(haracters)555
+555 y(after)e(p)q(oin)o(t)g(in)g(the)g(w)o(ord)g(b)q(eing)h(completed,)
+g(so)f(p)q(ortions)f(of)h(the)h(w)o(ord)555 610 y(follo)o(wing)14
+b(the)h(cursor)h(are)g(not)f(duplicated.)22 b(F)l(or)15
+b(instance,)g(if)h(this)f(is)g(en-)555 665 y(abled,)21
+b(attempting)e(completion)g(when)i(the)f(cursor)g(is)g(after)g(the)g(`)
+p Fr(e)p Fs(')f(in)555 719 y(`)p Fr(Makefile)p Fs(')e(will)g(result)h
+(in)h(`)p Fr(Makefile)p Fs(')e(rather)h(than)h(`)p Fr(Makefilefile)p
+Fs(',)555 774 y(assuming)e(there)h(is)f(a)g(single)g(p)q(ossible)g
+(completion.)27 b(The)18 b(default)f(v)m(alue)555 829
+y(is)e(`)p Fr(off)p Fs('.)315 906 y Fr(visible-stats)555
+960 y Fs(If)h(set)g(to)f(`)p Fr(on)p Fs(',)g(a)h(c)o(haracter)f
+(denoting)g(a)h(\014le's)g(t)o(yp)q(e)g(is)f(app)q(ended)j(to)d(the)555
+1015 y(\014lename)g(when)h(listing)e(p)q(ossible)h(completions.)j(The)e
+(default)f(is)f(`)p Fr(off)p Fs('.)75 1092 y(Key)i(Bindings)315
+1147 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)e(k)o(ey)i(bindings)f
+(in)h(the)g(init)f(\014le)h(is)g(simple.)37 b(First)19
+b(y)o(ou)315 1201 y(need)c(to)e(\014nd)h(the)g(name)g(of)g(the)f
+(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19
+b(The)14 b(follo)o(wing)315 1256 y(sections)j(con)o(tain)h(tables)f(of)
+g(the)h(command)g(name,)g(the)g(default)g(k)o(eybinding,)g(if)f(an)o(y)
+l(,)315 1311 y(and)e(a)g(short)g(description)g(of)f(what)h(the)g
+(command)g(do)q(es.)315 1377 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g
+(of)g(the)g(command,)g(simply)f(place)h(on)g(a)f(line)h(in)g(the)g
+(init)315 1432 y(\014le)f(the)g(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f
+(wish)h(to)f(bind)h(the)g(command)g(to,)f(a)g(colon,)h(and)g(then)315
+1486 y(the)f(name)g(of)g(the)g(command.)22 b(There)17
b(can)f(b)q(e)h(no)f(space)g(b)q(et)o(w)o(een)h(the)f(k)o(ey)g(name)g
-(and)315 435 y(the)k(colon)g({)g(that)g(will)f(b)q(e)i(in)o(terpreted)f
-(as)g(part)g(of)g(the)h(k)o(ey)f(name.)35 b(The)21 b(name)f(of)315
-490 y(the)d(k)o(ey)g(can)h(b)q(e)g(expressed)g(in)f(di\013eren)o(t)f(w)
-o(a)o(ys,)h(dep)q(ending)h(on)f(what)g(y)o(ou)g(\014nd)h(most)315
-545 y(comfortable.)315 612 y(In)h(addition)e(to)g(command)h(names,)g
+(and)315 1541 y(the)k(colon)g({)g(that)g(will)f(b)q(e)i(in)o(terpreted)
+f(as)g(part)g(of)g(the)h(k)o(ey)f(name.)35 b(The)21 b(name)f(of)315
+1596 y(the)d(k)o(ey)g(can)h(b)q(e)g(expressed)g(in)f(di\013eren)o(t)f
+(w)o(a)o(ys,)h(dep)q(ending)h(on)f(what)g(y)o(ou)g(\014nd)h(most)315
+1651 y(comfortable.)315 1717 y(In)h(addition)e(to)g(command)h(names,)g
(readline)g(allo)o(ws)e(k)o(eys)i(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 666 y(that)c(is)h(inserted)g(when)h(the)f(k)o(ey)g(is)g
-(pressed)h(\(a)e Fi(macro)r Fs(\).)315 745 y Fi(k)o(eyname)s
-Fs(:)19 b Fi(function-name)f Fs(or)d Fi(macro)555 800
+(string)315 1771 y(that)c(is)h(inserted)g(when)h(the)f(k)o(ey)g(is)g
+(pressed)h(\(a)e Fi(macro)r Fs(\).)315 1848 y Fi(k)o(eyname)s
+Fs(:)19 b Fi(function-name)f Fs(or)d Fi(macro)555 1903
y(k)o(eyname)i Fs(is)d(the)g(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)h(out)
-f(in)g(English.)19 b(F)l(or)13 b(example:)675 867 y Fr(Control-u:)22
-b(universal-argument)675 921 y(Meta-Rubout:)g(backward-kill-word)675
-976 y(Control-o:)g(">)i(output")555 1043 y Fs(In)c(the)f(ab)q(o)o(v)o
-(e)g(example,)h Fk(C-u)f Fs(is)g(b)q(ound)h(to)f(the)g(function)g
-Fr(universal-)555 1098 y(argument)p Fs(,)f Fk(M-DEL)h
-Fs(is)f(b)q(ound)i(to)e(the)h(function)g Fr(backward-kill-word)p
-Fs(,)555 1152 y(and)h Fk(C-o)f Fs(is)g(b)q(ound)h(to)f(run)h(the)f
-(macro)g(expressed)h(on)g(the)f(righ)o(t)g(hand)555 1207
-y(side)c(\(that)f(is,)h(to)f(insert)h(the)g(text)g(`)p
-Fr(>)f(output)p Fs(')g(in)o(to)h(the)g(line\).)555 1274
-y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)g(c)o(haracter)g(names)g
-(are)g(recognized)h(while)f(pro-)555 1329 y(cessing)11
+f(in)g(English.)19 b(F)l(or)13 b(example:)675 1969 y
+Fr(Control-u:)22 b(universal-argument)675 2023 y(Meta-Rubout:)g
+(backward-kill-word)675 2078 y(Control-o:)g(">)i(output")555
+2144 y Fs(In)c(the)f(ab)q(o)o(v)o(e)g(example,)h Fk(C-u)f
+Fs(is)g(b)q(ound)h(to)f(the)g(function)g Fr(universal-)555
+2199 y(argument)p Fs(,)f Fk(M-DEL)h Fs(is)f(b)q(ound)i(to)e(the)h
+(function)g Fr(backward-kill-word)p Fs(,)555 2254 y(and)h
+Fk(C-o)f Fs(is)g(b)q(ound)h(to)f(run)h(the)f(macro)g(expressed)h(on)g
+(the)f(righ)o(t)g(hand)555 2308 y(side)c(\(that)f(is,)h(to)f(insert)h
+(the)g(text)g(`)p Fr(>)f(output)p Fs(')g(in)o(to)h(the)g(line\).)555
+2374 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)g(c)o(haracter)g
+(names)g(are)g(recognized)h(while)f(pro-)555 2429 y(cessing)11
b(this)f(k)o(ey)g(binding)h(syn)o(tax:)17 b Fi(DEL)p
Fs(,)10 b Fi(ESC)t Fs(,)h Fi(ESCAPE)s Fs(,)f Fi(LFD)r
-Fs(,)g Fi(NEW-)555 1384 y(LINE)s Fs(,)15 b Fi(RET)s Fs(,)h
+Fs(,)g Fi(NEW-)555 2484 y(LINE)s Fs(,)15 b Fi(RET)s Fs(,)h
Fi(RETURN)5 b Fs(,)15 b Fi(R)o(UBOUT)s Fs(,)h Fi(SP)l(A)o(CE)s
-Fs(,)e Fi(SPC)t Fs(,)h(and)g Fi(T)l(AB)s Fs(.)315 1462
+Fs(,)e Fi(SPC)t Fs(,)h(and)g Fi(T)l(AB)s Fs(.)315 2560
y Fr(")p Fi(k)o(eyseq)q Fr(")p Fs(:)20 b Fi(function-name)d
-Fs(or)e Fi(macro)555 1517 y(k)o(eyseq)i Fs(di\013ers)d(from)h
+Fs(or)e Fi(macro)555 2615 y(k)o(eyseq)i Fs(di\013ers)d(from)h
Fi(k)o(eyname)j Fs(ab)q(o)o(v)o(e)d(in)h(that)e(strings)h(denoting)g
-(an)g(en-)555 1572 y(tire)h(k)o(ey)h(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)h(b)o(y)f(placing)f(the)h(k)o(ey)g(sequence)h(in)555
-1627 y(double)d(quotes.)k(Some)c Fl(gnu)g Fs(Emacs)f(st)o(yle)g(k)o(ey)
-h(escap)q(es)g(can)g(b)q(e)g(used,)g(as)555 1681 y(in)i(the)g(follo)o
-(wing)d(example,)j(but)g(the)g(sp)q(ecial)g(c)o(haracter)f(names)h(are)
-f(not)555 1736 y(recognized.)675 1803 y Fr("\\C-u":)23
-b(universal-argument)675 1858 y("\\C-x\\C-r":)f(re-read-init-file)675
-1912 y("\\e[11~":)h("Function)f(Key)i(1")555 1979 y Fs(In)33
-b(the)f(ab)q(o)o(v)o(e)g(example,)k Fk(C-u)c Fs(is)g(again)f(b)q(ound)i
-(to)f(the)g(function)555 2034 y Fr(universal-argument)19
-b Fs(\(just)j(as)f(it)g(w)o(as)g(in)h(the)g(\014rst)f(example\),)i(`)p
-Fk(C-x)555 2089 y(C-r)p Fs(')14 b(is)h(b)q(ound)h(to)f(the)g(function)g
-Fr(re-read-init-file)p Fs(,)d(and)k(`)p Fr(ESC)e([)h(1)g(1)555
-2143 y(~)p Fs(')g(is)f(b)q(ound)j(to)d(insert)h(the)g(text)g(`)p
-Fr(Function)e(Key)i(1)p Fs('.)315 2222 y(The)g(follo)o(wing)e
-Fl(gnu)h Fs(Emacs)h(st)o(yle)f(escap)q(e)i(sequences)g(are)e(a)o(v)m
-(ailable)g(when)h(sp)q(ecifying)315 2277 y(k)o(ey)g(sequences:)315
-2356 y Fk(\\C-)168 b Fs(con)o(trol)14 b(pre\014x)315
-2434 y Fk(\\M-)168 b Fs(meta)15 b(pre\014x)315 2513 y
-Fk(\\e)192 b Fs(an)15 b(escap)q(e)h(c)o(haracter)315
-2591 y Fk(\\\\)192 b Fs(bac)o(kslash)315 2670 y Fk(\\)p
-Fr(")g(")p Fs(,)15 b(a)g(double)g(quotation)f(mark)p
+(an)g(en-)555 2670 y(tire)h(k)o(ey)h(sequence)h(can)f(b)q(e)g(sp)q
+(eci\014ed,)h(b)o(y)f(placing)f(the)h(k)o(ey)g(sequence)h(in)p
eop end
%%Page: 9 13
TeXDict begin 9 12 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(9)315 149 y Fk(\\')192 b Fr(')p Fs(,)15
-b(a)g(single)f(quote)h(or)g(ap)q(ostrophe)315 228 y(In)f(addition)f(to)
-h(the)f Fl(gnu)h Fs(Emacs)g(st)o(yle)e(escap)q(e)j(sequences,)g(a)e
-(second)i(set)e(of)h(bac)o(kslash)315 283 y(escap)q(es)i(is)f(a)o(v)m
-(ailable:)315 362 y Fr(\\a)192 b Fs(alert)14 b(\(b)q(ell\))315
-441 y Fr(\\b)192 b Fs(bac)o(kspace)315 520 y Fr(\\d)g
-Fs(delete)315 599 y Fr(\\f)g Fs(form)14 b(feed)315 678
-y Fr(\\n)192 b Fs(newline)315 757 y Fr(\\r)g Fs(carriage)14
-b(return)315 836 y Fr(\\t)192 b Fs(horizon)o(tal)14 b(tab)315
-915 y Fr(\\v)192 b Fs(v)o(ertical)14 b(tab)315 994 y
-Fr(\\)p Fk(nnn)144 b Fs(the)17 b(eigh)o(t-bit)f(c)o(haracter)h(whose)g
-(v)m(alue)h(is)e(the)i(o)q(ctal)e(v)m(alue)i Fi(nnn)g
-Fs(\(one)f(to)555 1049 y(three)e(digits\))315 1128 y
-Fr(\\x)p Fk(HH)144 b Fs(the)20 b(eigh)o(t-bit)e(c)o(haracter)h(whose)h
-(v)m(alue)g(is)f(the)h(hexadecimal)f(v)m(alue)h Fi(HH)555
-1183 y Fs(\(one)15 b(or)g(t)o(w)o(o)f(hex)h(digits\))315
-1262 y(When)k(en)o(tering)f(the)h(text)f(of)g(a)h(macro,)f(single)g(or)
-g(double)h(quotes)g(m)o(ust)f(b)q(e)h(used)h(to)315 1317
-y(indicate)10 b(a)h(macro)f(de\014nition.)18 b(Unquoted)11
-b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h(name.)18
-b(In)315 1372 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o(kslash)f
-(escap)q(es)h(describ)q(ed)h(ab)q(o)o(v)o(e)e(are)g(expanded.)20
-b(Bac)o(kslash)315 1426 y(will)f(quote)g(an)o(y)h(other)g(c)o(haracter)
-f(in)h(the)g(macro)f(text,)h(including)g(`)p Fr(")p Fs(')f(and)h(`)p
-Fr(')p Fs('.)34 b(F)l(or)315 1481 y(example,)13 b(the)g(follo)o(wing)d
-(binding)j(will)f(mak)o(e)g(`)p Fk(C-x)i Fr(\\)p Fs(')f(insert)f(a)h
-(single)f(`)p Fr(\\)p Fs(')g(in)o(to)g(the)h(line:)435
-1548 y Fr("\\C-x\\\\":)23 b("\\\\")75 1647 y Fh(1.3.2)30
-b(Conditional)20 b(Init)g(Constructs)75 1721 y Fs(Readline)f(implemen)o
-(ts)e(a)h(facilit)o(y)f(similar)f(in)i(spirit)g(to)f(the)i(conditional)
-e(compilation)f(features)i(of)75 1775 y(the)d(C)h(prepro)q(cessor)f
-(whic)o(h)g(allo)o(ws)f(k)o(ey)h(bindings)g(and)h(v)m(ariable)e
-(settings)h(to)f(b)q(e)i(p)q(erformed)g(as)f(the)75 1830
-y(result)g(of)f(tests.)20 b(There)15 b(are)g(four)g(parser)g(directiv)o
-(es)f(used.)75 1909 y Fr($if)168 b Fs(The)16 b Fr($if)f
-Fs(construct)g(allo)o(ws)f(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f
-(the)h(editing)f(mo)q(de,)h(the)315 1964 y(terminal)i(b)q(eing)h(used,)
-h(or)f(the)g(application)f(using)g(Readline.)32 b(The)19
-b(text)g(of)f(the)i(test)315 2019 y(extends)c(to)e(the)h(end)h(of)f
-(the)g(line;)g(no)g(c)o(haracters)f(are)h(required)h(to)e(isolate)g
-(it.)315 2098 y Fr(mode)144 b Fs(The)11 b Fr(mode=)e
-Fs(form)h(of)g(the)h Fr($if)f Fs(directiv)o(e)f(is)h(used)h(to)f(test)g
-(whether)h(Readline)555 2153 y(is)j(in)h Fr(emacs)f Fs(or)g
-Fr(vi)g Fs(mo)q(de.)20 b(This)15 b(ma)o(y)f(b)q(e)h(used)g(in)g
-(conjunction)g(with)f(the)555 2207 y(`)p Fr(set)g(keymap)p
-Fs(')f(command,)g(for)h(instance,)f(to)g(set)h(bindings)f(in)h(the)g
-Fr(emacs-)555 2262 y(standard)d Fs(and)i Fr(emacs-ctlx)e
-Fs(k)o(eymaps)h(only)h(if)f(Readline)g(is)g(starting)f(out)555
-2317 y(in)k Fr(emacs)g Fs(mo)q(de.)315 2396 y Fr(term)144
-b Fs(The)14 b Fr(term=)e Fs(form)h(ma)o(y)g(b)q(e)h(used)g(to)f
-(include)h(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555
-2451 y(ings,)18 b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 2506 y(function)12
+(Editing)1075 b(9)555 149 y(double)15 b(quotes.)k(Some)c
+Fl(gnu)g Fs(Emacs)f(st)o(yle)g(k)o(ey)h(escap)q(es)g(can)g(b)q(e)g
+(used,)g(as)555 204 y(in)i(the)g(follo)o(wing)d(example,)j(but)g(the)g
+(sp)q(ecial)g(c)o(haracter)f(names)h(are)f(not)555 259
+y(recognized.)675 326 y Fr("\\C-u":)23 b(universal-argument)675
+381 y("\\C-x\\C-r":)f(re-read-init-file)675 435 y("\\e[11~":)h
+("Function)f(Key)i(1")555 502 y Fs(In)33 b(the)f(ab)q(o)o(v)o(e)g
+(example,)k Fk(C-u)c Fs(is)g(again)f(b)q(ound)i(to)f(the)g(function)555
+557 y Fr(universal-argument)19 b Fs(\(just)j(as)f(it)g(w)o(as)g(in)h
+(the)g(\014rst)f(example\),)i(`)p Fk(C-x)555 612 y(C-r)p
+Fs(')14 b(is)h(b)q(ound)h(to)f(the)g(function)g Fr(re-read-init-file)p
+Fs(,)d(and)k(`)p Fr(ESC)e([)h(1)g(1)555 666 y(~)p Fs(')g(is)f(b)q(ound)
+j(to)d(insert)h(the)g(text)g(`)p Fr(Function)e(Key)i(1)p
+Fs('.)315 745 y(The)g(follo)o(wing)e Fl(gnu)h Fs(Emacs)h(st)o(yle)f
+(escap)q(e)i(sequences)g(are)e(a)o(v)m(ailable)g(when)h(sp)q(ecifying)
+315 800 y(k)o(ey)g(sequences:)315 879 y Fk(\\C-)168 b
+Fs(con)o(trol)14 b(pre\014x)315 957 y Fk(\\M-)168 b Fs(meta)15
+b(pre\014x)315 1036 y Fk(\\e)192 b Fs(an)15 b(escap)q(e)h(c)o(haracter)
+315 1115 y Fk(\\\\)192 b Fs(bac)o(kslash)315 1193 y Fk(\\)p
+Fr(")g(")p Fs(,)15 b(a)g(double)g(quotation)f(mark)315
+1272 y Fk(\\')192 b Fr(')p Fs(,)15 b(a)g(single)f(quote)h(or)g(ap)q
+(ostrophe)315 1351 y(In)f(addition)f(to)h(the)f Fl(gnu)h
+Fs(Emacs)g(st)o(yle)e(escap)q(e)j(sequences,)g(a)e(second)i(set)e(of)h
+(bac)o(kslash)315 1405 y(escap)q(es)i(is)f(a)o(v)m(ailable:)315
+1484 y Fr(\\a)192 b Fs(alert)14 b(\(b)q(ell\))315 1563
+y Fr(\\b)192 b Fs(bac)o(kspace)315 1641 y Fr(\\d)g Fs(delete)315
+1720 y Fr(\\f)g Fs(form)14 b(feed)315 1799 y Fr(\\n)192
+b Fs(newline)315 1877 y Fr(\\r)g Fs(carriage)14 b(return)315
+1956 y Fr(\\t)192 b Fs(horizon)o(tal)14 b(tab)315 2035
+y Fr(\\v)192 b Fs(v)o(ertical)14 b(tab)315 2113 y Fr(\\)p
+Fk(nnn)144 b Fs(the)17 b(eigh)o(t-bit)f(c)o(haracter)h(whose)g(v)m
+(alue)h(is)e(the)i(o)q(ctal)e(v)m(alue)i Fi(nnn)g Fs(\(one)f(to)555
+2168 y(three)e(digits\))315 2247 y Fr(\\x)p Fk(HH)144
+b Fs(the)20 b(eigh)o(t-bit)e(c)o(haracter)h(whose)h(v)m(alue)g(is)f
+(the)h(hexadecimal)f(v)m(alue)h Fi(HH)555 2302 y Fs(\(one)15
+b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2380 y(When)k(en)o(tering)f(the)h
+(text)f(of)g(a)h(macro,)f(single)g(or)g(double)h(quotes)g(m)o(ust)f(b)q
+(e)h(used)h(to)315 2435 y(indicate)10 b(a)h(macro)f(de\014nition.)18
+b(Unquoted)11 b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h
+(name.)18 b(In)315 2490 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
+(kslash)f(escap)q(es)h(describ)q(ed)h(ab)q(o)o(v)o(e)e(are)g(expanded.)
+20 b(Bac)o(kslash)315 2545 y(will)f(quote)g(an)o(y)h(other)g(c)o
+(haracter)f(in)h(the)g(macro)f(text,)h(including)g(`)p
+Fr(")p Fs(')f(and)h(`)p Fr(')p Fs('.)34 b(F)l(or)315
+2599 y(example,)13 b(the)g(follo)o(wing)d(binding)j(will)f(mak)o(e)g(`)
+p Fk(C-x)i Fr(\\)p Fs(')f(insert)f(a)h(single)f(`)p Fr(\\)p
+Fs(')g(in)o(to)g(the)h(line:)435 2666 y Fr("\\C-x\\\\":)23
+b("\\\\")p eop end
+%%Page: 10 14
+TeXDict begin 10 13 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
+(Editing)1053 b(10)75 149 y Fh(1.3.2)30 b(Conditional)20
+b(Init)g(Constructs)75 223 y Fs(Readline)f(implemen)o(ts)e(a)h(facilit)
+o(y)f(similar)f(in)i(spirit)g(to)f(the)i(conditional)e(compilation)f
+(features)i(of)75 278 y(the)d(C)h(prepro)q(cessor)f(whic)o(h)g(allo)o
+(ws)f(k)o(ey)h(bindings)g(and)h(v)m(ariable)e(settings)h(to)f(b)q(e)i
+(p)q(erformed)g(as)f(the)75 333 y(result)g(of)f(tests.)20
+b(There)15 b(are)g(four)g(parser)g(directiv)o(es)f(used.)75
+412 y Fr($if)168 b Fs(The)16 b Fr($if)f Fs(construct)g(allo)o(ws)f
+(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f(the)h(editing)f(mo)q(de,)h
+(the)315 467 y(terminal)i(b)q(eing)h(used,)h(or)f(the)g(application)f
+(using)g(Readline.)32 b(The)19 b(text)g(of)f(the)i(test)315
+522 y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)g(no)g(c)o(haracters)
+f(are)h(required)h(to)e(isolate)g(it.)315 601 y Fr(mode)144
+b Fs(The)11 b Fr(mode=)e Fs(form)h(of)g(the)h Fr($if)f
+Fs(directiv)o(e)f(is)h(used)h(to)f(test)g(whether)h(Readline)555
+656 y(is)j(in)h Fr(emacs)f Fs(or)g Fr(vi)g Fs(mo)q(de.)20
+b(This)15 b(ma)o(y)f(b)q(e)h(used)g(in)g(conjunction)g(with)f(the)555
+711 y(`)p Fr(set)g(keymap)p Fs(')f(command,)g(for)h(instance,)f(to)g
+(set)h(bindings)f(in)h(the)g Fr(emacs-)555 766 y(standard)d
+Fs(and)i Fr(emacs-ctlx)e Fs(k)o(eymaps)h(only)h(if)f(Readline)g(is)g
+(starting)f(out)555 821 y(in)k Fr(emacs)g Fs(mo)q(de.)315
+900 y Fr(term)144 b Fs(The)14 b Fr(term=)e Fs(form)h(ma)o(y)g(b)q(e)h
+(used)g(to)f(include)h(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555
+955 y(ings,)18 b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j
+(output)e(b)o(y)g(the)g(terminal's)555 1010 y(function)12
b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)f(side)g(of)h
-(the)g(`)p Fr(=)p Fs(')f(is)g(tested)h(against)555 2560
+(the)g(`)p Fr(=)p Fs(')f(is)g(tested)h(against)555 1065
y(b)q(oth)j(the)g(full)g(name)g(of)f(the)h(terminal)f(and)h(the)g(p)q
-(ortion)g(of)f(the)h(terminal)555 2615 y(name)i(b)q(efore)g(the)g
+(ortion)g(of)f(the)h(terminal)555 1120 y(name)i(b)q(efore)g(the)g
(\014rst)f(`)p Fr(-)p Fs('.)24 b(This)16 b(allo)o(ws)f
Fr(sun)h Fs(to)g(matc)o(h)h(b)q(oth)f Fr(sun)h Fs(and)555
-2670 y Fr(sun-cmd)p Fs(,)d(for)g(instance.)p eop end
-%%Page: 10 14
-TeXDict begin 10 13 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1053 b(10)315 149 y Fr(application)555 204 y
-Fs(The)11 b Fi(application)f Fs(construct)h(is)f(used)i(to)e(include)h
-(application-sp)q(eci\014c)g(set-)555 259 y(tings.)18
-b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h(library)e(sets)h(the)
-g Fi(application)555 314 y(name)s Fs(,)f(and)h(y)o(ou)f(can)h(test)e
-(for)h(a)g(particular)f(v)m(alue.)19 b(This)11 b(could)h(b)q(e)g(used)g
-(to)555 369 y(bind)17 b(k)o(ey)f(sequences)i(to)d(functions)i(useful)f
-(for)g(a)g(sp)q(eci\014c)h(program.)23 b(F)l(or)555 423
-y(instance,)16 b(the)h(follo)o(wing)d(command)j(adds)f(a)g(k)o(ey)h
-(sequence)g(that)f(quotes)555 478 y(the)f(curren)o(t)g(or)g(previous)g
-(w)o(ord)f(in)i(Bash:)675 545 y Fr($if)23 b(Bash)675
-600 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)675
-655 y("\\C-xq":)g("\\eb\\"\\ef\\"")675 710 y($endif)75
-790 y($endif)96 b Fs(This)15 b(command,)f(as)h(seen)h(in)f(the)g
-(previous)g(example,)g(terminates)f(an)h Fr($if)f Fs(command.)75
-869 y Fr($else)120 b Fs(Commands)15 b(in)g(this)f(branc)o(h)i(of)e(the)
-i Fr($if)e Fs(directiv)o(e)h(are)g(executed)h(if)f(the)g(test)g(fails.)
-75 949 y Fr($include)48 b Fs(This)21 b(directiv)o(e)g(tak)o(es)g(a)h
+1174 y Fr(sun-cmd)p Fs(,)d(for)g(instance.)315 1254 y
+Fr(application)555 1309 y Fs(The)d Fi(application)f Fs(construct)h(is)f
+(used)i(to)e(include)h(application-sp)q(eci\014c)g(set-)555
+1364 y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h
+(library)e(sets)h(the)g Fi(application)555 1418 y(name)s
+Fs(,)f(and)h(y)o(ou)f(can)h(test)e(for)h(a)g(particular)f(v)m(alue.)19
+b(This)11 b(could)h(b)q(e)g(used)g(to)555 1473 y(bind)17
+b(k)o(ey)f(sequences)i(to)d(functions)i(useful)f(for)g(a)g(sp)q
+(eci\014c)h(program.)23 b(F)l(or)555 1528 y(instance,)16
+b(the)h(follo)o(wing)d(command)j(adds)f(a)g(k)o(ey)h(sequence)g(that)f
+(quotes)555 1583 y(the)f(curren)o(t)g(or)g(previous)g(w)o(ord)f(in)i
+(Bash:)675 1650 y Fr($if)23 b(Bash)675 1705 y(#)h(Quote)f(the)g
+(current)g(or)h(previous)f(word)675 1760 y("\\C-xq":)g
+("\\eb\\"\\ef\\"")675 1814 y($endif)75 1894 y($endif)96
+b Fs(This)15 b(command,)f(as)h(seen)h(in)f(the)g(previous)g(example,)g
+(terminates)f(an)h Fr($if)f Fs(command.)75 1974 y Fr($else)120
+b Fs(Commands)15 b(in)g(this)f(branc)o(h)i(of)e(the)i
+Fr($if)e Fs(directiv)o(e)h(are)g(executed)h(if)f(the)g(test)g(fails.)75
+2054 y Fr($include)48 b Fs(This)21 b(directiv)o(e)g(tak)o(es)g(a)h
(single)f(\014lename)h(as)f(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 1004 y(and)e(bindings)h(from)e(that)h(\014le.)32
+315 2108 y(and)e(bindings)h(from)e(that)h(\014le.)32
b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e(directiv)o(e)i(reads)g
-(from)315 1059 y(`)p Fr(/etc/inputrc)p Fs(':)435 1126
-y Fr($include)k(/etc/inputrc)75 1225 y Fh(1.3.3)30 b(Sample)20
-b(Init)h(File)75 1299 y Fs(Here)13 b(is)g(an)g(example)g(of)g(an)g
+(from)315 2163 y(`)p Fr(/etc/inputrc)p Fs(':)435 2230
+y Fr($include)k(/etc/inputrc)75 2330 y Fh(1.3.3)30 b(Sample)20
+b(Init)h(File)75 2403 y Fs(Here)13 b(is)g(an)g(example)g(of)g(an)g
Fi(inputrc)j Fs(\014le.)k(This)12 b(illustrates)g(k)o(ey)h(binding,)g
-(v)m(ariable)g(assignmen)o(t,)f(and)75 1354 y(conditional)i(syn)o(tax.)
+(v)m(ariable)g(assignmen)o(t,)f(and)75 2458 y(conditional)i(syn)o(tax.)
p eop end
%%Page: 11 15
TeXDict begin 11 14 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
@@ -5058,179 +5087,196 @@ TeXDict begin 17 20 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
204 y Fs(Rotate)j(the)g(kill-ring,)f(and)h(y)o(ank)g(the)h(new)f(top.)
26 b(Y)l(ou)17 b(can)h(only)f(do)g(this)g(if)f(the)i(prior)315
259 y(command)d(is)g Fr(yank)f Fs(or)h Fr(yank-pop)p
-Fs(.)75 350 y Fh(1.4.5)30 b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts)
-75 432 y Fr(digit-argument)13 b(\()p Fk(M-0)p Fr(,)i
-Fk(M-1)p Fr(,)f(...)h Fk(M--)p Fr(\))315 487 y Fs(Add)f(this)f(digit)f
+Fs(.)75 354 y Fh(1.4.5)30 b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts)
+75 438 y Fr(digit-argument)13 b(\()p Fk(M-0)p Fr(,)i
+Fk(M-1)p Fr(,)f(...)h Fk(M--)p Fr(\))315 493 y Fs(Add)f(this)f(digit)f
(to)h(the)h(argumen)o(t)e(already)h(accum)o(ulating,)f(or)h(start)f(a)h
-(new)h(argumen)o(t.)315 542 y Fk(M--)h Fs(starts)f(a)h(negativ)o(e)f
-(argumen)o(t.)75 613 y Fr(universal-argument)f(\(\))315
-668 y Fs(This)f(is)h(another)f(w)o(a)o(y)g(to)g(sp)q(ecify)h(an)g
+(new)h(argumen)o(t.)315 548 y Fk(M--)h Fs(starts)f(a)h(negativ)o(e)f
+(argumen)o(t.)75 623 y Fr(universal-argument)f(\(\))315
+678 y Fs(This)f(is)h(another)f(w)o(a)o(y)g(to)g(sp)q(ecify)h(an)g
(argumen)o(t.)18 b(If)13 b(this)f(command)h(is)f(follo)o(w)o(ed)f(b)o
-(y)i(one)315 723 y(or)h(more)h(digits,)e(optionally)g(with)h(a)h
+(y)i(one)315 733 y(or)h(more)h(digits,)e(optionally)g(with)h(a)h
(leading)f(min)o(us)g(sign,)g(those)h(digits)e(de\014ne)j(the)f(ar-)315
-778 y(gumen)o(t.)k(If)c(the)g(command)f(is)g(follo)o(w)o(ed)f(b)o(y)i
-(digits,)e(executing)h Fr(universal-argument)315 832
+788 y(gumen)o(t.)k(If)c(the)g(command)f(is)g(follo)o(w)o(ed)f(b)o(y)i
+(digits,)e(executing)h Fr(universal-argument)315 843
y Fs(again)h(ends)h(the)g(n)o(umeric)g(argumen)o(t,)f(but)h(is)g
(otherwise)f(ignored.)21 b(As)16 b(a)g(sp)q(ecial)f(case,)315
-887 y(if)h(this)g(command)g(is)g(immediately)f(follo)o(w)o(ed)g(b)o(y)h
+897 y(if)h(this)g(command)g(is)g(immediately)f(follo)o(w)o(ed)g(b)o(y)h
(a)g(c)o(haracter)g(that)g(is)g(neither)g(a)g(digit)315
-942 y(or)d(min)o(us)h(sign,)f(the)h(argumen)o(t)g(coun)o(t)f(for)h(the)
+952 y(or)d(min)o(us)h(sign,)f(the)h(argumen)o(t)g(coun)o(t)f(for)h(the)
g(next)g(command)g(is)f(m)o(ultiplied)g(b)o(y)h(four.)315
-997 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)g(initially)f(one,)i(so)f
+1007 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)g(initially)f(one,)i(so)f
(executing)h(this)f(function)h(the)f(\014rst)h(time)315
-1052 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
+1062 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
(time)f(mak)o(es)h(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1106 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)g(this)f(is)h(not)g
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1198 y Fh(1.4.6)30
+1117 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)g(this)f(is)h(not)g
+(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1212 y Fh(1.4.6)30
b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1280 y Fr(complete)14 b(\(TAB\))315 1334 y Fs(A)o(ttempt)c(to)h
+b(ou)75 1296 y Fr(complete)14 b(\(TAB\))315 1351 y Fs(A)o(ttempt)c(to)h
(p)q(erform)g(completion)g(on)g(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)
-18 b(The)11 b(actual)g(completion)315 1389 y(p)q(erformed)k(is)g
+18 b(The)11 b(actual)g(completion)315 1406 y(p)q(erformed)k(is)g
(application-sp)q(eci\014c.)20 b(The)15 b(default)g(is)g(\014lename)g
-(completion.)75 1461 y Fr(possible-completions)d(\(M-?\))315
-1515 y Fs(List)j(the)g(p)q(ossible)g(completions)f(of)h(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 1587 y Fr(insert-completions)d(\(M-*\))315
-1642 y Fs(Insert)j(all)e(completions)g(of)h(the)g(text)g(b)q(efore)h(p)
+(completion.)75 1481 y Fr(possible-completions)d(\(M-?\))315
+1536 y Fs(List)j(the)g(p)q(ossible)g(completions)f(of)h(the)g(text)g(b)
+q(efore)h(p)q(oin)o(t.)75 1611 y Fr(insert-completions)d(\(M-*\))315
+1666 y Fs(Insert)j(all)e(completions)g(of)h(the)g(text)g(b)q(efore)h(p)
q(oin)o(t)e(that)h(w)o(ould)g(ha)o(v)o(e)g(b)q(een)h(generated)315
-1696 y(b)o(y)f Fr(possible-completions)p Fs(.)75 1768
-y Fr(menu-complete)e(\(\))315 1823 y Fs(Similar)d(to)i
+1721 y(b)o(y)f Fr(possible-completions)p Fs(.)75 1796
+y Fr(menu-complete)e(\(\))315 1851 y Fs(Similar)d(to)i
Fr(complete)p Fs(,)f(but)h(replaces)g(the)g(w)o(ord)f(to)g(b)q(e)i
-(completed)e(with)h(a)f(single)h(matc)o(h)315 1877 y(from)18
+(completed)e(with)h(a)f(single)h(matc)o(h)315 1906 y(from)18
b(the)h(list)f(of)g(p)q(ossible)h(completions.)30 b(Rep)q(eated)20
-b(execution)f(of)g Fr(menu-complete)315 1932 y Fs(steps)h(through)g
+b(execution)f(of)g Fr(menu-complete)315 1961 y Fs(steps)h(through)g
(the)g(list)f(of)h(p)q(ossible)g(completions,)g(inserting)f(eac)o(h)h
-(matc)o(h)f(in)h(turn.)315 1987 y(A)o(t)e(the)g(end)h(of)f(the)h(list)e
+(matc)o(h)f(in)h(turn.)315 2016 y(A)o(t)e(the)g(end)h(of)f(the)h(list)e
(of)h(completions,)g(the)g(b)q(ell)h(is)e(rung)i(\(sub)s(ject)f(to)f
-(the)i(setting)315 2042 y(of)f Fr(bell-style)p Fs(\))e(and)i(the)g
+(the)i(setting)315 2070 y(of)f Fr(bell-style)p Fs(\))e(and)i(the)g
(original)e(text)i(is)f(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fi(n)i Fs(mo)o(v)o(es)e Fi(n)315 2097 y Fs(p)q(ositions)f(forw)o(ard)g
+Fi(n)i Fs(mo)o(v)o(es)e Fi(n)315 2125 y Fs(p)q(ositions)f(forw)o(ard)g
(in)i(the)f(list)f(of)h(matc)o(hes;)h(a)f(negativ)o(e)f(argumen)o(t)h
-(ma)o(y)g(b)q(e)h(used)g(to)315 2151 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
+(ma)o(y)g(b)q(e)h(used)g(to)315 2180 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
(through)g(the)g(list.)30 b(This)19 b(command)g(is)g(in)o(tended)g(to)g
-(b)q(e)h(b)q(ound)g(to)315 2206 y Fr(TAB)p Fs(,)14 b(but)i(is)e(un)o(b)
-q(ound)j(b)o(y)e(default.)75 2278 y Fr(delete-char-or-list)e(\(\))315
-2332 y Fs(Deletes)g(the)g(c)o(haracter)g(under)h(the)g(cursor)f(if)g
-(not)g(at)g(the)g(b)q(eginning)h(or)f(end)h(of)f(the)g(line)315
-2387 y(\(lik)o(e)g Fr(delete-char)p Fs(\).)18 b(If)d(at)f(the)h(end)g
-(of)f(the)g(line,)g(b)q(eha)o(v)o(es)h(iden)o(tically)e(to)h
-Fr(possible-)315 2442 y(completions)p Fs(.)k(This)d(command)g(is)g(un)o
-(b)q(ound)h(b)o(y)f(default.)75 2533 y Fh(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 2615 y Fr(start-kbd-macro)13 b(\(C-x)i(\(\))315
-2670 y Fs(Begin)g(sa)o(ving)f(the)i(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)e(the)h(curren)o(t)g(k)o(eyb)q(oard)g(macro.)p eop
-end
+(b)q(e)h(b)q(ound)g(to)315 2235 y Fr(TAB)p Fs(,)14 b(but)i(is)e(un)o(b)
+q(ound)j(b)o(y)e(default.)75 2310 y Fr(menu-complete-backward)d(\(\))
+315 2365 y Fs(Iden)o(tical)17 b(to)g Fr(menu-complete)p
+Fs(,)f(but)i(mo)o(v)o(es)e(bac)o(kw)o(ard)h(through)g(the)h(list)e(of)h
+(p)q(ossible)315 2420 y(completions,)d(as)h(if)f Fr(menu-complete)g
+Fs(had)h(b)q(een)h(giv)o(en)f(a)g(negativ)o(e)f(argumen)o(t.)75
+2496 y Fr(delete-char-or-list)f(\(\))315 2550 y Fs(Deletes)g(the)g(c)o
+(haracter)g(under)h(the)g(cursor)f(if)g(not)g(at)g(the)g(b)q(eginning)h
+(or)f(end)h(of)f(the)g(line)315 2605 y(\(lik)o(e)g Fr(delete-char)p
+Fs(\).)18 b(If)d(at)f(the)h(end)g(of)f(the)g(line,)g(b)q(eha)o(v)o(es)h
+(iden)o(tically)e(to)h Fr(possible-)315 2660 y(completions)p
+Fs(.)k(This)d(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.)p
+eop end
%%Page: 18 22
TeXDict begin 18 21 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1053 b(18)75 149 y Fr(end-kbd-macro)13 b(\(C-x)i(\)\))315
-204 y Fs(Stop)f(sa)o(ving)e(the)i(c)o(haracters)f(t)o(yp)q(ed)h(in)o
-(to)e(the)i(curren)o(t)g(k)o(eyb)q(oard)f(macro)g(and)h(sa)o(v)o(e)f
-(the)315 259 y(de\014nition.)75 335 y Fr(call-last-kbd-macro)g(\(C-x)h
-(e\))315 390 y Fs(Re-execute)19 b(the)f(last)e(k)o(eyb)q(oard)i(macro)f
-(de\014ned,)i(b)o(y)e(making)g(the)h(c)o(haracters)e(in)i(the)315
-445 y(macro)c(app)q(ear)i(as)f(if)f(t)o(yp)q(ed)i(at)e(the)i(k)o(eyb)q
-(oard.)75 541 y Fh(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-625 y Fr(re-read-init-file)13 b(\(C-x)h(C-r\))315 680
+(Editing)1053 b(18)75 149 y Fh(1.4.7)30 b(Keyb)r(oard)20
+b(Macros)75 233 y Fr(start-kbd-macro)13 b(\(C-x)i(\(\))315
+287 y Fs(Begin)g(sa)o(ving)f(the)i(c)o(haracters)e(t)o(yp)q(ed)i(in)o
+(to)e(the)h(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 362
+y Fr(end-kbd-macro)e(\(C-x)i(\)\))315 416 y Fs(Stop)f(sa)o(ving)e(the)i
+(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)e(the)i(curren)o(t)g(k)o(eyb)q
+(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 471 y(de\014nition.)75
+545 y Fr(call-last-kbd-macro)g(\(C-x)h(e\))315 600 y
+Fs(Re-execute)19 b(the)f(last)e(k)o(eyb)q(oard)i(macro)f(de\014ned,)i
+(b)o(y)e(making)g(the)h(c)o(haracters)e(in)i(the)315
+655 y(macro)c(app)q(ear)i(as)f(if)f(t)o(yp)q(ed)i(at)e(the)i(k)o(eyb)q
+(oard.)75 749 y Fh(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
+832 y Fr(re-read-init-file)13 b(\(C-x)h(C-r\))315 887
y Fs(Read)e(in)e(the)h(con)o(ten)o(ts)g(of)f(the)h Fi(inputrc)j
Fs(\014le,)d(and)h(incorp)q(orate)e(an)o(y)g(bindings)h(or)g(v)m
-(ariable)315 735 y(assignmen)o(ts)j(found)i(there.)75
-811 y Fr(abort)e(\(C-g\))315 866 y Fs(Ab)q(ort)f(the)g(curren)o(t)h
+(ariable)315 942 y(assignmen)o(ts)j(found)i(there.)75
+1016 y Fr(abort)e(\(C-g\))315 1071 y Fs(Ab)q(ort)f(the)g(curren)o(t)h
(editing)e(command)h(and)h(ring)e(the)i(terminal's)d(b)q(ell)i(\(sub)s
-(ject)g(to)g(the)315 921 y(setting)h(of)h Fr(bell-style)p
-Fs(\).)75 997 y Fr(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fk(x)5 b Fr(,)15 b(...\))315 1052 y Fs(If)f(the)g(meta\014ed)g(c)o
+(ject)g(to)g(the)315 1126 y(setting)h(of)h Fr(bell-style)p
+Fs(\).)75 1200 y Fr(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
+Fk(x)5 b Fr(,)15 b(...\))315 1255 y Fs(If)f(the)g(meta\014ed)g(c)o
(haracter)f Fi(x)k Fs(is)c(lo)o(w)o(ercase,)g(run)h(the)g(command)f
-(that)h(is)f(b)q(ound)i(to)e(the)315 1107 y(corresp)q(onding)i(upp)q
-(ercase)h(c)o(haracter.)75 1183 y Fr(prefix-meta)e(\(ESC\))315
-1238 y Fs(Metafy)k(the)h(next)g(c)o(haracter)f(t)o(yp)q(ed.)30
+(that)h(is)f(b)q(ound)i(to)e(the)315 1309 y(corresp)q(onding)i(upp)q
+(ercase)h(c)o(haracter.)75 1384 y Fr(prefix-meta)e(\(ESC\))315
+1438 y Fs(Metafy)k(the)h(next)g(c)o(haracter)f(t)o(yp)q(ed.)30
b(This)19 b(is)f(for)g(k)o(eyb)q(oards)h(without)f(a)g(meta)g(k)o(ey)l
-(.)315 1293 y(T)o(yping)d(`)p Fr(ESC)f(f)p Fs(')h(is)f(equiv)m(alen)o
-(t)h(to)g(t)o(yping)f Fk(M-f)p Fs(.)75 1369 y Fr(undo)h(\(C-_)f(or)h
-(C-x)g(C-u\))315 1424 y Fs(Incremen)o(tal)g(undo,)g(separately)g(remem)
-o(b)q(ered)h(for)e(eac)o(h)h(line.)75 1500 y Fr(revert-line)f(\(M-r\))
-315 1555 y Fs(Undo)j(all)e(c)o(hanges)i(made)f(to)g(this)g(line.)24
+(.)315 1493 y(T)o(yping)d(`)p Fr(ESC)f(f)p Fs(')h(is)f(equiv)m(alen)o
+(t)h(to)g(t)o(yping)f Fk(M-f)p Fs(.)75 1567 y Fr(undo)h(\(C-_)f(or)h
+(C-x)g(C-u\))315 1622 y Fs(Incremen)o(tal)g(undo,)g(separately)g(remem)
+o(b)q(ered)h(for)e(eac)o(h)h(line.)75 1696 y Fr(revert-line)f(\(M-r\))
+315 1751 y Fs(Undo)j(all)e(c)o(hanges)i(made)f(to)g(this)g(line.)24
b(This)16 b(is)g(lik)o(e)g(executing)g(the)h Fr(undo)f
-Fs(command)315 1610 y(enough)g(times)e(to)h(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 1686 y Fr(tilde-expand)f(\(M-~\))315
-1741 y Fs(P)o(erform)g(tilde)h(expansion)g(on)g(the)g(curren)o(t)g(w)o
-(ord.)75 1817 y Fr(set-mark)f(\(C-@\))315 1872 y Fs(Set)i(the)h(mark)f
+Fs(command)315 1806 y(enough)g(times)e(to)h(get)f(bac)o(k)h(to)g(the)g
+(b)q(eginning.)75 1880 y Fr(tilde-expand)f(\(M-~\))315
+1935 y Fs(P)o(erform)g(tilde)h(expansion)g(on)g(the)g(curren)o(t)g(w)o
+(ord.)75 2009 y Fr(set-mark)f(\(C-@\))315 2064 y Fs(Set)i(the)h(mark)f
(to)f(the)i(p)q(oin)o(t.)23 b(If)17 b(a)f(n)o(umeric)g(argumen)o(t)g
-(is)f(supplied,)i(the)g(mark)e(is)h(set)315 1926 y(to)f(that)f(p)q
-(osition.)75 2003 y Fr(exchange-point-and-mark)e(\(C-x)j(C-x\))315
-2058 y Fs(Sw)o(ap)g(the)h(p)q(oin)o(t)f(with)g(the)h(mark.)k(The)c
+(is)f(supplied,)i(the)g(mark)e(is)h(set)315 2119 y(to)f(that)f(p)q
+(osition.)75 2193 y Fr(exchange-point-and-mark)e(\(C-x)j(C-x\))315
+2248 y Fs(Sw)o(ap)g(the)h(p)q(oin)o(t)f(with)g(the)h(mark.)k(The)c
(curren)o(t)f(cursor)h(p)q(osition)e(is)h(set)h(to)f(the)g(sa)o(v)o(ed)
-315 2112 y(p)q(osition,)f(and)h(the)h(old)e(cursor)h(p)q(osition)f(is)h
-(sa)o(v)o(ed)g(as)g(the)g(mark.)75 2189 y Fr(character-search)e
-(\(C-]\))315 2243 y Fs(A)f(c)o(haracter)g(is)g(read)h(and)f(p)q(oin)o
+315 2302 y(p)q(osition,)f(and)h(the)h(old)e(cursor)h(p)q(osition)f(is)h
+(sa)o(v)o(ed)g(as)g(the)g(mark.)75 2377 y Fr(character-search)e
+(\(C-]\))315 2431 y Fs(A)f(c)o(haracter)g(is)g(read)h(and)f(p)q(oin)o
(t)g(is)g(mo)o(v)o(ed)g(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g
-(c)o(haracter.)315 2298 y(A)j(negativ)o(e)g(coun)o(t)g(searc)o(hes)g
-(for)f(previous)h(o)q(ccurrences.)75 2375 y Fr
-(character-search-backward)d(\(M-C-]\))315 2429 y Fs(A)22
+(c)o(haracter.)315 2486 y(A)j(negativ)o(e)g(coun)o(t)g(searc)o(hes)g
+(for)f(previous)h(o)q(ccurrences.)75 2560 y Fr
+(character-search-backward)d(\(M-C-]\))315 2615 y Fs(A)22
b(c)o(haracter)g(is)g(read)g(and)h(p)q(oin)o(t)f(is)g(mo)o(v)o(ed)g(to)
-g(the)g(previous)g(o)q(ccurrence)i(of)e(that)315 2484
+g(the)g(previous)g(o)q(ccurrence)i(of)e(that)315 2670
y(c)o(haracter.)d(A)c(negativ)o(e)g(coun)o(t)g(searc)o(hes)g(for)f
-(subsequen)o(t)i(o)q(ccurrences.)75 2560 y Fr(insert-comment)d(\(M-#\))
-315 2615 y Fs(Without)k(a)g(n)o(umeric)h(argumen)o(t,)f(the)h(v)m(alue)
-g(of)g(the)f Fr(comment-begin)f Fs(v)m(ariable)i(is)f(in-)315
-2670 y(serted)f(at)f(the)h(b)q(eginning)g(of)f(the)h(curren)o(t)g
-(line.)21 b(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)g(supplied,)p
-eop end
+(subsequen)o(t)i(o)q(ccurrences.)p eop end
%%Page: 19 23
TeXDict begin 19 22 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1053 b(19)315 149 y(this)18 b(command)g(acts)g(as)f(a)h
-(toggle:)25 b(if)18 b(the)g(c)o(haracters)g(at)f(the)i(b)q(eginning)f
-(of)g(the)g(line)315 204 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)h(of)f
-Fr(comment-begin)p Fs(,)e(the)i(v)m(alue)h(is)f(inserted,)f(otherwise)h
-(the)315 259 y(c)o(haracters)k(in)h Fr(comment-begin)e
-Fs(are)i(deleted)h(from)e(the)h(b)q(eginning)g(of)g(the)g(line.)34
-b(In)315 314 y(either)15 b(case,)g(the)g(line)g(is)g(accepted)g(as)g
-(if)g(a)g(newline)g(had)g(b)q(een)i(t)o(yp)q(ed.)75 394
-y Fr(dump-functions)c(\(\))315 448 y Fs(Prin)o(t)f(all)g(of)h(the)g
-(functions)g(and)h(their)f(k)o(ey)g(bindings)g(to)f(the)i(Readline)f
-(output)g(stream.)315 503 y(If)j(a)g(n)o(umeric)f(argumen)o(t)g(is)h
-(supplied,)g(the)g(output)f(is)h(formatted)e(in)i(suc)o(h)g(a)g(w)o(a)o
-(y)f(that)315 558 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g
-Fi(inputrc)j Fs(\014le.)i(This)15 b(command)g(is)g(un)o(b)q(ound)h(b)o
-(y)f(default.)75 638 y Fr(dump-variables)e(\(\))315 692
-y Fs(Prin)o(t)d(all)f(of)h(the)h(settable)f(v)m(ariables)g(and)h(their)
-f(v)m(alues)h(to)f(the)h(Readline)g(output)f(stream.)315
-747 y(If)16 b(a)g(n)o(umeric)f(argumen)o(t)g(is)h(supplied,)g(the)g
+(Editing)1053 b(19)75 149 y Fr(skip-csi-sequence)13 b(\(\))315
+204 y Fs(Read)h(enough)g(c)o(haracters)f(to)g(consume)h(a)g(m)o(ulti-k)
+o(ey)e(sequence)j(suc)o(h)f(as)f(those)h(de\014ned)315
+259 y(for)k(k)o(eys)g(lik)o(e)g(Home)h(and)g(End.)30
+b(Suc)o(h)19 b(sequences)h(b)q(egin)f(with)f(a)g(Con)o(trol)f(Sequence)
+315 314 y(Indicator)h(\(CSI\),)g(usually)f(ESC-[.)29
+b(If)19 b(this)f(sequence)h(is)f(b)q(ound)h(to)f Fr("\\)p
+Fs(e[)p Fr(")p Fs(,)g(k)o(eys)g(pro-)315 369 y(ducing)e(suc)o(h)h
+(sequences)g(will)d(ha)o(v)o(e)i(no)g(e\013ect)g(unless)g(explicitly)e
+(b)q(ound)j(to)f(a)f(readline)315 423 y(command,)h(instead)f(of)h
+(inserting)f(stra)o(y)f(c)o(haracters)i(in)o(to)f(the)h(editing)f
+(bu\013er.)22 b(This)15 b(is)315 478 y(un)o(b)q(ound)h(b)o(y)g
+(default,)e(but)h(usually)g(b)q(ound)h(to)f(ESC-[.)75
+558 y Fr(insert-comment)e(\(M-#\))315 613 y Fs(Without)k(a)g(n)o
+(umeric)h(argumen)o(t,)f(the)h(v)m(alue)g(of)g(the)f
+Fr(comment-begin)f Fs(v)m(ariable)i(is)f(in-)315 667
+y(serted)f(at)f(the)h(b)q(eginning)g(of)f(the)h(curren)o(t)g(line.)21
+b(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)g(supplied,)315
+722 y(this)j(command)g(acts)g(as)f(a)h(toggle:)25 b(if)18
+b(the)g(c)o(haracters)g(at)f(the)i(b)q(eginning)f(of)g(the)g(line)315
+777 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)h(of)f Fr(comment-begin)p
+Fs(,)e(the)i(v)m(alue)h(is)f(inserted,)f(otherwise)h(the)315
+832 y(c)o(haracters)k(in)h Fr(comment-begin)e Fs(are)i(deleted)h(from)e
+(the)h(b)q(eginning)g(of)g(the)g(line.)34 b(In)315 887
+y(either)15 b(case,)g(the)g(line)g(is)g(accepted)g(as)g(if)g(a)g
+(newline)g(had)g(b)q(een)i(t)o(yp)q(ed.)75 966 y Fr(dump-functions)c
+(\(\))315 1021 y Fs(Prin)o(t)f(all)g(of)h(the)g(functions)g(and)h
+(their)f(k)o(ey)g(bindings)g(to)f(the)i(Readline)f(output)g(stream.)315
+1076 y(If)j(a)g(n)o(umeric)f(argumen)o(t)g(is)h(supplied,)g(the)g
(output)f(is)h(formatted)e(in)i(suc)o(h)g(a)g(w)o(a)o(y)f(that)315
-802 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g Fi(inputrc)j
+1131 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g Fi(inputrc)j
Fs(\014le.)i(This)15 b(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.)
-75 882 y Fr(dump-macros)f(\(\))315 936 y Fs(Prin)o(t)i(all)g(of)g(the)h
-(Readline)g(k)o(ey)g(sequences)h(b)q(ound)g(to)e(macros)g(and)h(the)g
-(strings)f(they)315 991 y(output.)26 b(If)18 b(a)f(n)o(umeric)g
-(argumen)o(t)g(is)g(supplied,)h(the)f(output)g(is)g(formatted)f(in)i
-(suc)o(h)f(a)315 1046 y(w)o(a)o(y)d(that)g(it)h(can)g(b)q(e)g(made)g
-(part)g(of)f(an)h Fi(inputrc)j Fs(\014le.)i(This)14 b(command)h(is)g
-(un)o(b)q(ound)h(b)o(y)315 1101 y(default.)75 1181 y
-Fr(emacs-editing-mode)d(\(C-e\))315 1235 y Fs(When)j(in)f
-Fr(vi)f Fs(command)i(mo)q(de,)f(this)f(causes)i(a)f(switc)o(h)f(to)h
-Fr(emacs)f Fs(editing)h(mo)q(de.)75 1315 y Fr(vi-editing-mode)e
-(\(M-C-j\))315 1370 y Fs(When)j(in)f Fr(emacs)f Fs(editing)h(mo)q(de,)g
-(this)f(causes)i(a)f(switc)o(h)f(to)h Fr(vi)f Fs(editing)h(mo)q(de.)75
-1486 y Fq(1.5)33 b(Readline)21 b(vi)i(Mo)r(de)75 1566
-y Fs(While)15 b(the)h(Readline)g(library)f(do)q(es)h(not)f(ha)o(v)o(e)g
-(a)h(full)f(set)h(of)f Fr(vi)g Fs(editing)g(functions,)h(it)f(do)q(es)h
-(con)o(tain)75 1621 y(enough)h(to)g(allo)o(w)e(simple)h(editing)h(of)f
-(the)i(line.)25 b(The)17 b(Readline)g Fr(vi)g Fs(mo)q(de)g(b)q(eha)o(v)
-o(es)g(as)g(sp)q(eci\014ed)h(in)75 1675 y(the)d Fl(posix)g
-Fs(1003.2)f(standard.)137 1743 y(In)h(order)g(to)f(switc)o(h)f(in)o
-(teractiv)o(ely)g(b)q(et)o(w)o(een)i Fr(emacs)e Fs(and)i
-Fr(vi)f Fs(editing)g(mo)q(des,)h(use)f(the)h(command)75
-1797 y Fk(M-C-j)j Fs(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)h(when)g
-(in)g Fr(vi)g Fs(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)h(in)g
-Fr(emacs)75 1852 y Fs(mo)q(de\).)h(The)15 b(Readline)h(default)f(is)f
-Fr(emacs)h Fs(mo)q(de.)137 1919 y(When)h(y)o(ou)e(en)o(ter)h(a)g(line)g
-(in)f Fr(vi)h Fs(mo)q(de,)g(y)o(ou)g(are)f(already)h(placed)g(in)g
-(`insertion')e(mo)q(de,)i(as)g(if)f(y)o(ou)75 1974 y(had)h(t)o(yp)q(ed)
-g(an)g(`)p Fr(i)p Fs('.)j(Pressing)c Fr(ESC)h Fs(switc)o(hes)f(y)o(ou)g
-(in)o(to)g(`command')g(mo)q(de,)g(where)h(y)o(ou)g(can)f(edit)h(the)75
-2029 y(text)h(of)h(the)g(line)f(with)h(the)g(standard)f
-Fr(vi)h Fs(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o(v)o(e)g(to)h(previous)f
-(history)g(lines)h(with)75 2084 y(`)p Fr(k)p Fs(')d(and)i(subsequen)o
-(t)f(lines)g(with)g(`)p Fr(j)p Fs(',)f(and)h(so)g(forth.)p
-eop end
+75 1210 y Fr(dump-variables)e(\(\))315 1265 y Fs(Prin)o(t)d(all)f(of)h
+(the)h(settable)f(v)m(ariables)g(and)h(their)f(v)m(alues)h(to)f(the)h
+(Readline)g(output)f(stream.)315 1320 y(If)16 b(a)g(n)o(umeric)f
+(argumen)o(t)g(is)h(supplied,)g(the)g(output)f(is)h(formatted)e(in)i
+(suc)o(h)g(a)g(w)o(a)o(y)f(that)315 1375 y(it)f(can)i(b)q(e)g(made)f
+(part)f(of)h(an)g Fi(inputrc)j Fs(\014le.)i(This)15 b(command)g(is)g
+(un)o(b)q(ound)h(b)o(y)f(default.)75 1455 y Fr(dump-macros)f(\(\))315
+1509 y Fs(Prin)o(t)i(all)g(of)g(the)h(Readline)g(k)o(ey)g(sequences)h
+(b)q(ound)g(to)e(macros)g(and)h(the)g(strings)f(they)315
+1564 y(output.)26 b(If)18 b(a)f(n)o(umeric)g(argumen)o(t)g(is)g
+(supplied,)h(the)f(output)g(is)g(formatted)f(in)i(suc)o(h)f(a)315
+1619 y(w)o(a)o(y)d(that)g(it)h(can)g(b)q(e)g(made)g(part)g(of)f(an)h
+Fi(inputrc)j Fs(\014le.)i(This)14 b(command)h(is)g(un)o(b)q(ound)h(b)o
+(y)315 1674 y(default.)75 1753 y Fr(emacs-editing-mode)d(\(C-e\))315
+1808 y Fs(When)j(in)f Fr(vi)f Fs(command)i(mo)q(de,)f(this)f(causes)i
+(a)f(switc)o(h)f(to)h Fr(emacs)f Fs(editing)h(mo)q(de.)75
+1888 y Fr(vi-editing-mode)e(\(M-C-j\))315 1943 y Fs(When)j(in)f
+Fr(emacs)f Fs(editing)h(mo)q(de,)g(this)f(causes)i(a)f(switc)o(h)f(to)h
+Fr(vi)f Fs(editing)h(mo)q(de.)75 2059 y Fq(1.5)33 b(Readline)21
+b(vi)i(Mo)r(de)75 2139 y Fs(While)15 b(the)h(Readline)g(library)f(do)q
+(es)h(not)f(ha)o(v)o(e)g(a)h(full)f(set)h(of)f Fr(vi)g
+Fs(editing)g(functions,)h(it)f(do)q(es)h(con)o(tain)75
+2193 y(enough)h(to)g(allo)o(w)e(simple)h(editing)h(of)f(the)i(line.)25
+b(The)17 b(Readline)g Fr(vi)g Fs(mo)q(de)g(b)q(eha)o(v)o(es)g(as)g(sp)q
+(eci\014ed)h(in)75 2248 y(the)d Fl(posix)g Fs(1003.2)f(standard.)137
+2315 y(In)h(order)g(to)f(switc)o(h)f(in)o(teractiv)o(ely)g(b)q(et)o(w)o
+(een)i Fr(emacs)e Fs(and)i Fr(vi)f Fs(editing)g(mo)q(des,)h(use)f(the)h
+(command)75 2370 y Fk(M-C-j)j Fs(\(b)q(ound)i(to)e(emacs-editing-mo)q
+(de)h(when)g(in)g Fr(vi)g Fs(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)h
+(in)g Fr(emacs)75 2425 y Fs(mo)q(de\).)h(The)15 b(Readline)h(default)f
+(is)f Fr(emacs)h Fs(mo)q(de.)137 2492 y(When)h(y)o(ou)e(en)o(ter)h(a)g
+(line)g(in)f Fr(vi)h Fs(mo)q(de,)g(y)o(ou)g(are)f(already)h(placed)g
+(in)g(`insertion')e(mo)q(de,)i(as)g(if)f(y)o(ou)75 2547
+y(had)h(t)o(yp)q(ed)g(an)g(`)p Fr(i)p Fs('.)j(Pressing)c
+Fr(ESC)h Fs(switc)o(hes)f(y)o(ou)g(in)o(to)g(`command')g(mo)q(de,)g
+(where)h(y)o(ou)g(can)f(edit)h(the)75 2602 y(text)h(of)h(the)g(line)f
+(with)h(the)g(standard)f Fr(vi)h Fs(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o
+(v)o(e)g(to)h(previous)f(history)g(lines)h(with)75 2657
+y(`)p Fr(k)p Fs(')d(and)i(subsequen)o(t)f(lines)g(with)g(`)p
+Fr(j)p Fs(',)f(and)h(so)g(forth.)p eop end
%%Page: 20 24
TeXDict begin 20 23 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14
b(with)g(GNU)h(Readline)842 b(20)75 149 y Fo(2)41 b(Programming)29
@@ -5534,7 +5580,7 @@ Fs(This)15 b(v)m(ariable)g(is)g(set)h(to)f(a)g(unique)h(name)g(b)o(y)f
(eac)o(h)h(application)e(using)h(Readline.)22 b(The)16
b(v)m(alue)195 1952 y(allo)o(ws)c(conditional)h(parsing)g(of)h(the)g
(inputrc)g(\014le)g(\(see)g(Section)g(1.3.2)e([Conditional)g(Init)i
-(Con-)195 2007 y(structs],)g(page)h(9\).)1685 2100 y([V)l(ariable])
+(Con-)195 2007 y(structs],)g(page)h(10\).)1685 2100 y([V)l(ariable])
-1801 b Fg(FILE)27 b(*)f(rl_instream)195 2155 y Fs(The)21
b(stdio)e(stream)h(from)g(whic)o(h)g(Readline)h(reads)f(input.)36
b(If)21 b Fr(NULL)p Fs(,)g(Readline)g(defaults)f(to)195
@@ -5726,52 +5772,58 @@ Ff(\))195 259 y Fs(Add)k Fi(name)i Fs(to)d(the)h(list)f(of)g(named)h
(functions.)27 b(Mak)o(e)17 b Fi(function)g Fs(b)q(e)h(the)g(function)g
(that)e(gets)195 314 y(called.)j(If)d Fi(k)o(ey)j Fs(is)c(not)f(-1,)h
(then)h(bind)f(it)g(to)f Fi(function)h Fs(using)g Fr(rl_bind_key\(\))p
-Fs(.)137 426 y(Using)g(this)f(function)h(alone)g(is)f(su\016cien)o(t)h
+Fs(.)137 407 y(Using)g(this)f(function)h(alone)g(is)f(su\016cien)o(t)h
(for)g(most)f(applications.)k(It)d(is)g(the)g(recommended)h(w)o(a)o(y)
-75 481 y(to)d(add)h(a)f(few)g(functions)g(to)g(the)h(default)f
+75 461 y(to)d(add)h(a)f(few)g(functions)g(to)g(the)h(default)f
(functions)g(that)g(Readline)h(has)f(built)g(in.)19 b(If)14
-b(y)o(ou)f(need)h(to)f(do)75 535 y(something)j(other)h(than)f(adding)h
+b(y)o(ou)f(need)h(to)f(do)75 516 y(something)j(other)h(than)f(adding)h
(a)f(function)h(to)f(Readline,)h(y)o(ou)g(ma)o(y)f(need)i(to)e(use)h
-(the)g(underlying)75 590 y(functions)e(describ)q(ed)h(b)q(elo)o(w.)75
-700 y Fh(2.4.2)30 b(Selecting)20 b(a)h(Keymap)75 773
+(the)g(underlying)75 571 y(functions)e(describ)q(ed)h(b)q(elo)o(w.)75
+671 y Fh(2.4.2)30 b(Selecting)20 b(a)h(Keymap)75 744
y Fs(Key)f(bindings)f(tak)o(e)g(place)g(on)g(a)g Fi(k)o(eymap)p
Fs(.)32 b(The)20 b(k)o(eymap)f(is)g(the)g(asso)q(ciation)f(b)q(et)o(w)o
-(een)i(the)f(k)o(eys)75 828 y(that)14 b(the)g(user)g(t)o(yp)q(es)g(and)
+(een)i(the)f(k)o(eys)75 799 y(that)14 b(the)g(user)g(t)o(yp)q(es)g(and)
h(the)f(functions)g(that)g(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o
-(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 883 y(existing)g(k)o(eymaps,)h
+(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 854 y(existing)g(k)o(eymaps,)h
(and)g(tell)f(Readline)i(whic)o(h)f(k)o(eymap)g(to)f(use.)1675
-995 y([F)l(unction])-1801 b Fg(Keymap)27 b(rl_make_bare_keymap)f
-Ff(\()p Fi(v)o(oid)p Ff(\))195 1050 y Fs(Returns)13 b(a)e(new,)i(empt)o
+947 y([F)l(unction])-1801 b Fg(Keymap)27 b(rl_make_bare_keymap)f
+Ff(\()p Fi(v)o(oid)p Ff(\))195 1002 y Fs(Returns)13 b(a)e(new,)i(empt)o
(y)f(k)o(eymap.)18 b(The)13 b(space)f(for)f(the)i(k)o(eymap)e(is)h
-(allo)q(cated)f(with)g Fr(malloc\(\))p Fs(;)195 1105
+(allo)q(cated)f(with)g Fr(malloc\(\))p Fs(;)195 1056
y(the)k(caller)g(should)g(free)g(it)g(b)o(y)g(calling)f
-Fr(rl_discard_keymap\(\))e Fs(when)k(done.)1675 1217
-y([F)l(unction])-1801 b Fg(Keymap)27 b(rl_copy_keymap)e
-Ff(\()p Fi(Keymap)15 b(map)p Ff(\))195 1271 y Fs(Return)h(a)f(new)g(k)o
-(eymap)g(whic)o(h)g(is)g(a)g(cop)o(y)g(of)g Fi(map)q
-Fs(.)1675 1383 y([F)l(unction])-1801 b Fg(Keymap)27 b(rl_make_keymap)e
-Ff(\()p Fi(v)o(oid)p Ff(\))195 1438 y Fs(Return)16 b(a)g(new)g(k)o
-(eymap)f(with)g(the)h(prin)o(ting)f(c)o(haracters)f(b)q(ound)j(to)e(rl)
-p 1455 1438 V 20 w(insert,)f(the)i(lo)o(w)o(ercase)195
-1493 y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)e(equiv)m
-(alen)o(ts,)i(and)f(the)h(Meta)e(digits)g(b)q(ound)i(to)f(pro)q(duce)
-195 1548 y(n)o(umeric)k(argumen)o(ts.)1675 1660 y([F)l(unction])-1801
+Fr(rl_free_keymap\(\))f Fs(when)i(done.)1675 1149 y([F)l(unction])-1801
+b Fg(Keymap)27 b(rl_copy_keymap)e Ff(\()p Fi(Keymap)15
+b(map)p Ff(\))195 1204 y Fs(Return)h(a)f(new)g(k)o(eymap)g(whic)o(h)g
+(is)g(a)g(cop)o(y)g(of)g Fi(map)q Fs(.)1675 1297 y([F)l(unction])-1801
+b Fg(Keymap)27 b(rl_make_keymap)e Ff(\()p Fi(v)o(oid)p
+Ff(\))195 1352 y Fs(Return)16 b(a)g(new)g(k)o(eymap)f(with)g(the)h
+(prin)o(ting)f(c)o(haracters)f(b)q(ound)j(to)e(rl)p 1455
+1352 V 20 w(insert,)f(the)i(lo)o(w)o(ercase)195 1406
+y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)e(equiv)m(alen)
+o(ts,)i(and)f(the)h(Meta)e(digits)g(b)q(ound)i(to)f(pro)q(duce)195
+1461 y(n)o(umeric)k(argumen)o(ts.)1675 1554 y([F)l(unction])-1801
b Fg(void)27 b(rl_discard_keymap)e Ff(\()p Fi(Keymap)15
-b(k)o(eymap)p Ff(\))195 1715 y Fs(F)l(ree)g(the)h(storage)d(asso)q
-(ciated)i(with)f Fi(k)o(eymap)q Fs(.)137 1827 y(Readline)23
-b(has)g(sev)o(eral)f(in)o(ternal)f(k)o(eymaps.)42 b(These)23
-b(functions)f(allo)o(w)f(y)o(ou)h(to)g(c)o(hange)h(whic)o(h)75
-1882 y(k)o(eymap)15 b(is)g(activ)o(e.)1675 1994 y([F)l(unction])-1801
-b Fg(Keymap)27 b(rl_get_keymap)e Ff(\()p Fi(v)o(oid)p
-Ff(\))195 2048 y Fs(Returns)16 b(the)f(curren)o(tly)g(activ)o(e)f(k)o
-(eymap.)1675 2161 y([F)l(unction])-1801 b Fg(void)27
+b(k)o(eymap)p Ff(\))195 1609 y Fs(F)l(ree)f(the)h(storage)e(asso)q
+(ciated)h(with)g(the)g(data)g(in)g Fi(k)o(eymap)q Fs(.)20
+b(The)15 b(caller)e(should)i(free)f Fi(k)o(eymap)q Fs(.)1675
+1702 y([F)l(unction])-1801 b Fg(void)27 b(rl_free_keymap)e
+Ff(\()p Fi(Keymap)15 b(k)o(eymap)p Ff(\))195 1756 y Fs(F)l(ree)g(all)g
+(storage)f(asso)q(ciated)g(with)h Fi(k)o(eymap)q Fs(.)20
+b(This)15 b(calls)f Fr(rl_discard_keymap)f Fs(to)i(free)g(sub-)195
+1811 y(ordindate)g(k)o(eymaps)g(and)g(macros.)137 1904
+y(Readline)23 b(has)g(sev)o(eral)f(in)o(ternal)f(k)o(eymaps.)42
+b(These)23 b(functions)f(allo)o(w)f(y)o(ou)h(to)g(c)o(hange)h(whic)o(h)
+75 1959 y(k)o(eymap)15 b(is)g(activ)o(e.)1675 2051 y([F)l(unction])
+-1801 b Fg(Keymap)27 b(rl_get_keymap)e Ff(\()p Fi(v)o(oid)p
+Ff(\))195 2106 y Fs(Returns)16 b(the)f(curren)o(tly)g(activ)o(e)f(k)o
+(eymap.)1675 2199 y([F)l(unction])-1801 b Fg(void)27
b(rl_set_keymap)d Ff(\()p Fi(Keymap)16 b(k)o(eymap)p
-Ff(\))195 2215 y Fs(Mak)o(es)e Fi(k)o(eymap)j Fs(the)e(curren)o(tly)g
-(activ)o(e)f(k)o(eymap.)1675 2327 y([F)l(unction])-1801
+Ff(\))195 2254 y Fs(Mak)o(es)e Fi(k)o(eymap)j Fs(the)e(curren)o(tly)g
+(activ)o(e)f(k)o(eymap.)1675 2347 y([F)l(unction])-1801
b Fg(Keymap)27 b(rl_get_keymap_by_name)f Ff(\()p Fi(const)15
-b(c)o(har)f(*name)p Ff(\))195 2382 y Fs(Return)j(the)g(k)o(eymap)f
+b(c)o(har)f(*name)p Ff(\))195 2401 y Fs(Return)j(the)g(k)o(eymap)f
(matc)o(hing)f Fi(name)s Fs(.)23 b Fi(name)c Fs(is)d(one)h(whic)o(h)f
-(w)o(ould)g(b)q(e)h(supplied)g(in)f(a)g Fr(set)195 2437
+(w)o(ould)g(b)q(e)h(supplied)g(in)f(a)g Fr(set)195 2456
y(keymap)e Fs(inputrc)i(line)e(\(see)i(Section)f(1.3)f([Readline)h
(Init)g(File],)f(page)h(4\).)1675 2549 y([F)l(unction])-1801
b Fg(char)27 b(*)f(rl_get_keymap_name)g Ff(\()p Fi(Keymap)15
@@ -6910,276 +6962,297 @@ b(with)g(GNU)h(Readline)842 b(44)195 149 y(of)20 b(the)h(w)o(ord)g(to)f
Fr(')p Fs(')g(or)h(`)p Fr(")p Fs('\).)21 b(If)c Fi(quote)p
1185 204 V 19 w(c)o(har)i Fs(is)d(zero,)g(the)g(\014lename)g(w)o(as)f
(not)195 259 y(in)g(an)g(em)o(b)q(edded)i(string.)1685
-359 y([V)l(ariable])-1801 b Fg(rl_linebuf_func_t)29 b(*)d
-(rl_char_is_quoted_p)195 414 y Fs(A)18 b(p)q(oin)o(ter)g(to)g(a)g
+347 y([V)l(ariable])-1801 b Fg(rl_linebuf_func_t)29 b(*)d
+(rl_char_is_quoted_p)195 401 y Fs(A)18 b(p)q(oin)o(ter)g(to)g(a)g
(function)g(to)g(call)g(that)f(determines)i(whether)f(or)g(not)g(a)g
-(sp)q(eci\014c)i(c)o(haracter)195 469 y(in)d(the)g(line)g(bu\013er)g
+(sp)q(eci\014c)i(c)o(haracter)195 456 y(in)d(the)g(line)g(bu\013er)g
(is)g(quoted,)h(according)e(to)h(whatev)o(er)f(quoting)h(mec)o(hanism)g
-(the)g(program)195 524 y(calling)11 b(Readline)i(uses.)19
+(the)g(program)195 511 y(calling)11 b(Readline)i(uses.)19
b(The)12 b(function)h(is)e(called)h(with)g(t)o(w)o(o)f(argumen)o(ts:)18
-b Fi(text)q Fs(,)12 b(the)g(text)g(of)g(the)195 579 y(line,)j(and)g
+b Fi(text)q Fs(,)12 b(the)g(text)g(of)g(the)195 566 y(line,)j(and)g
Fi(index)s Fs(,)g(the)g(index)h(of)f(the)g(c)o(haracter)g(in)g(the)g
(line.)20 b(It)15 b(is)g(used)g(to)g(decide)h(whether)f(a)195
-633 y(c)o(haracter)f(found)i(in)f Fr(rl_completer_word_break_)o
+621 y(c)o(haracter)f(found)i(in)f Fr(rl_completer_word_break_)o
(charact)o(ers)d Fs(should)j(b)q(e)h(used)g(to)e(break)195
-688 y(w)o(ords)g(for)h(the)g(completer.)1685 789 y([V)l(ariable])-1801
+675 y(w)o(ords)g(for)h(the)g(completer.)1685 763 y([V)l(ariable])-1801
b Fg(rl_compignore_func_t)29 b(*)d(rl_ignore_some_compl)q(etions_)q
-(functio)q(n)195 844 y Fs(This)18 b(function,)i(if)e(de\014ned,)j(is)d
+(functio)q(n)195 818 y Fs(This)18 b(function,)i(if)e(de\014ned,)j(is)d
(called)g(b)o(y)h(the)g(completer)f(when)i(real)e(\014lename)h
-(completion)195 898 y(is)e(done,)g(after)f(all)g(the)h(matc)o(hing)f
+(completion)195 873 y(is)e(done,)g(after)f(all)g(the)h(matc)o(hing)f
(names)h(ha)o(v)o(e)g(b)q(een)h(generated.)25 b(It)17
-b(is)g(passed)g(a)g Fr(NULL)f Fs(ter-)195 953 y(minated)f(arra)o(y)f
+b(is)g(passed)g(a)g Fr(NULL)f Fs(ter-)195 928 y(minated)f(arra)o(y)f
(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o(t)g(\()p
Fr(matches[0])p Fs(\))e(is)i(the)h(maximal)e(substring)195
-1008 y(common)g(to)g(all)f(matc)o(hes.)19 b(This)14 b(function)g(can)h
+982 y(common)g(to)g(all)f(matc)o(hes.)19 b(This)14 b(function)g(can)h
(re-arrange)f(the)g(list)f(of)h(matc)o(hes)g(as)g(required,)195
-1063 y(but)h(eac)o(h)h(elemen)o(t)f(deleted)g(from)g(the)g(arra)o(y)f
-(m)o(ust)g(b)q(e)i(freed.)1685 1163 y([V)l(ariable])-1801
+1037 y(but)h(eac)o(h)h(elemen)o(t)f(deleted)g(from)g(the)g(arra)o(y)f
+(m)o(ust)g(b)q(e)i(freed.)1685 1125 y([V)l(ariable])-1801
b Fg(rl_icppfunc_t)28 b(*)e(rl_directory_completi)q(on_hoo)q(k)195
-1218 y Fs(This)c(function,)i(if)e(de\014ned,)k(is)c(allo)o(w)o(ed)f(to)
+1180 y Fs(This)c(function,)i(if)e(de\014ned,)k(is)c(allo)o(w)o(ed)f(to)
h(mo)q(dify)g(the)h(directory)f(p)q(ortion)g(of)g(\014lenames)195
-1273 y(Readline)d(completes.)28 b(It)19 b(is)e(called)h(with)g(the)g
+1234 y(Readline)d(completes.)28 b(It)19 b(is)e(called)h(with)g(the)g
(address)h(of)e(a)h(string)g(\(the)g(curren)o(t)g(directory)195
-1328 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)g
+1289 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)g
(that)g(string.)29 b(If)19 b(the)f(string)g(is)g(replaced)h(with)195
-1382 y(a)h(new)g(string,)g(the)g(old)f(v)m(alue)h(should)g(b)q(e)h
+1344 y(a)h(new)g(string,)g(the)g(old)f(v)m(alue)h(should)g(b)q(e)h
(freed.)34 b(An)o(y)20 b(mo)q(di\014ed)h(directory)e(name)h(should)195
-1437 y(ha)o(v)o(e)14 b(a)g(trailing)f(slash.)19 b(The)c(mo)q(di\014ed)g
+1399 y(ha)o(v)o(e)14 b(a)g(trailing)f(slash.)19 b(The)c(mo)q(di\014ed)g
(v)m(alue)g(will)e(b)q(e)i(displa)o(y)o(ed)f(as)g(part)g(of)h(the)f
-(completion,)195 1492 y(replacing)f(the)i(directory)e(p)q(ortion)g(of)h
+(completion,)195 1454 y(replacing)f(the)i(directory)e(p)q(ortion)g(of)h
(the)g(pathname)g(the)h(user)f(t)o(yp)q(ed.)20 b(It)14
-b(returns)g(an)g(in)o(teger)195 1547 y(that)i(should)g(b)q(e)h
+b(returns)g(an)g(in)o(teger)195 1508 y(that)i(should)g(b)q(e)h
(non-zero)g(if)f(the)h(function)f(mo)q(di\014es)h(its)e(directory)h
-(argumen)o(t.)23 b(It)17 b(could)f(b)q(e)195 1601 y(used)h(to)f(expand)
+(argumen)o(t.)23 b(It)17 b(could)f(b)q(e)195 1563 y(used)h(to)f(expand)
i(sym)o(b)q(olic)e(links)g(or)g(shell)g(v)m(ariables)h(in)f(pathnames.)
-24 b(A)o(t)17 b(the)g(least,)e(ev)o(en)i(if)195 1656
+24 b(A)o(t)17 b(the)g(least,)e(ev)o(en)i(if)195 1618
y(no)h(other)g(expansion)g(is)f(p)q(erformed,)i(this)f(function)g
(should)g(remo)o(v)o(e)f(an)o(y)h(quote)g(c)o(haracters)195
-1711 y(from)c(the)i(directory)e(name,)h(b)q(ecause)h(its)f(result)f
+1673 y(from)c(the)i(directory)e(name,)h(b)q(ecause)h(its)f(result)f
(will)g(b)q(e)i(passed)f(directly)g(to)f Fr(opendir\(\))p
-Fs(.)1685 1812 y([V)l(ariable])-1801 b Fg(rl_compdisp_func_t)29
-b(*)d(rl_completion_display_)q(matches)q(_hook)195 1866
-y Fs(If)11 b(non-zero,)h(then)f(this)g(is)f(the)h(address)g(of)g(a)g
-(function)f(to)h(call)f(when)h(completing)g(a)f(w)o(ord)h(w)o(ould)195
-1921 y(normally)f(displa)o(y)g(the)h(list)f(of)h(p)q(ossible)f(matc)o
-(hes.)18 b(This)11 b(function)g(is)g(called)f(in)h(lieu)g(of)g
-(Readline)195 1976 y(displa)o(ying)17 b(the)h(list.)28
+Fs(.)1685 1760 y([V)l(ariable])-1801 b Fg(rl_dequote_func_t)29
+b(*)d(rl_filename_rewrite_hoo)q(k)195 1815 y Fs(If)12
+b(non-zero,)h(this)e(is)g(the)h(address)g(of)g(a)f(function)h(called)f
+(when)i(reading)e(directory)g(en)o(tries)h(from)195 1870
+y(the)f(\014lesystem)f(for)g(completion)f(and)i(comparing)f(them)g(to)g
+(the)h(partial)d(w)o(ord)i(to)g(b)q(e)h(completed.)195
+1925 y(The)g(function)f(should)h(p)q(erform)f(an)o(y)h(necesary)g
+(application)e(or)h(system-sp)q(eci\014c)h(con)o(v)o(ersion)f(on)195
+1980 y(the)h(\014lename,)h(suc)o(h)f(as)g(con)o(v)o(erting)f(b)q(et)o
+(w)o(een)h(c)o(haracter)g(sets)g(or)f(con)o(v)o(erting)g(from)h(a)f
+(\014lesystem)195 2034 y(format)16 b(to)g(a)h(c)o(haracter)f(input)h
+(format.)24 b(The)17 b(function)g(tak)o(es)f(t)o(w)o(o)g(argumen)o(ts:)
+22 b Fi(fname)s Fs(,)17 b(the)195 2089 y(\014lename)d(to)g(b)q(e)h(con)
+o(v)o(erted,)f(and)g Fi(fnlen)p Fs(,)h(its)e(length)h(in)g(b)o(ytes.)20
+b(It)14 b(m)o(ust)g(either)g(return)g(its)f(\014rst)195
+2144 y(argumen)o(t)i(\(if)f(no)h(con)o(v)o(ersion)g(tak)o(es)g(place\))
+g(or)g(the)g(con)o(v)o(erted)g(\014lename)h(in)f(newly-allo)q(cated)195
+2199 y(memory)l(.)23 b(The)16 b(con)o(v)o(erted)h(form)e(is)h(used)h
+(to)f(compare)g(against)f(the)h(w)o(ord)g(to)f(b)q(e)i(completed,)195
+2254 y(and,)i(if)e(it)h(matc)o(hes,)g(is)g(added)g(to)g(the)g(list)f
+(of)h(matc)o(hes.)28 b(Readline)19 b(will)d(free)j(the)f(allo)q(cated)
+195 2308 y(string.)1685 2396 y([V)l(ariable])-1801 b
+Fg(rl_compdisp_func_t)29 b(*)d(rl_completion_display_)q(matches)q
+(_hook)195 2451 y Fs(If)11 b(non-zero,)h(then)f(this)g(is)f(the)h
+(address)g(of)g(a)g(function)f(to)h(call)f(when)h(completing)g(a)f(w)o
+(ord)h(w)o(ould)195 2506 y(normally)f(displa)o(y)g(the)h(list)f(of)h(p)
+q(ossible)f(matc)o(hes.)18 b(This)11 b(function)g(is)g(called)f(in)h
+(lieu)g(of)g(Readline)195 2560 y(displa)o(ying)17 b(the)h(list.)28
b(It)18 b(tak)o(es)g(three)g(argumen)o(ts:)25 b(\()p
Fr(char)14 b(**)p Fi(matc)o(hes)r Fs(,)k Fr(int)g Fi(n)o(um)p
-1683 1976 V 20 w(matc)o(hes)r Fs(,)195 2031 y Fr(int)13
-b Fi(max)p 368 2031 V 19 w(length)p Fs(\))g(where)g Fi(matc)o(hes)i
+1683 2560 V 20 w(matc)o(hes)r Fs(,)195 2615 y Fr(int)13
+b Fi(max)p 368 2615 V 19 w(length)p Fs(\))g(where)g Fi(matc)o(hes)i
Fs(is)e(the)g(arra)o(y)f(of)h(matc)o(hing)f(strings,)g
-Fi(n)o(um)p 1575 2031 V 20 w(matc)o(hes)j Fs(is)e(the)195
-2086 y(n)o(um)o(b)q(er)i(of)f(strings)f(in)i(that)f(arra)o(y)l(,)f(and)
-i Fi(max)p 1011 2086 V 19 w(length)f Fs(is)g(the)h(length)f(of)g(the)h
-(longest)f(string)f(in)195 2140 y(that)g(arra)o(y)l(.)19
+Fi(n)o(um)p 1575 2615 V 20 w(matc)o(hes)j Fs(is)e(the)195
+2670 y(n)o(um)o(b)q(er)i(of)f(strings)f(in)i(that)f(arra)o(y)l(,)f(and)
+i Fi(max)p 1011 2670 V 19 w(length)f Fs(is)g(the)h(length)f(of)g(the)h
+(longest)f(string)f(in)p eop end
+%%Page: 45 49
+TeXDict begin 45 48 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14
+b(with)g(GNU)h(Readline)842 b(45)195 149 y(that)13 b(arra)o(y)l(.)19
b(Readline)14 b(pro)o(vides)g(a)f(con)o(v)o(enience)i(function,)f
-Fr(rl_display_match_list)p Fs(,)d(that)195 2195 y(tak)o(es)17
+Fr(rl_display_match_list)p Fs(,)d(that)195 204 y(tak)o(es)17
b(care)g(of)g(doing)g(the)g(displa)o(y)g(to)f(Readline's)i(output)f
(stream.)26 b(That)16 b(function)i(ma)o(y)e(b)q(e)195
-2250 y(called)f(from)f(this)h(ho)q(ok.)1685 2350 y([V)l(ariable])-1801
+259 y(called)f(from)f(this)h(ho)q(ok.)1685 344 y([V)l(ariable])-1801
b Fg(const)27 b(char)g(*)f(rl_basic_word_break_char)q(acters)195
-2405 y Fs(The)c(basic)g(list)f(of)h(c)o(haracters)f(that)g(signal)g(a)h
+399 y Fs(The)c(basic)g(list)f(of)h(c)o(haracters)f(that)g(signal)g(a)h
(break)g(b)q(et)o(w)o(een)g(w)o(ords)g(for)f(the)h(completer)195
-2460 y(routine.)29 b(The)19 b(default)f(v)m(alue)h(of)f(this)g(v)m
+454 y(routine.)29 b(The)19 b(default)f(v)m(alue)h(of)f(this)g(v)m
(ariable)g(is)g(the)h(c)o(haracters)f(whic)o(h)g(break)h(w)o(ords)f
-(for)195 2515 y(completion)c(in)h(Bash:)20 b Fr(")15
-b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fs(.)1685 2615 y([V)l(ariable])-1801
+(for)195 509 y(completion)c(in)h(Bash:)20 b Fr(")15 b
+(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fs(.)1685 594 y([V)l(ariable])-1801
b Fg(const)27 b(char)g(*)f(rl_basic_quote_character)q(s)195
-2670 y Fs(A)15 b(list)f(of)h(quote)g(c)o(haracters)f(whic)o(h)h(can)h
-(cause)f(a)g(w)o(ord)g(break.)p eop end
-%%Page: 45 49
-TeXDict begin 45 48 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14
-b(with)g(GNU)h(Readline)842 b(45)1685 149 y([V)l(ariable])-1801
+649 y Fs(A)15 b(list)f(of)h(quote)g(c)o(haracters)f(whic)o(h)h(can)h
+(cause)f(a)g(w)o(ord)g(break.)1685 734 y([V)l(ariable])-1801
b Fg(const)27 b(char)g(*)f(rl_completer_word_break_)q(charac)q(ters)195
-204 y Fs(The)33 b(list)e(of)h(c)o(haracters)g(that)f(signal)h(a)g
+789 y Fs(The)33 b(list)e(of)h(c)o(haracters)g(that)f(signal)h(a)g
(break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Fr(rl_complete_)195
-259 y(internal\(\))p Fs(.)18 b(The)e(default)f(list)f(is)g(the)i(v)m
+844 y(internal\(\))p Fs(.)18 b(The)e(default)f(list)f(is)g(the)i(v)m
(alue)f(of)g Fr(rl_basic_word_break_chara)o(cters)p Fs(.)1685
-355 y([V)l(ariable])-1801 b Fg(rl_cpvfunc_t)28 b(*)e
-(rl_completion_word_bre)q(ak_hoo)q(k)195 410 y Fs(If)16
+929 y([V)l(ariable])-1801 b Fg(rl_cpvfunc_t)28 b(*)e
+(rl_completion_word_bre)q(ak_hoo)q(k)195 984 y Fs(If)16
b(non-zero,)g(this)f(is)g(the)h(address)g(of)f(a)h(function)f(to)g
-(call)g(when)i(Readline)f(is)f(deciding)h(where)195 465
+(call)g(when)i(Readline)f(is)f(deciding)h(where)195 1038
y(to)h(separate)f(w)o(ords)h(for)f(w)o(ord)g(completion.)25
b(It)18 b(should)f(return)g(a)g(c)o(haracter)f(string)g(lik)o(e)g
-Fr(rl_)195 519 y(completer_word_break_chara)o(cters)d
+Fr(rl_)195 1093 y(completer_word_break_chara)o(cters)d
Fs(to)j(b)q(e)h(used)g(to)f(p)q(erform)g(the)h(curren)o(t)f
-(completion.)195 574 y(The)d(function)f(ma)o(y)f(c)o(ho)q(ose)i(to)f
+(completion.)195 1148 y(The)d(function)f(ma)o(y)f(c)o(ho)q(ose)i(to)f
(set)g Fr(rl_completer_word_break_)o(charact)o(ers)d
-Fs(itself.)18 b(If)13 b(the)195 629 y(function)i(returns)g
+Fs(itself.)18 b(If)13 b(the)195 1203 y(function)i(returns)g
Fr(NULL)p Fs(,)f Fr(rl_completer_word_break_chara)o(cters)e
-Fs(is)j(used.)1685 725 y([V)l(ariable])-1801 b Fg(const)27
-b(char)g(*)f(rl_completer_quote_chara)q(cters)195 780
+Fs(is)j(used.)1685 1288 y([V)l(ariable])-1801 b Fg(const)27
+b(char)g(*)f(rl_completer_quote_chara)q(cters)195 1343
y Fs(A)17 b(list)f(of)g(c)o(haracters)g(whic)o(h)h(can)g(b)q(e)g(used)h
(to)e(quote)h(a)f(substring)g(of)h(the)g(line.)24 b(Completion)195
-834 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)f(substring,)h(and)g(within)g
-(the)g(substring)f Fr(rl_completer_word_break_)195 889
+1398 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)f(substring,)h(and)g(within)
+g(the)g(substring)f Fr(rl_completer_word_break_)195 1452
y(characters)k Fs(are)h(treated)g(as)h(an)o(y)f(other)g(c)o(haracter,)g
(unless)h(they)f(also)g(app)q(ear)h(within)f(this)195
-944 y(list.)1685 1040 y([V)l(ariable])-1801 b Fg(const)27
-b(char)g(*)f(rl_filename_quote_charac)q(ters)195 1095
+1507 y(list.)1685 1592 y([V)l(ariable])-1801 b Fg(const)27
+b(char)g(*)f(rl_filename_quote_charac)q(ters)195 1647
y Fs(A)17 b(list)f(of)g(c)o(haracters)g(that)g(cause)h(a)g(\014lename)g
(to)f(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)g(when)g(they)195
-1149 y(app)q(ear)e(in)g(a)g(completed)g(\014lename.)20
-b(The)c(default)f(is)f(the)i(n)o(ull)e(string.)1685 1245
+1702 y(app)q(ear)e(in)g(a)g(completed)g(\014lename.)20
+b(The)c(default)f(is)f(the)i(n)o(ull)e(string.)1685 1787
y([V)l(ariable])-1801 b Fg(const)27 b(char)g(*)f(rl_special_prefixes)
-195 1300 y Fs(The)14 b(list)f(of)g(c)o(haracters)g(that)g(are)h(w)o
+195 1842 y Fs(The)14 b(list)f(of)g(c)o(haracters)g(that)g(are)h(w)o
(ord)f(break)h(c)o(haracters,)f(but)h(should)g(b)q(e)g(left)f(in)h
-Fi(text)g Fs(when)195 1355 y(it)e(is)f(passed)i(to)f(the)g(completion)f
+Fi(text)g Fs(when)195 1897 y(it)e(is)f(passed)i(to)f(the)g(completion)f
(function.)19 b(Programs)11 b(can)h(use)h(this)f(to)g(help)g(determine)
-h(what)195 1410 y(kind)i(of)f(completing)g(to)g(do.)19
+h(what)195 1952 y(kind)i(of)f(completing)g(to)g(do.)19
b(F)l(or)14 b(instance,)h(Bash)f(sets)h(this)f(v)m(ariable)g(to)g
-Fr(")p Fs($)p Fr(@")g Fs(so)g(that)g(it)g(can)195 1465
+Fr(")p Fs($)p Fr(@")g Fs(so)g(that)g(it)g(can)195 2006
y(complete)h(shell)g(v)m(ariables)f(and)i(hostnames.)1685
-1560 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_query_items)195
-1615 y Fs(Up)18 b(to)g(this)f(man)o(y)h(items)f(will)g(b)q(e)i(displa)o
+2092 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_query_items)195
+2146 y Fs(Up)18 b(to)g(this)f(man)o(y)h(items)f(will)g(b)q(e)i(displa)o
(y)o(ed)e(in)h(resp)q(onse)h(to)e(a)h(p)q(ossible-completions)f(call.)
-195 1670 y(After)d(that,)f(readline)g(asks)h(the)g(user)g(if)f(she)h
+195 2201 y(After)d(that,)f(readline)g(asks)h(the)g(user)g(if)f(she)h
(is)g(sure)g(she)g(w)o(an)o(ts)f(to)g(see)h(them)g(all.)k(The)c
-(default)195 1725 y(v)m(alue)h(is)g(100.)k(A)c(negativ)o(e)g(v)m(alue)g
+(default)195 2256 y(v)m(alue)h(is)g(100.)k(A)c(negativ)o(e)g(v)m(alue)g
(indicates)g(that)f(Readline)i(should)f(nev)o(er)g(ask)g(the)g(user.)
-1685 1821 y([V)l(ariable])-1801 b Fg(int)27 b
-(rl_completion_append_chara)q(cter)195 1875 y Fs(When)17
+1685 2341 y([V)l(ariable])-1801 b Fg(int)27 b
+(rl_completion_append_chara)q(cter)195 2396 y Fs(When)17
b(a)f(single)g(completion)g(alternativ)o(e)f(matc)o(hes)h(at)g(the)h
-(end)g(of)f(the)h(command)f(line,)h(this)195 1930 y(c)o(haracter)10
+(end)g(of)f(the)h(command)f(line,)h(this)195 2451 y(c)o(haracter)10
b(is)g(app)q(ended)j(to)d(the)g(inserted)h(completion)f(text.)18
b(The)11 b(default)f(is)g(a)h(space)g(c)o(haracter)195
-1985 y(\(`)j('\).)42 b(Setting)22 b(this)g(to)g(the)h(n)o(ull)f(c)o
+2506 y(\(`)j('\).)42 b(Setting)22 b(this)g(to)g(the)h(n)o(ull)f(c)o
(haracter)g(\(`)p Fr(\\0)p Fs('\))f(prev)o(en)o(ts)i(an)o(ything)e(b)q
-(eing)i(app)q(ended)195 2040 y(automatically)l(.)29 b(This)18
+(eing)i(app)q(ended)195 2560 y(automatically)l(.)29 b(This)18
b(can)h(b)q(e)h(c)o(hanged)f(in)f(application-sp)q(eci\014c)h
-(completion)f(functions)h(to)195 2095 y(pro)o(vide)g(the)h(\\most)f
+(completion)f(functions)h(to)195 2615 y(pro)o(vide)g(the)h(\\most)f
(sensible)h(w)o(ord)f(separator)g(c)o(haracter")g(according)g(to)g(an)h
-(application-)195 2149 y(sp)q(eci\014c)c(command)f(line)g(syn)o(tax)f
-(sp)q(eci\014cation.)1685 2245 y([V)l(ariable])-1801
-b Fg(int)27 b(rl_completion_suppress_app)q(end)195 2300
-y Fs(If)17 b(non-zero,)g Fi(rl)p 475 2300 14 2 v 19 w(completion)p
-712 2300 V 19 w(app)q(end)p 875 2300 V 22 w(c)o(haracter)i
-Fs(is)d(not)g(app)q(ended)i(to)e(matc)o(hes)h(at)f(the)g(end)195
-2355 y(of)d(the)h(command)g(line,)f(as)h(describ)q(ed)g(ab)q(o)o(v)o
-(e.)19 b(It)14 b(is)g(set)f(to)g(0)h(b)q(efore)g(an)o(y)f
-(application-sp)q(eci\014c)195 2410 y(completion)h(function)h(is)g
-(called,)f(and)i(ma)o(y)e(only)h(b)q(e)h(c)o(hanged)f(within)g(suc)o(h)
-g(a)g(function.)1685 2506 y([V)l(ariable])-1801 b Fg(int)27
-b(rl_completion_quote_charac)q(ter)195 2560 y Fs(When)18
-b(Readline)h(is)e(completing)h(quoted)g(text,)g(as)f(delimited)h(b)o(y)
-g(one)g(of)g(the)g(c)o(haracters)f(in)195 2615 y Fi(rl)p
-229 2615 V 19 w(completer)p 443 2615 V 20 w(quote)p 573
-2615 V 20 w(c)o(haracters)r Fs(,)i(it)f(sets)h(this)g(v)m(ariable)g(to)
-g(the)g(quoting)f(c)o(haracter)h(found.)195 2670 y(This)c(is)f(set)h(b)
-q(efore)h(an)o(y)f(application-sp)q(eci\014c)g(completion)f(function)h
-(is)g(called.)p eop end
+(application-)195 2670 y(sp)q(eci\014c)c(command)f(line)g(syn)o(tax)f
+(sp)q(eci\014cation.)p eop end
%%Page: 46 50
TeXDict begin 46 49 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14
b(with)g(GNU)h(Readline)842 b(46)1685 149 y([V)l(ariable])-1801
-b Fg(int)27 b(rl_completion_suppress_quo)q(te)195 204
+b Fg(int)27 b(rl_completion_suppress_app)q(end)195 204
+y Fs(If)17 b(non-zero,)g Fi(rl)p 475 204 14 2 v 19 w(completion)p
+712 204 V 19 w(app)q(end)p 875 204 V 22 w(c)o(haracter)i
+Fs(is)d(not)g(app)q(ended)i(to)e(matc)o(hes)h(at)f(the)g(end)195
+259 y(of)d(the)h(command)g(line,)f(as)h(describ)q(ed)g(ab)q(o)o(v)o(e.)
+19 b(It)14 b(is)g(set)f(to)g(0)h(b)q(efore)g(an)o(y)f(application-sp)q
+(eci\014c)195 314 y(completion)h(function)h(is)g(called,)f(and)i(ma)o
+(y)e(only)h(b)q(e)h(c)o(hanged)f(within)g(suc)o(h)g(a)g(function.)1685
+423 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_quote_charac)q
+(ter)195 478 y Fs(When)18 b(Readline)h(is)e(completing)h(quoted)g
+(text,)g(as)f(delimited)h(b)o(y)g(one)g(of)g(the)g(c)o(haracters)f(in)
+195 533 y Fi(rl)p 229 533 V 19 w(completer)p 443 533
+V 20 w(quote)p 573 533 V 20 w(c)o(haracters)r Fs(,)i(it)f(sets)h(this)g
+(v)m(ariable)g(to)g(the)g(quoting)f(c)o(haracter)h(found.)195
+588 y(This)c(is)f(set)h(b)q(efore)h(an)o(y)f(application-sp)q(eci\014c)
+g(completion)f(function)h(is)g(called.)1685 697 y([V)l(ariable])-1801
+b Fg(int)27 b(rl_completion_suppress_quo)q(te)195 752
y Fs(If)16 b(non-zero,)h(Readline)f(do)q(es)h(not)e(app)q(end)j(a)d
(matc)o(hing)h(quote)g(c)o(haracter)f(when)i(p)q(erforming)195
-259 y(completion)11 b(on)h(a)f(quoted)h(string.)18 b(It)11
+807 y(completion)11 b(on)h(a)f(quoted)h(string.)18 b(It)11
b(is)h(set)f(to)g(0)h(b)q(efore)g(an)o(y)f(application-sp)q(eci\014c)h
-(completion)195 314 y(function)j(is)g(called,)f(and)i(ma)o(y)e(only)h
+(completion)195 862 y(function)j(is)g(called,)f(and)i(ma)o(y)e(only)h
(b)q(e)h(c)o(hanged)f(within)g(suc)o(h)g(a)g(function.)1685
-408 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_found_quote)195
-463 y Fs(When)16 b(Readline)g(is)g(completing)f(quoted)g(text,)h(it)f
+971 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_found_quote)195
+1026 y Fs(When)16 b(Readline)g(is)g(completing)f(quoted)g(text,)h(it)f
(sets)g(this)g(v)m(ariable)h(to)f(a)g(non-zero)h(v)m(alue)g(if)195
-517 y(the)11 b(w)o(ord)e(b)q(eing)i(completed)g(con)o(tains)e(or)i(is)f
-(delimited)f(b)o(y)i(an)o(y)f(quoting)g(c)o(haracters,)g(including)195
-572 y(bac)o(kslashes.)19 b(This)c(is)g(set)g(b)q(efore)g(an)o(y)g
+1081 y(the)11 b(w)o(ord)e(b)q(eing)i(completed)g(con)o(tains)e(or)i(is)
+f(delimited)f(b)o(y)i(an)o(y)f(quoting)g(c)o(haracters,)g(including)195
+1136 y(bac)o(kslashes.)19 b(This)c(is)g(set)g(b)q(efore)g(an)o(y)g
(application-sp)q(eci\014c)g(completion)f(function)h(is)g(called.)1685
-666 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_mark_symlink)q
-(_dirs)195 721 y Fs(If)16 b(non-zero,)g(a)g(slash)f(will)g(b)q(e)h(app)
-q(ended)i(to)d(completed)h(\014lenames)g(that)f(are)g(sym)o(b)q(olic)h
-(links)195 776 y(to)11 b(directory)h(names,)g(sub)s(ject)g(to)f(the)i
-(v)m(alue)f(of)g(the)g(user-settable)f Fi(mark-directories)i
-Fs(v)m(ariable.)195 830 y(This)g(v)m(ariable)g(exists)g(so)h(that)f
+1245 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_mark_symlink)q
+(_dirs)195 1300 y Fs(If)16 b(non-zero,)g(a)g(slash)f(will)g(b)q(e)h
+(app)q(ended)i(to)d(completed)h(\014lenames)g(that)f(are)g(sym)o(b)q
+(olic)h(links)195 1355 y(to)11 b(directory)h(names,)g(sub)s(ject)g(to)f
+(the)i(v)m(alue)f(of)g(the)g(user-settable)f Fi(mark-directories)i
+Fs(v)m(ariable.)195 1410 y(This)g(v)m(ariable)g(exists)g(so)h(that)f
(application-sp)q(eci\014c)g(completion)g(functions)g(can)h(o)o(v)o
-(erride)f(the)195 885 y(user's)21 b(global)f(preference)i(\(set)e(via)h
-(the)g Fi(mark-symlink)o(ed-directories)g Fs(Readline)h(v)m(ariable\))
-195 940 y(if)c(appropriate.)30 b(This)18 b(v)m(ariable)g(is)h(set)f(to)
-g(the)h(user's)g(preference)h(b)q(efore)f(an)o(y)f(application-)195
-995 y(sp)q(eci\014c)f(completion)e(function)g(is)h(called,)f(so)g
+(erride)f(the)195 1465 y(user's)21 b(global)f(preference)i(\(set)e(via)
+h(the)g Fi(mark-symlink)o(ed-directories)g Fs(Readline)h(v)m(ariable\))
+195 1519 y(if)c(appropriate.)30 b(This)18 b(v)m(ariable)g(is)h(set)f
+(to)g(the)h(user's)g(preference)h(b)q(efore)f(an)o(y)f(application-)195
+1574 y(sp)q(eci\014c)f(completion)e(function)g(is)h(called,)f(so)g
(unless)h(that)f(function)h(mo)q(di\014es)g(the)g(v)m(alue,)g(the)195
-1050 y(user's)f(preferences)h(are)f(honored.)1685 1144
+1629 y(user's)f(preferences)h(are)f(honored.)1685 1738
y([V)l(ariable])-1801 b Fg(int)27 b(rl_ignore_completion_dupli)q(cates)
-195 1198 y Fs(If)15 b(non-zero,)h(then)f(duplicates)g(in)g(the)g(matc)o
+195 1793 y Fs(If)15 b(non-zero,)h(then)f(duplicates)g(in)g(the)g(matc)o
(hes)g(are)g(remo)o(v)o(ed.)k(The)d(default)f(is)f(1.)1685
-1292 y([V)l(ariable])-1801 b Fg(int)27 b(rl_filename_completion_des)q
-(ired)195 1347 y Fs(Non-zero)16 b(means)g(that)f(the)h(results)f(of)h
+1903 y([V)l(ariable])-1801 b Fg(int)27 b(rl_filename_completion_des)q
+(ired)195 1958 y Fs(Non-zero)16 b(means)g(that)f(the)h(results)f(of)h
(the)g(matc)o(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g(\014lenames.)22
-b(This)195 1402 y(is)d Fj(always)24 b Fs(zero)c(when)g(completion)f(is)
+b(This)195 2012 y(is)d Fj(always)24 b Fs(zero)c(when)g(completion)f(is)
h(attempted,)g(and)g(can)g(only)g(b)q(e)h(c)o(hanged)f(within)f(an)195
-1457 y(application-sp)q(eci\014c)g(completion)g(function.)34
+2067 y(application-sp)q(eci\014c)g(completion)g(function.)34
b(If)20 b(it)e(is)i(set)f(to)g(a)h(non-zero)g(v)m(alue)g(b)o(y)f(suc)o
-(h)h(a)195 1511 y(function,)11 b(directory)g(names)g(ha)o(v)o(e)g(a)f
+(h)h(a)195 2122 y(function,)11 b(directory)g(names)g(ha)o(v)o(e)g(a)f
(slash)h(app)q(ended)i(and)e(Readline)g(attempts)g(to)f(quote)h(com-)
-195 1566 y(pleted)18 b(\014lenames)f(if)g(they)h(con)o(tain)f(an)o(y)g
+195 2177 y(pleted)18 b(\014lenames)f(if)g(they)h(con)o(tain)f(an)o(y)g
(c)o(haracters)f(in)i Fr(rl_filename_quote_charact)o(ers)195
-1621 y Fs(and)d Fr(rl_filename_quoting_desired)d Fs(is)j(set)g(to)f(a)h
-(non-zero)g(v)m(alue.)1685 1715 y([V)l(ariable])-1801
-b Fg(int)27 b(rl_filename_quoting_desire)q(d)195 1770
+2232 y Fs(and)d Fr(rl_filename_quoting_desired)d Fs(is)j(set)g(to)f(a)h
+(non-zero)g(v)m(alue.)1685 2341 y([V)l(ariable])-1801
+b Fg(int)27 b(rl_filename_quoting_desire)q(d)195 2396
y Fs(Non-zero)14 b(means)g(that)f(the)i(results)e(of)h(the)g(matc)o
(hes)f(are)h(to)f(b)q(e)i(quoted)f(using)g(double)g(quotes)195
-1825 y(\(or)20 b(an)i(application-sp)q(eci\014c)e(quoting)h(mec)o
+2451 y(\(or)20 b(an)i(application-sp)q(eci\014c)e(quoting)h(mec)o
(hanism\))f(if)h(the)g(completed)h(\014lename)f(con)o(tains)195
-1879 y(an)o(y)13 b(c)o(haracters)h(in)f Fr(rl_filename_quote_chars)p
+2506 y(an)o(y)13 b(c)o(haracters)h(in)f Fr(rl_filename_quote_chars)p
Fs(.)j(This)e(is)f Fj(always)18 b Fs(non-zero)c(when)g(comple-)195
-1934 y(tion)f(is)g(attempted,)h(and)g(can)g(only)f(b)q(e)h(c)o(hanged)h
+2560 y(tion)f(is)g(attempted,)h(and)g(can)g(only)f(b)q(e)h(c)o(hanged)h
(within)e(an)g(application-sp)q(eci\014c)h(completion)195
-1989 y(function.)k(The)11 b(quoting)f(is)g(e\013ected)g(via)g(a)g(call)
+2615 y(function.)k(The)11 b(quoting)f(is)g(e\013ected)g(via)g(a)g(call)
g(to)g(the)h(function)f(p)q(oin)o(ted)g(to)g(b)o(y)h
-Fr(rl_filename_)195 2044 y(quoting_function)p Fs(.)1685
-2138 y([V)l(ariable])-1801 b Fg(int)27 b(rl_attempted_completion_ov)q
-(er)195 2192 y Fs(If)47 b(an)g(application-sp)q(eci\014c)g(completion)f
-(function)h(assigned)f(to)h Fr(rl_attempted_)195 2247
-y(completion_function)24 b Fs(sets)i(this)g(v)m(ariable)g(to)g(a)g
-(non-zero)h(v)m(alue,)i(Readline)e(will)e(not)195 2302
-y(p)q(erform)15 b(its)f(default)g(\014lename)h(completion)f(ev)o(en)h
-(if)f(the)h(application's)e(completion)h(function)195
-2357 y(returns)h(no)g(matc)o(hes.)20 b(It)15 b(should)g(b)q(e)h(set)f
-(only)g(b)o(y)g(an)g(application's)e(completion)i(function.)1685
-2451 y([V)l(ariable])-1801 b Fg(int)27 b(rl_sort_completion_matches)195
-2506 y Fs(If)15 b(an)g(application)f(sets)g(this)h(v)m(ariable)f(to)g
-(0,)g(Readline)i(will)d(not)i(sort)f(the)h(list)e(of)i(completions)195
-2560 y(\(whic)o(h)d(implies)f(that)h(it)f(cannot)h(remo)o(v)o(e)g(an)o
-(y)g(duplicate)g(completions\).)18 b(The)12 b(default)g(v)m(alue)g(is)
-195 2615 y(1,)j(whic)o(h)g(means)h(that)f(Readline)h(will)e(sort)h(the)
-g(completions)g(and,)h(dep)q(ending)g(on)g(the)g(v)m(alue)195
-2670 y(of)f Fr(rl_ignore_completion_dup)o(licates)p Fs(,)c(will)j
-(attempt)g(to)h(remo)o(v)o(e)f(duplicate)h(matc)o(hes.)p
+Fr(rl_filename_)195 2670 y(quoting_function)p Fs(.)p
eop end
%%Page: 47 51
TeXDict begin 47 50 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14
b(with)g(GNU)h(Readline)842 b(47)1685 149 y([V)l(ariable])-1801
-b Fg(int)27 b(rl_completion_type)195 204 y Fs(Set)18
-b(to)e(a)i(c)o(haracter)f(describing)g(the)g(t)o(yp)q(e)h(of)f
-(completion)g(Readline)h(is)f(curren)o(tly)g(attempt-)195
-259 y(ing;)g(see)g(the)f(description)g(of)h Fr
+b Fg(int)27 b(rl_attempted_completion_ov)q(er)195 204
+y Fs(If)47 b(an)g(application-sp)q(eci\014c)g(completion)f(function)h
+(assigned)f(to)h Fr(rl_attempted_)195 259 y(completion_function)24
+b Fs(sets)i(this)g(v)m(ariable)g(to)g(a)g(non-zero)h(v)m(alue,)i
+(Readline)e(will)e(not)195 314 y(p)q(erform)15 b(its)f(default)g
+(\014lename)h(completion)f(ev)o(en)h(if)f(the)h(application's)e
+(completion)h(function)195 369 y(returns)h(no)g(matc)o(hes.)20
+b(It)15 b(should)g(b)q(e)h(set)f(only)g(b)o(y)g(an)g(application's)e
+(completion)i(function.)1685 461 y([V)l(ariable])-1801
+b Fg(int)27 b(rl_sort_completion_matches)195 516 y Fs(If)15
+b(an)g(application)f(sets)g(this)h(v)m(ariable)f(to)g(0,)g(Readline)i
+(will)d(not)i(sort)f(the)h(list)e(of)i(completions)195
+570 y(\(whic)o(h)d(implies)f(that)h(it)f(cannot)h(remo)o(v)o(e)g(an)o
+(y)g(duplicate)g(completions\).)18 b(The)12 b(default)g(v)m(alue)g(is)
+195 625 y(1,)j(whic)o(h)g(means)h(that)f(Readline)h(will)e(sort)h(the)g
+(completions)g(and,)h(dep)q(ending)g(on)g(the)g(v)m(alue)195
+680 y(of)f Fr(rl_ignore_completion_dup)o(licates)p Fs(,)c(will)j
+(attempt)g(to)h(remo)o(v)o(e)f(duplicate)h(matc)o(hes.)1685
+772 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_type)195
+827 y Fs(Set)18 b(to)e(a)i(c)o(haracter)f(describing)g(the)g(t)o(yp)q
+(e)h(of)f(completion)g(Readline)h(is)f(curren)o(tly)g(attempt-)195
+882 y(ing;)g(see)g(the)f(description)g(of)h Fr
(rl_complete_internal\(\))c Fs(\(see)k(Section)g(2.6.2)e([Completion)
-195 314 y(F)l(unctions],)j(page)g(42\))g(for)f(the)i(list)e(of)h(c)o
+195 936 y(F)l(unctions],)j(page)g(42\))g(for)f(the)i(list)e(of)h(c)o
(haracters.)28 b(This)18 b(is)g(set)g(to)g(the)g(appropriate)g(v)m
-(alue)195 369 y(b)q(efore)e(an)o(y)g(application-sp)q(eci\014c)f
+(alue)195 991 y(b)q(efore)e(an)o(y)g(application-sp)q(eci\014c)f
(completion)g(function)h(is)f(called,)g(allo)o(wing)f(suc)o(h)i
-(functions)195 423 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)f(as)h
-Fr(rl_complete\(\))p Fs(.)1685 516 y([V)l(ariable])-1801
-b Fg(int)27 b(rl_completion_invoking_key)195 570 y Fs(Set)20
+(functions)195 1046 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)f(as)
+h Fr(rl_complete\(\))p Fs(.)1685 1138 y([V)l(ariable])-1801
+b Fg(int)27 b(rl_completion_invoking_key)195 1193 y Fs(Set)20
b(to)g(the)h(\014nal)f(c)o(haracter)f(in)i(the)f(k)o(ey)g(sequence)i
(that)d(in)o(v)o(ok)o(ed)h(one)g(of)g(the)h(completion)195
-625 y(functions)e(that)f(call)f Fr(rl_complete_internal\(\))p
+1248 y(functions)e(that)f(call)f Fr(rl_complete_internal\(\))p
Fs(.)28 b(This)18 b(is)h(set)f(to)g(the)h(appropriate)f(v)m(alue)195
-680 y(b)q(efore)d(an)o(y)g(application-sp)q(eci\014c)g(completion)g
-(function)g(is)f(called.)1685 772 y([V)l(ariable])-1801
-b Fg(int)27 b(rl_inhibit_completion)195 827 y Fs(If)14
+1303 y(b)q(efore)d(an)o(y)g(application-sp)q(eci\014c)g(completion)g
+(function)g(is)f(called.)1685 1395 y([V)l(ariable])-1801
+b Fg(int)27 b(rl_inhibit_completion)195 1450 y Fs(If)14
b(this)g(v)m(ariable)f(is)h(non-zero,)g(completion)g(is)f(inhibited.)19
b(The)c(completion)e(c)o(haracter)g(will)g(b)q(e)195
-882 y(inserted)i(as)g(an)o(y)g(other)g(b)q(ound)h(to)e
-Fr(self-insert)p Fs(.)75 981 y Fh(2.6.4)30 b(A)21 b(Short)f(Completion)
-g(Example)75 1055 y Fs(Here)15 b(is)f(a)g(small)f(application)g
-(demonstrating)h(the)g(use)h(of)f(the)h(GNU)f(Readline)h(library)l(.)k
-(It)14 b(is)g(called)75 1110 y Fr(fileman)p Fs(,)j(and)h(the)g(source)g
-(co)q(de)g(resides)g(in)f(`)p Fr(examples/fileman.c)p
-Fs('.)25 b(This)17 b(sample)g(application)75 1164 y(pro)o(vides)c
-(completion)f(of)g(command)h(names,)g(line)g(editing)g(features,)f(and)
-i(access)f(to)f(the)h(history)g(list.)p eop end
+1504 y(inserted)i(as)g(an)o(y)g(other)g(b)q(ound)h(to)e
+Fr(self-insert)p Fs(.)75 1604 y Fh(2.6.4)30 b(A)21 b(Short)f
+(Completion)g(Example)75 1677 y Fs(Here)15 b(is)f(a)g(small)f
+(application)g(demonstrating)h(the)g(use)h(of)f(the)h(GNU)f(Readline)h
+(library)l(.)k(It)14 b(is)g(called)75 1732 y Fr(fileman)p
+Fs(,)j(and)h(the)g(source)g(co)q(de)g(resides)g(in)f(`)p
+Fr(examples/fileman.c)p Fs('.)25 b(This)17 b(sample)g(application)75
+1787 y(pro)o(vides)c(completion)f(of)g(command)h(names,)g(line)g
+(editing)g(features,)f(and)i(access)f(to)f(the)h(history)g(list.)p
+eop end
%%Page: 48 52
TeXDict begin 48 51 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14
b(with)g(GNU)h(Readline)842 b(48)195 149 y Fe(/*)19 b(fileman.c)d(--)j
@@ -8209,613 +8282,627 @@ b Fb(19)75 2670 y Fe(dump-macro)o(s)10 b(\(\))f Fa(:)d(:)g(:)g(:)g(:)g
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(19)1012 305 y
Fe(dump-variab)o(le)o(s)10 b(\(\))c Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)20 b Fb(19)1012 432 y Fq(E)1012 491 y Fb(editing-mo)q(de)11
+g(:)g(:)20 b Fb(19)1012 439 y Fq(E)1012 500 y Fb(editing-mo)q(de)11
b Fa(:)6 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)23 b Fb(5)1012 535 y Fe(emacs-editi)o(ng)o(-mo)o(de)9
+f(:)23 b Fb(5)1012 545 y Fe(emacs-editi)o(ng)o(-mo)o(de)9
b(\(C-e\))d Fa(:)t(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)19 b Fb(19)1012 578 y(enable-k)o(eypad)12
+(:)g(:)g(:)h(:)f(:)g(:)19 b Fb(19)1012 590 y(enable-k)o(eypad)12
b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-22 b Fb(5)1012 622 y Fe(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))5
+22 b Fb(6)1012 635 y Fe(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))5
b Fa(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(18)1012 666 y Fe(end-of-hist)o(or)o
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(18)1012 680 y Fe(end-of-hist)o(or)o
(y)10 b(\(M->\))f Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(14)1012
-710 y Fe(end-of-line)9 b(\(C-e\))d Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g
+725 y Fe(end-of-line)9 b(\(C-e\))d Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)20 b Fb(13)1012 754 y Fe(exchange-po)o(in)o(t-a)o(nd)o(-ma)o
+g(:)g(:)20 b Fb(13)1012 770 y Fe(exchange-po)o(in)o(t-a)o(nd)o(-ma)o
(rk)9 b(\(C-x)j(C-x\))7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(18)1012 798 y(expand-tilde)7 b Fa(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(18)1012 815 y(expand-tilde)7 b Fa(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)20 b Fb(6)1012
-924 y Fq(F)1012 982 y Fe(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)o
-(ar)9 b(\(\))d Fa(:)f(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19
-b Fb(15)1012 1026 y Fe(forward-cha)o(r)10 b(\(C-f\))5
+948 y Fq(F)1012 1009 y Fe(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)
+o(ar)9 b(\(\))d Fa(:)f(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19
+b Fb(15)1012 1054 y Fe(forward-cha)o(r)10 b(\(C-f\))5
b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(13)1012
-1070 y Fe(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))d
+1099 y Fe(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))d
Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23
-b Fb(14)1012 1114 y Fe(forward-wor)o(d)10 b(\(M-f\))5
+b Fb(14)1012 1144 y Fe(forward-wor)o(d)10 b(\(M-f\))5
b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(13)1012
-1236 y Fq(H)1012 1294 y Fb(history-preserv)o(e-p)q(oin)o(t)5
+1273 y Fq(H)1012 1334 y Fb(history-preserv)o(e-p)q(oin)o(t)5
b Fa(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(6)1012
-1338 y Fe(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))t
+1379 y Fe(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))t
Fa(:)c(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)17 b Fb(14)1012 1382 y Fe(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10
+(:)17 b Fb(14)1012 1424 y Fe(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10
b(\(\))5 b Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)18 b Fb(14)1012 1426 y(history-size)8
+(:)g(:)g(:)g(:)g(:)18 b Fb(14)1012 1469 y(history-size)8
b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)21 b Fb(6)1012 1470 y(horizon)o(tal-scroll-mo)q(de)12
+(:)g(:)g(:)21 b Fb(6)1012 1514 y(horizon)o(tal-scroll-mo)q(de)12
b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(6)1012
-1588 y Fq(I)1012 1646 y Fb(input-meta)11 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g
+1638 y Fq(I)1012 1699 y Fb(input-meta)11 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23
-b Fb(6)1012 1690 y Fe(insert-comm)o(en)o(t)10 b(\(M-#\))f
+b Fb(6)1012 1745 y Fe(insert-comm)o(en)o(t)10 b(\(M-#\))f
Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(18)1012 1734 y Fe(insert-comp)o(le)o
+(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(19)1012 1790 y Fe(insert-comp)o(le)o
(tio)o(ns)9 b(\(M-*\))d Fa(:)t(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Fb(17)1012 1778
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Fb(17)1012 1835
y(isearc)o(h-terminators)11 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)23 b Fb(6)1012 1896 y Fq(K)1012 1954 y Fb(k)o(eymap)t
+g(:)g(:)23 b Fb(6)1012 1959 y Fq(K)1012 2020 y Fb(k)o(eymap)t
Fa(:)7 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(6)1012 1998 y Fe(kill-line)10
+(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(6)1012 2065 y Fe(kill-line)10
b(\(C-k\))f Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22
-b Fb(16)1012 2042 y Fe(kill-region)9 b(\(\))g Fa(:)e(:)f(:)g(:)g(:)g(:)
+b Fb(16)1012 2110 y Fe(kill-region)9 b(\(\))g Fa(:)e(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(16)1012 2086 y
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(16)1012 2155 y
Fe(kill-whole-)o(li)o(ne)9 b(\(\))c Fa(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)18 b Fb(16)1012 2129 y Fe(kill-word)10 b(\(M-d\))f
+h(:)18 b Fb(16)1012 2200 y Fe(kill-word)10 b(\(M-d\))f
Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22
-b Fb(16)1012 2251 y Fq(M)1012 2310 y Fb(mark-mo)q(di\014ed-lines)5
+b Fb(16)1012 2329 y Fq(M)1012 2390 y Fb(mark-mo)q(di\014ed-lines)5
b Fa(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b
-Fb(6)1012 2354 y(mark-symlink)o(ed-directories)t Fa(:)8
+Fb(7)1012 2435 y(mark-symlink)o(ed-directories)t Fa(:)8
b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)17 b Fb(7)1012 2398 y(matc)o(h-hidden-\014les)9
+(:)g(:)g(:)g(:)17 b Fb(7)1012 2480 y(matc)o(h-hidden-\014les)9
b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22
-b Fb(7)1012 2442 y Fe(menu-comple)o(te)9 b(\(\))f Fa(:)d(:)h(:)g(:)g(:)
+b Fb(7)1012 2525 y Fe(menu-comple)o(te)9 b(\(\))f Fa(:)d(:)h(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(17)1012 2485 y(meta-\015ag)8
-b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)21 b Fb(6)1012 2611 y Fq(N)1012 2670
-y Fe(next-histor)o(y)10 b(\(C-n\))5 b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)18 b Fb(14)p eop end
+(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(17)1012 2570 y Fe(menu-comple)o(te)o
+(-ba)o(ck)o(war)o(d)10 b(\(\))5 b Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(17)1012
+2615 y(meta-\015ag)8 b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(6)p eop
+end
%%Page: 66 70
TeXDict begin 66 69 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable)
-g(Index)1187 b(66)75 149 y Fe(non-increm)o(en)o(tal)o(-f)o(orw)o(ard)o
-(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9 b(\(M-n\))155 193 y
+g(Index)1187 b(66)75 149 y Fq(N)75 209 y Fe(next-histo)o(ry)9
+b(\(C-n\))c Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18
+b Fb(14)75 253 y Fe(non-increm)o(en)o(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o
+(ch)o(-hi)o(st)o(ory)9 b(\(M-n\))155 296 y Fa(:)d(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)16 b Fb(14)75 341 y Fe(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o
+(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9 b(\(M-p\))155 384 y
Fa(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(14)75 237 y Fe(non-increm)o(en)
-o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9
-b(\(M-p\))155 280 y Fa(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16
-b Fb(14)75 398 y Fq(O)75 456 y Fb(output-meta)7 b Fa(:)g(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)19
-b Fb(7)75 500 y Fe(overwrite-)o(mo)o(de)9 b(\(\))d Fa(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(15)75 622 y Fq(P)75 680
-y Fb(page-completions)11 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)22 b Fb(7)75 724 y Fe(possible-c)o(om)o(ple)o(ti)o(ons)9
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(14)75 504 y Fq(O)75
+563 y Fb(output-meta)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)19 b Fb(7)75 607 y Fe(overwrite-)o(mo)o(de)
+9 b(\(\))d Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19
+b Fb(15)75 731 y Fq(P)75 790 y Fb(page-completions)11
+b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)22
+b Fb(7)75 835 y Fe(possible-c)o(om)o(ple)o(ti)o(ons)9
b(\(M-?\))t Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)16 b Fb(17)75 767 y Fe(prefix-met)o(a)10
+(:)g(:)g(:)g(:)16 b Fb(17)75 879 y Fe(prefix-met)o(a)10
b(\(ESC\))c Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19
-b Fb(18)75 811 y Fe(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))f
+b Fb(18)75 923 y Fe(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))f
Fa(:)s(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)21 b Fb(13)75 938 y Fq(Q)75 996 y
-Fe(quoted-ins)o(er)o(t)10 b(\(C-q)h(or)h(C-v\))d Fa(:)d(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23
-b Fb(15)75 1123 y Fq(R)75 1181 y Fe(re-read-in)o(it)o(-fi)o(le)9
+(:)h(:)f(:)g(:)g(:)21 b Fb(13)75 1052 y Fq(Q)75 1111
+y Fe(quoted-ins)o(er)o(t)10 b(\(C-q)h(or)h(C-v\))d Fa(:)d(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23
+b Fb(15)75 1240 y Fq(R)75 1300 y Fe(re-read-in)o(it)o(-fi)o(le)9
b(\(C-x)i(C-r\))6 b Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)18 b Fb(18)75 1225 y Fe(readline)6
+(:)g(:)h(:)f(:)g(:)18 b Fb(18)75 1344 y Fe(readline)6
b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)19 b Fb(20)75 1269 y Fe(redraw-cur)o(re)o(nt-)o(li)o(ne)
+(:)g(:)g(:)g(:)19 b Fb(20)75 1388 y Fe(redraw-cur)o(re)o(nt-)o(li)o(ne)
9 b(\(\))g Fa(:)c(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fb(13)75 1313 y Fe(reverse-se)o(ar)
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fb(13)75 1432 y Fe(reverse-se)o(ar)
o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))f Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fb(14)75 1357 y(rev)o
+(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fb(14)75 1476 y(rev)o
(ert-all-at-newline)10 b Fa(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
-b Fb(7)75 1400 y Fe(revert-lin)o(e)10 b(\(M-r\))c Fa(:)t(:)g(:)g(:)g(:)
+b Fb(7)75 1521 y Fe(revert-lin)o(e)10 b(\(M-r\))c Fa(:)t(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(18)75 1444 y Fe(rl_add_def)o(un)6
+(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(18)75 1565 y Fe(rl_add_def)o(un)6
b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(28)75 1488 y Fe(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)9
+b Fb(28)75 1609 y Fe(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(31)75 1532 y
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(31)75 1653 y
Fe(rl_add_und)o(o)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)23 b Fb(32)75 1575 y Fe(rl_alphabe)o(ti)o(c)8
+(:)g(:)h(:)f(:)g(:)23 b Fb(32)75 1697 y Fe(rl_alphabe)o(ti)o(c)8
b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(35)75 1619 y Fe(rl_already)o(_p)o(rom)o(pt)o(ed)9
+b Fb(35)75 1742 y Fe(rl_already)o(_p)o(rom)o(pt)o(ed)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(24)75 1663 y
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(24)75 1786 y
Fe(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)6
b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fb(43)75
-1707 y Fe(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)5
+1830 y Fe(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)5
b Fa(:)s(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19
-b Fb(46)75 1751 y Fe(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)6
+b Fb(47)75 1874 y Fe(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)6
b Fa(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)23 b Fb(44)75 1794 y Fe(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o
+g(:)23 b Fb(45)75 1918 y Fe(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o
(ra)o(cte)o(rs)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)16 b Fb(44)75 1838 y Fe(rl_begin_u)o(nd)o(o_g)o(ro)o(up)9
+(:)16 b Fb(45)75 1963 y Fe(rl_begin_u)o(nd)o(o_g)o(ro)o(up)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(31)75 1882 y
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(31)75 2007 y
Fe(rl_bind_ke)o(y)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)23 b Fb(29)75 1926 y Fe(rl_bind_ke)o(y_)o(if_)o(un)o
+(:)g(:)h(:)f(:)g(:)23 b Fb(29)75 2051 y Fe(rl_bind_ke)o(y_)o(if_)o(un)o
(bou)o(nd)5 b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(29)75 1970 y
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(29)75 2095 y
Fe(rl_bind_ke)o(y_)o(if_)o(un)o(bou)o(nd_)o(in)o(_ma)o(p)5
b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)17
-b Fb(29)75 2013 y Fe(rl_bind_ke)o(y_)o(in_)o(ma)o(p)7
+b Fb(29)75 2139 y Fe(rl_bind_ke)o(y_)o(in_)o(ma)o(p)7
b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(29)75 2057
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(29)75 2184
y Fe(rl_bind_ke)o(ys)o(eq)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)20 b Fb(29)75 2101 y Fe(rl_bind_ke)o(ys)o(eq_)o(if)o
+(:)g(:)g(:)g(:)20 b Fb(29)75 2228 y Fe(rl_bind_ke)o(ys)o(eq_)o(if)o
(_un)o(bou)o(nd)6 b Fa(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(30)75 2145 y Fe(rl_bind_ke)o(ys)o(eq_)o
+(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(30)75 2272 y Fe(rl_bind_ke)o(ys)o(eq_)o
(if)o(_un)o(bou)o(nd)o(_in)o(_m)o(ap)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)22 b Fb(30)75 2188 y Fe(rl_bind_ke)o(ys)o(eq_)o(in)o(_ma)o
+(:)g(:)g(:)22 b Fb(30)75 2316 y Fe(rl_bind_ke)o(ys)o(eq_)o(in)o(_ma)o
(p)6 b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(30)75 2232 y Fe(rl_binding)o(_k)
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(30)75 2361 y Fe(rl_binding)o(_k)
o(eym)o(ap)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16
-b Fb(25)75 2276 y Fe(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7
+b Fb(25)75 2405 y Fe(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7
b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(37)75 2320 y Fe(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)9
+b Fb(37)75 2449 y Fe(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-21 b Fb(37)75 2364 y Fe(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)6
+21 b Fb(37)75 2493 y Fe(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)6
b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(37)75 2407 y Fe(rl_catch_s)o(ig)o(nal)o
+h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(37)75 2537 y Fe(rl_catch_s)o(ig)o(nal)o
(s)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17
-b Fb(39)75 2451 y Fe(rl_catch_s)o(ig)o(win)o(ch)r Fa(:)t(:)6
+b Fb(39)75 2582 y Fe(rl_catch_s)o(ig)o(win)o(ch)r Fa(:)t(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(40)75 2495
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(40)75 2626
y Fe(rl_char_is)o(_q)o(uot)o(ed)o(_p)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-22 b Fb(44)75 2539 y Fe(rl_cleanup)o(_a)o(fte)o(r_)o(sig)o(nal)s
+22 b Fb(44)75 2670 y Fe(rl_cleanup)o(_a)o(fte)o(r_)o(sig)o(nal)s
Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)17 b Fb(40)75 2582 y Fe(rl_clear_m)o(es)o(sag)o(e)t
-Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b
-Fb(33)75 2626 y Fe(rl_clear_p)o(en)o(din)o(g_)o(inp)o(ut)5
-b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)18 b Fb(34)75 2670 y Fe(rl_clear_s)o(ig)o(nal)o(s)t
-Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b
-Fb(41)1012 149 y Fe(rl_complete)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)17 b Fb(40)1012 149 y Fe(rl_clear_me)o(ss)o(age)s
+Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b
+Fb(33)1012 194 y Fe(rl_clear_pe)o(nd)o(ing)o(_i)o(npu)o(t)5
+b Fa(:)s(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)19 b Fb(34)1012 238 y Fe(rl_clear_si)o(gn)o(als)s
+Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b
+Fb(41)1012 282 y Fe(rl_complete)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(42)1012 194 y
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(42)1012 326 y
Fe(rl_complete)o(_i)o(nte)o(rn)o(al)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(42)1012 238 y Fe(rl_complete)o(r_)o(quo)o(te)o(_ch)o(ar)o(act)o
+b Fb(42)1012 371 y Fe(rl_complete)o(r_)o(quo)o(te)o(_ch)o(ar)o(act)o
(ers)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18
-b Fb(45)1012 282 y Fe(rl_complete)o(r_)o(wor)o(d_)o(bre)o(ak)o(_ch)o
+b Fb(45)1012 415 y Fe(rl_complete)o(r_)o(wor)o(d_)o(bre)o(ak)o(_ch)o
(ara)o(ct)o(ers)6 b Fa(:)s(:)g(:)g(:)h(:)f(:)g(:)g(:)20
-b Fb(45)1012 326 y Fe(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o
+b Fb(45)1012 459 y Fe(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o
(cte)o(r)s Fa(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17
-b Fb(45)1012 371 y Fe(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o
+b Fb(45)1012 503 y Fe(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o
(hes)o(_h)o(ook)6 b Fa(:)s(:)g(:)g(:)h(:)f(:)g(:)g(:)20
-b Fb(44)1012 415 y Fe(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o
+b Fb(44)1012 547 y Fe(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o
(on)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22
-b Fb(42,)13 b(43)1012 459 y Fe(rl_completi)o(on)o(_fo)o(un)o(d_q)o(uo)o
+b Fb(42,)13 b(43)1012 592 y Fe(rl_completi)o(on)o(_fo)o(un)o(d_q)o(uo)o
(te)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)23 b Fb(46)1012 503 y Fe(rl_completi)o(on)o(_in)o(vo)o(kin)o
+(:)g(:)g(:)23 b Fb(46)1012 636 y Fe(rl_completi)o(on)o(_in)o(vo)o(kin)o
(g_)o(key)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)22 b Fb(47)1012 547 y Fe(rl_completi)o(on)o(_ma)o(rk)o(_sy)
+g(:)g(:)g(:)22 b Fb(47)1012 680 y Fe(rl_completi)o(on)o(_ma)o(rk)o(_sy)
o(ml)o(ink)o(_di)o(rs)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-24 b Fb(46)1012 592 y Fe(rl_completi)o(on)o(_ma)o(tc)o(hes)6
+24 b Fb(46)1012 724 y Fe(rl_completi)o(on)o(_ma)o(tc)o(hes)6
b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(42)1012 636 y Fe(rl_completi)o(on)o
+g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(42)1012 769 y Fe(rl_completi)o(on)o
(_mo)o(de)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b
-Fb(42)1012 680 y Fe(rl_completi)o(on)o(_qu)o(er)o(y_i)o(te)o(ms)7
+Fb(42)1012 813 y Fe(rl_completi)o(on)o(_qu)o(er)o(y_i)o(te)o(ms)7
b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)23 b Fb(45)1012 724 y Fe(rl_completi)o(on)o(_qu)o(ot)o(e_c)o(ha)o
+g(:)23 b Fb(45)1012 857 y Fe(rl_completi)o(on)o(_qu)o(ot)o(e_c)o(ha)o
(rac)o(ter)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)18 b Fb(45)1012 769 y Fe(rl_completi)o(on)o(_su)o(pp)o(res)o(s_)o
+(:)18 b Fb(46)1012 901 y Fe(rl_completi)o(on)o(_su)o(pp)o(res)o(s_)o
(app)o(end)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)18 b Fb(45)1012 813 y Fe(rl_completi)o(on)o(_su)o(pp)o(res)o(s_)o
+(:)18 b Fb(46)1012 945 y Fe(rl_completi)o(on)o(_su)o(pp)o(res)o(s_)o
(quo)o(te)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)19 b Fb(46)1012 857 y Fe(rl_completi)o(on)o(_ty)o(pe)7
+f(:)19 b Fb(46)1012 990 y Fe(rl_completi)o(on)o(_ty)o(pe)7
b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(47)1012 901
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(47)1012 1034
y Fe(rl_completi)o(on)o(_wo)o(rd)o(_br)o(ea)o(k_h)o(ook)t
Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18
-b Fb(45)1012 945 y Fe(rl_copy_key)o(ma)o(p)7 b Fa(:)s(:)f(:)g(:)g(:)g
+b Fb(45)1012 1078 y Fe(rl_copy_key)o(ma)o(p)7 b Fa(:)s(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(28)1012 990 y
-Fe(rl_copy_tex)o(t)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(28)1012 1122
+y Fe(rl_copy_tex)o(t)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)23 b Fb(33)1012 1034 y Fe(rl_crlf)7 b
+g(:)g(:)g(:)g(:)23 b Fb(33)1012 1167 y Fe(rl_crlf)7 b
Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)21 b Fb(32)1012 1078 y Fe(rl_delete_t)o(ex)o(t)7
+g(:)g(:)g(:)g(:)21 b Fb(32)1012 1211 y Fe(rl_delete_t)o(ex)o(t)7
b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20
-b Fb(33)1012 1122 y Fe(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)s
+b Fb(33)1012 1255 y Fe(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)s
Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)17 b Fb(25)1012 1167 y Fe(rl_deprep_t)o(er)o(min)o(al)7
+f(:)g(:)g(:)g(:)17 b Fb(25)1012 1299 y Fe(rl_deprep_t)o(er)o(min)o(al)7
b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(35)1012 1211
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(35)1012 1343
y Fe(rl_ding)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(35)1012 1255
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(35)1012 1388
y Fe(rl_director)o(y_)o(com)o(pl)o(eti)o(on)o(_ho)o(ok)6
b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19
-b Fb(44)1012 1299 y Fe(rl_discard_)o(ke)o(yma)o(p)s Fa(:)s(:)6
+b Fb(44)1012 1432 y Fe(rl_discard_)o(ke)o(yma)o(p)s Fa(:)s(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(28)1012 1343
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(28)1012 1476
y Fe(rl_dispatch)o(in)o(g)7 b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)20 b Fb(23)1012 1388 y Fe(rl_display_)o(ma)o(tch)o(_l)o
+(:)g(:)g(:)g(:)20 b Fb(23)1012 1520 y Fe(rl_display_)o(ma)o(tch)o(_l)o
(ist)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(36)1012 1432 y
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(36)1012 1564 y
Fe(rl_display_)o(pr)o(omp)o(t)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)16 b Fb(24)1012 1476 y Fe(rl_do_undo)s Fa(:)s(:)6
+(:)g(:)16 b Fb(24)1012 1609 y Fe(rl_do_undo)s Fa(:)s(:)6
b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17
-b Fb(32)1012 1520 y Fe(rl_done)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(32)1012 1653 y Fe(rl_done)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(23)1012 1564 y Fe(rl_echo_sig)o(na)o(l_c)o(ha)o(r)9
+b Fb(23)1012 1697 y Fe(rl_echo_sig)o(na)o(l_c)o(ha)o(r)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(40)1012 1609
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(40)1012 1741
y Fe(rl_editing_)o(mo)o(de)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)19 b Fb(27)1012 1653 y Fe(rl_end)9 b Fa(:)t(:)d(:)g(:)g(:)g
+g(:)g(:)g(:)19 b Fb(27)1012 1786 y Fe(rl_end)9 b Fa(:)t(:)d(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(23)1012 1697 y Fe(rl_end_undo)o(_g)o(rou)o(p)s Fa(:)s(:)6
+b Fb(23)1012 1830 y Fe(rl_end_undo)o(_g)o(rou)o(p)s Fa(:)s(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(31)1012 1741
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(31)1012 1874
y Fe(rl_erase_em)o(pt)o(y_l)o(in)o(e)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-22 b Fb(23)1012 1786 y Fe(rl_event_ho)o(ok)7 b Fa(:)t(:)f(:)g(:)g(:)g
+22 b Fb(23)1012 1918 y Fe(rl_event_ho)o(ok)7 b Fa(:)t(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(25)1012 1830
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(25)1012 1962
y Fe(rl_execute_)o(ne)o(xt)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)19 b Fb(34)1012 1874 y Fe(rl_executin)o(g_)o(key)o(ma)o(p)9
+g(:)g(:)g(:)19 b Fb(34)1012 2007 y Fe(rl_executin)o(g_)o(key)o(ma)o(p)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(25)1012 1918
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(25)1012 2051
y Fe(rl_executin)o(g_)o(mac)o(ro)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-24 b Fb(25)1012 1962 y Fe(rl_expand_p)o(ro)o(mpt)s Fa(:)t(:)6
+24 b Fb(25)1012 2095 y Fe(rl_expand_p)o(ro)o(mpt)s Fa(:)t(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(33)1012
-2007 y Fe(rl_explicit)o(_a)o(rg)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g
+2139 y Fe(rl_explicit)o(_a)o(rg)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)19 b Fb(27)1012 2051 y Fe(rl_extend_l)o(in)o(e_b)o(uf)o
+g(:)g(:)g(:)g(:)19 b Fb(27)1012 2184 y Fe(rl_extend_l)o(in)o(e_b)o(uf)o
(fer)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(35)1012 2095 y
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(35)1012 2228 y
Fe(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o(ire)o(d)s
Fa(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17
-b Fb(46)1012 2139 y Fe(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o
+b Fb(46)1012 2272 y Fe(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o
(cti)o(on)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24
-b Fb(43)1012 2184 y Fe(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o
+b Fb(43)1012 2316 y Fe(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o
(tio)o(n)s Fa(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17
-b Fb(43)1012 2228 y Fe(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o
+b Fb(43)1012 2360 y Fe(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o
(rs)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19
-b Fb(45)1012 2272 y Fe(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o
+b Fb(45)1012 2405 y Fe(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o
(d)7 b Fa(:)s(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)21 b Fb(46)1012 2316 y Fe(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o
+(:)21 b Fb(46)1012 2449 y Fe(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o
(cti)o(on)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)19 b Fb(43)1012 2360 y Fe(rl_forced_u)o(pd)o(ate)o(_d)o(isp)o(la)o
-(y)8 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)24 b Fb(32)1012 2405 y Fe(rl_free)7 b
-Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)21 b Fb(35)1012 2449 y Fe(rl_free_lin)o(e_)o(sta)o(te)7
-b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(40)1012 2493
-y Fe(rl_free_und)o(o_)o(lis)o(t)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)16 b Fb(32)1012 2537 y Fe(rl_function)o(_d)o(ump)o(er)7
+f(:)19 b Fb(43)1012 2493 y Fe(rl_filename)o(_r)o(ewr)o(it)o(e_h)o(oo)o
+(k)8 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)24 b Fb(44)1012 2537 y Fe(rl_forced_u)o(pd)o(ate)o(_d)o
+(isp)o(la)o(y)8 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(32)1012 2582 y Fe(rl_free)7
+b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)21 b Fb(35)1012 2626 y Fe(rl_free_key)o(ma)o(p)7
+b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20
+b Fb(28)1012 2670 y Fe(rl_free_lin)o(e_)o(sta)o(te)7
b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(31)1012 2582
-y Fe(rl_function)o(_o)o(f_k)o(ey)o(seq)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(30)1012 2626 y Fe(rl_funmap_n)o(am)o(es)5 b Fa(:)s(:)h(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 b Fb(31)1012 2670 y Fe(rl_generic_)o(bi)
-o(nd)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19
-b Fb(30)p eop end
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(40)p eop
+end
%%Page: 67 71
TeXDict begin 67 70 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable)
-g(Index)1187 b(67)75 149 y Fe(rl_get_key)o(ma)o(p)8 b
-Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(28)75 194 y Fe(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)6
+g(Index)1187 b(67)75 149 y Fe(rl_free_un)o(do)o(_li)o(st)r
+Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(32)75
+194 y Fe(rl_functio)o(n_)o(dum)o(pe)o(r)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)23 b Fb(31)75 238 y Fe(rl_functio)o(n_)o(of_)o(ke)o(yse)o(q)6
b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(28)75 238 y Fe(rl_get_key)o(ma)o(p_n)o
+h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(30)75 282 y Fe(rl_funmap_)o(na)o(mes)5
+b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18
+b Fb(31)75 326 y Fe(rl_generic)o(_b)o(ind)5 b Fa(:)s(:)h(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)18 b Fb(30)75 371 y Fe(rl_get_key)o(ma)o(p)8
+b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21
+b Fb(28)75 415 y Fe(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)6
+b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(28)75 459 y Fe(rl_get_key)o(ma)o(p_n)o
(am)o(e)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(28)75
-282 y Fe(rl_get_scr)o(ee)o(n_s)o(iz)o(e)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g
+503 y Fe(rl_get_scr)o(ee)o(n_s)o(iz)o(e)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)23 b Fb(40)75 326 y Fe(rl_get_ter)o(mc)o(ap)6
+g(:)g(:)23 b Fb(40)75 547 y Fe(rl_get_ter)o(mc)o(ap)6
b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(37)75 371 y Fe(rl_getc)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(37)75 592 y Fe(rl_getc)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b
-Fb(34)75 415 y Fe(rl_getc_fu)o(nc)o(tio)o(n)t Fa(:)s(:)6
+Fb(34)75 636 y Fe(rl_getc_fu)o(nc)o(tio)o(n)t Fa(:)s(:)6
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(25)75
-459 y Fe(rl_gnu_rea)o(dl)o(ine)o(_p)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g
+680 y Fe(rl_gnu_rea)o(dl)o(ine)o(_p)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)16 b Fb(24)75 503 y Fe(rl_ignore_)o(co)o(mpl)o(et)o(ion)o
+g(:)g(:)g(:)16 b Fb(24)75 724 y Fe(rl_ignore_)o(co)o(mpl)o(et)o(ion)o
(_du)o(pl)o(ica)o(te)o(s)8 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)23 b Fb(46)75 547 y Fe(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o
+(:)23 b Fb(46)75 769 y Fe(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o
(s_f)o(un)o(cti)o(on)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)18
-b Fb(44)75 592 y Fe(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)6
+b Fb(44)75 813 y Fe(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)6
b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(47)75 636 y Fe(rl_initial)o(iz)o(e)8
+h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(47)75 857 y Fe(rl_initial)o(iz)o(e)8
b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(35)75 680 y Fe(rl_insert_)o(co)o(mpl)o(et)o(ion)o(s)6
+b Fb(35)75 901 y Fe(rl_insert_)o(co)o(mpl)o(et)o(ion)o(s)6
b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(42)75 724 y Fe(rl_insert_)o(te)o(xt)6
+h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(42)75 945 y Fe(rl_insert_)o(te)o(xt)6
b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(33)75 769 y Fe(rl_instrea)o(m)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(33)75 990 y Fe(rl_instrea)o(m)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(24)75 813
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(24)75 1034
y Fe(rl_invokin)o(g_)o(key)o(se)o(qs)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-22 b Fb(31)75 857 y Fe(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o(p)
-9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)21 b Fb(31)75 901 y Fe(rl_kill_te)o(xt)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(34)75
-945 y Fe(rl_last_fu)o(nc)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)22 b Fb(25)75 990 y Fe(rl_library)o(_v)o(ers)o(io)o
-(n)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(24)75
-1034 y Fe(rl_line_bu)o(ff)o(er)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+22 b Fb(31)75 1078 y Fe(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o
+(p)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)21 b Fb(31)75 1122 y Fe(rl_kill_te)o(xt)6 b Fa(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(34)75
+1167 y Fe(rl_last_fu)o(nc)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(25)75 1211 y Fe(rl_library)o(_v)o(ers)o
+(io)o(n)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(24)75
+1255 y Fe(rl_line_bu)o(ff)o(er)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)20 b Fb(23)75 1078 y Fe(rl_list_fu)o(nm)o(ap_)o(na)
+g(:)g(:)g(:)g(:)g(:)20 b Fb(23)75 1299 y Fe(rl_list_fu)o(nm)o(ap_)o(na)
o(mes)7 b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(31)75 1122
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(31)75 1343
y Fe(rl_macro_b)o(in)o(d)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)21 b Fb(36)75 1167 y Fe(rl_macro_d)o(um)o(per)5
+g(:)g(:)g(:)g(:)21 b Fb(36)75 1388 y Fe(rl_macro_d)o(um)o(per)5
b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18
-b Fb(36)75 1211 y Fe(rl_make_ba)o(re)o(_ke)o(ym)o(ap)9
+b Fb(36)75 1432 y Fe(rl_make_ba)o(re)o(_ke)o(ym)o(ap)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(28)75 1255 y
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(28)75 1476 y
Fe(rl_make_ke)o(ym)o(ap)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)20 b Fb(28)75 1299 y Fe(rl_mark)7 b Fa(:)t(:)f(:)g(:)g(:)g
+g(:)g(:)g(:)20 b Fb(28)75 1520 y Fe(rl_mark)7 b Fa(:)t(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(23)75 1343 y Fe(rl_message)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(23)75 1564 y Fe(rl_message)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(33)75
-1388 y Fe(rl_modifyi)o(ng)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+1609 y Fe(rl_modifyi)o(ng)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(32)75 1432 y Fe(rl_named_f)o(un)o(cti)o
+(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(32)75 1653 y Fe(rl_named_f)o(un)o(cti)o
(on)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16
-b Fb(30)75 1476 y Fe(rl_num_cha)o(rs)o(_to)o(_r)o(ead)7
+b Fb(30)75 1697 y Fe(rl_num_cha)o(rs)o(_to)o(_r)o(ead)7
b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(23)75 1520 y Fe(rl_numeric)o(_a)o
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(23)75 1741 y Fe(rl_numeric)o(_a)o
(rg)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20
-b Fb(27)75 1564 y Fe(rl_on_new_)o(li)o(ne)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)
+b Fb(27)75 1786 y Fe(rl_on_new_)o(li)o(ne)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(32)75 1609 y Fe(rl_on_new_)o(li)
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(32)75 1830 y Fe(rl_on_new_)o(li)
o(ne_)o(wi)o(th_)o(pro)o(mp)o(t)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21 b Fb(32)75 1653
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21 b Fb(32)75 1874
y Fe(rl_outstre)o(am)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)22 b Fb(24)75 1697 y Fe(rl_parse_a)o(nd)o(_bi)o(nd)r
+g(:)g(:)g(:)g(:)22 b Fb(24)75 1918 y Fe(rl_parse_a)o(nd)o(_bi)o(nd)r
Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(30)75
-1741 y Fe(rl_pending)o(_i)o(npu)o(t)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f
+1962 y Fe(rl_pending)o(_i)o(npu)o(t)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)17 b Fb(23)75 1786 y Fe(rl_point)6 b
+g(:)g(:)g(:)g(:)17 b Fb(23)75 2007 y Fe(rl_point)6 b
Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)19 b Fb(23)75 1830 y Fe(rl_possibl)o(e_)o(com)o(pl)o(eti)o
+g(:)g(:)g(:)19 b Fb(23)75 2051 y Fe(rl_possibl)o(e_)o(com)o(pl)o(eti)o
(ons)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(42)75 1874 y Fe(rl_pre_inp)o(ut)o(_ho)o
+(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(42)75 2095 y Fe(rl_pre_inp)o(ut)o(_ho)o
(ok)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16
-b Fb(25)75 1918 y Fe(rl_prefer_)o(en)o(v_w)o(in)o(siz)o(e)6
+b Fb(25)75 2139 y Fe(rl_prefer_)o(en)o(v_w)o(in)o(siz)o(e)6
b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(24)75 1962 y Fe(rl_prep_te)o(rm)o(_fu)o
+h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(24)75 2184 y Fe(rl_prep_te)o(rm)o(_fu)o
(nc)o(tio)o(n)6 b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(25)75
-2007 y Fe(rl_prep_te)o(rm)o(ina)o(l)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f
+2228 y Fe(rl_prep_te)o(rm)o(ina)o(l)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)17 b Fb(34)75 2051 y Fe(rl_prompt)t Fa(:)s(:)6
+g(:)g(:)g(:)g(:)17 b Fb(34)75 2272 y Fe(rl_prompt)t Fa(:)s(:)6
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-17 b Fb(24)75 2095 y Fe(rl_push_ma)o(cr)o(o_i)o(np)o(ut)9
+17 b Fb(24)75 2316 y Fe(rl_push_ma)o(cr)o(o_i)o(np)o(ut)9
b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(34)75 2139 y
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(34)75 2360 y
Fe(rl_read_in)o(it)o(_fi)o(le)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)16 b Fb(30)75 2184 y Fe(rl_read_ke)o(y)7 b Fa(:)g(:)f(:)g(:)g(:)
+(:)g(:)16 b Fb(30)75 2405 y Fe(rl_read_ke)o(y)7 b Fa(:)g(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(34)75
-2228 y Fe(rl_readlin)o(e_)o(nam)o(e)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f
+2449 y Fe(rl_readlin)o(e_)o(nam)o(e)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)17 b Fb(24)75 2272 y Fe(rl_readlin)o(e_)o(sta)o(te)r
+g(:)g(:)g(:)g(:)17 b Fb(24)75 2493 y Fe(rl_readlin)o(e_)o(sta)o(te)r
Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(26)75
-2316 y Fe(rl_readlin)o(e_)o(ver)o(si)o(on)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)
+2537 y Fe(rl_readlin)o(e_)o(ver)o(si)o(on)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)22 b Fb(24)75 2360 y Fe(rl_redispl)o(ay)6 b Fa(:)g(:)g(:)g(:)g
+(:)g(:)22 b Fb(24)75 2582 y Fe(rl_redispl)o(ay)6 b Fa(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(32)75
-2405 y Fe(rl_redispl)o(ay)o(_fu)o(nc)o(tio)o(n)6 b Fa(:)s(:)h(:)f(:)g
+2626 y Fe(rl_redispl)o(ay)o(_fu)o(nc)o(tio)o(n)6 b Fa(:)s(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)19 b Fb(25)75 2449 y Fe(rl_replace)o(_l)o(ine)5 b
+g(:)19 b Fb(25)75 2670 y Fe(rl_replace)o(_l)o(ine)5 b
Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18
-b Fb(35)75 2493 y Fe(rl_reset_a)o(ft)o(er_)o(si)o(gna)o(l)6
-b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(40)75 2537 y Fe(rl_reset_l)o(in)o(e_s)o
-(ta)o(te)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(32)75
-2582 y Fe(rl_reset_s)o(cr)o(een)o(_s)o(ize)7 b Fa(:)s(:)f(:)g(:)g(:)g
+b Fb(35)1012 149 y Fe(rl_reset_af)o(te)o(r_s)o(ig)o(nal)6
+b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(40)1012 193 y Fe(rl_reset_li)o(ne)o
+(_st)o(at)o(e)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b
+Fb(32)1012 237 y Fe(rl_reset_sc)o(re)o(en_)o(si)o(ze)7
+b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(40)1012 280 y Fe(rl_reset_te)o(rm)o
+(ina)o(l)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16
+b Fb(35)1012 324 y Fe(rl_resize_t)o(er)o(min)o(al)7 b
+Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(40)1012 368
+y Fe(rl_restore_)o(pr)o(omp)o(t)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)20 b Fb(40)75 2626 y Fe(rl_reset_t)o(er)o(min)o(al)r
-Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(35)75
-2670 y Fe(rl_resize_)o(te)o(rmi)o(na)o(l)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)23 b Fb(40)1012 149 y Fe(rl_restore_)o(pr)o(omp)o(t)s
-Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(33)1012
-194 y Fe(rl_restore_)o(st)o(ate)s Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)18 b Fb(35)1012 239 y Fe(rl_save_pro)o(mp)o(t)7
-b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20
-b Fb(33)1012 283 y Fe(rl_save_sta)o(te)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(35)1012 328 y
-Fe(rl_set_key)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(30)1012 372 y Fe(rl_set_keyb)o(oa)o(rd_)
-o(in)o(put)o(_t)o(ime)o(out)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)18 b Fb(34)1012 417 y Fe(rl_set_keym)o(ap)7
+f(:)g(:)16 b Fb(33)1012 412 y Fe(rl_restore_)o(st)o(ate)s
+Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b
+Fb(35)1012 455 y Fe(rl_save_pro)o(mp)o(t)7 b Fa(:)s(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(33)1012 499 y Fe(rl_save_sta)o(te)7
b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21
-b Fb(28)1012 461 y Fe(rl_set_pare)o(n_)o(bli)o(nk)o(_ti)o(me)o(out)8
-b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-22 b Fb(37)1012 506 y Fe(rl_set_prom)o(pt)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(33)1012 550
-y Fe(rl_set_scre)o(en)o(_si)o(ze)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(35)1012 543 y Fe(rl_set_key)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(30)1012
+586 y Fe(rl_set_keyb)o(oa)o(rd_)o(in)o(put)o(_t)o(ime)o(out)t
+Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18
+b Fb(34)1012 630 y Fe(rl_set_keym)o(ap)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(28)1012 674 y
+Fe(rl_set_pare)o(n_)o(bli)o(nk)o(_ti)o(me)o(out)8 b Fa(:)s(:)e(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22
+b Fb(37)1012 717 y Fe(rl_set_prom)o(pt)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(33)1012 761 y
+Fe(rl_set_scre)o(en)o(_si)o(ze)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-24 b Fb(40)1012 595 y Fe(rl_set_sign)o(al)o(s)7 b Fa(:)s(:)f(:)g(:)g(:)
+24 b Fb(40)1012 805 y Fe(rl_set_sign)o(al)o(s)7 b Fa(:)s(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(41)1012 639
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(41)1012 848
y Fe(rl_show_cha)o(r)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)23 b Fb(32)1012 684 y Fe(rl_sort_com)o(pl)o(eti)o(on)o
+g(:)g(:)g(:)g(:)23 b Fb(32)1012 892 y Fe(rl_sort_com)o(pl)o(eti)o(on)o
(_ma)o(tc)o(hes)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)22 b Fb(46)1012 729 y Fe(rl_special_)o(pr)o(efi)o
+(:)g(:)g(:)g(:)g(:)22 b Fb(47)1012 936 y Fe(rl_special_)o(pr)o(efi)o
(xe)o(s)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(45)1012
-773 y Fe(rl_startup_)o(ho)o(ok)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g
+979 y Fe(rl_startup_)o(ho)o(ok)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)19 b Fb(25)1012 818 y Fe(rl_stuff_ch)o(ar)7
+g(:)g(:)g(:)g(:)19 b Fb(25)1012 1023 y Fe(rl_stuff_ch)o(ar)7
b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21
-b Fb(34)1012 862 y Fe(rl_terminal)o(_n)o(ame)s Fa(:)t(:)6
+b Fb(34)1012 1067 y Fe(rl_terminal)o(_n)o(ame)s Fa(:)t(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(24)1012
-907 y Fe(rl_tty_set_)o(de)o(fau)o(lt)o(_bi)o(nd)o(ing)o(s)7
+1110 y Fe(rl_tty_set_)o(de)o(fau)o(lt)o(_bi)o(nd)o(ing)o(s)7
b Fa(:)s(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(35)1012 951 y Fe(rl_tty_unse)o(t_)o(def)o(au)o(lt_)o(bi)o(ndi)o
+b Fb(35)1012 1154 y Fe(rl_tty_unse)o(t_)o(def)o(au)o(lt_)o(bi)o(ndi)o
(ngs)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18
-b Fb(35)1012 996 y Fe(rl_unbind_c)o(om)o(man)o(d_)o(in_)o(ma)o(p)8
+b Fb(35)1012 1198 y Fe(rl_unbind_c)o(om)o(man)o(d_)o(in_)o(ma)o(p)8
b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)24 b Fb(29)1012 1040 y Fe(rl_unbind_f)o(un)o(cti)o(on)o(_in)o
+g(:)h(:)24 b Fb(29)1012 1242 y Fe(rl_unbind_f)o(un)o(cti)o(on)o(_in)o
(_m)o(ap)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)23 b Fb(29)1012 1085 y Fe(rl_unbind_k)o(ey)7
+(:)g(:)g(:)g(:)23 b Fb(29)1012 1285 y Fe(rl_unbind_k)o(ey)7
b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21
-b Fb(29)1012 1129 y Fe(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)7
+b Fb(29)1012 1329 y Fe(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)7
b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(29)1012 1174 y Fe(rl_username)o(_c)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(29)1012 1373 y Fe(rl_username)o(_c)
o(omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)24 b Fb(43)1012 1219 y Fe(rl_variable)o(_b)o(ind)s
+(:)g(:)g(:)g(:)g(:)24 b Fb(43)1012 1416 y Fe(rl_variable)o(_b)o(ind)s
Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b
-Fb(36)1012 1263 y Fe(rl_variable)o(_d)o(ump)o(er)7 b
+Fb(36)1012 1460 y Fe(rl_variable)o(_d)o(ump)o(er)7 b
Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(37)1012 1308
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(37)1012 1504
y Fe(rl_variable)o(_v)o(alu)o(e)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)16 b Fb(36)1012 1434 y Fq(S)1012 1494 y Fe(self-insert)9
+f(:)g(:)16 b Fb(36)1012 1625 y Fq(S)1012 1683 y Fe(self-insert)9
b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))t Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(15)1012 1538 y Fe(set-mark)10
+g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(15)1012 1727 y Fe(set-mark)10
b(\(C-@\))e Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24
-b Fb(18)1012 1583 y(sho)o(w-all-if-am)o(biguous)7 b Fa(:)f(:)g(:)h(:)f
+b Fb(18)1012 1771 y(sho)o(w-all-if-am)o(biguous)7 b Fa(:)f(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)20 b Fb(7)1012 1627 y(sho)o(w-all-if-unmo)q
+g(:)g(:)g(:)g(:)g(:)20 b Fb(7)1012 1814 y(sho)o(w-all-if-unmo)q
(di\014ed)12 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
-b Fb(7)1012 1672 y Fe(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))e
-Fa(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)24 b Fb(17)1012 1797 y Fq(T)1012 1857
-y Fe(tab-insert)9 b(\(M-TAB\))c Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-18 b Fb(15)1012 1902 y Fe(tilde-expan)o(d)10 b(\(M-~\))5
+b Fb(7)1012 1858 y(skip-completed-text)5 b Fa(:)j(:)e(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)18 b Fb(8)1012 1902 y Fe(skip-csi-se)o(qu)o(enc)o
+(e)10 b(\(\))g Fa(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(19)1012
+1946 y Fe(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))e Fa(:)c(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24
+b Fb(18)1012 2067 y Fq(T)1012 2125 y Fe(tab-insert)9
+b(\(M-TAB\))c Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18
+b Fb(15)1012 2168 y Fe(tilde-expan)o(d)10 b(\(M-~\))5
b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(18)1012
-1947 y Fe(transpose-c)o(ha)o(rs)9 b(\(C-t\))f Fa(:)e(:)h(:)f(:)g(:)g(:)
+2212 y Fe(transpose-c)o(ha)o(rs)9 b(\(C-t\))f Fa(:)e(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
-b Fb(15)1012 1991 y Fe(transpose-w)o(or)o(ds)9 b(\(M-t\))f
+b Fb(15)1012 2256 y Fe(transpose-w)o(or)o(ds)9 b(\(M-t\))f
Fa(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(15)1012 2122 y Fq(U)1012
-2182 y Fe(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))s Fa(:)t(:)6
+(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(15)1012 2382 y Fq(U)1012
+2440 y Fe(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))s Fa(:)t(:)6
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(18)1012 2226 y Fe(universal-a)o(rg)o
+(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(18)1012 2484 y Fe(universal-a)o(rg)o
(ume)o(nt)9 b(\(\))g Fa(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(17)1012
-2271 y Fe(unix-filena)o(me)o(-ru)o(bo)o(ut)9 b(\(\))e
+2528 y Fe(unix-filena)o(me)o(-ru)o(bo)o(ut)9 b(\(\))e
Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)21 b Fb(16)1012 2315 y Fe(unix-line-d)o(is)o(car)o(d)10
+(:)g(:)g(:)g(:)21 b Fb(16)1012 2571 y Fe(unix-line-d)o(is)o(car)o(d)10
b(\(C-u\))d Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(16)1012 2360 y Fe(unix-word-r)o(ub)o
+(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(16)1012 2615 y Fe(unix-word-r)o(ub)o
(out)9 b(\(C-w\))g Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(16)1012
-2404 y Fe(upcase-word)9 b(\(M-u\))d Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g
+2659 y Fe(upcase-word)9 b(\(M-u\))d Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)20 b Fb(15)1012 2535 y Fq(V)1012 2595 y Fe(vi-editing-)o(mo)o
-(de)9 b(\(M-C-j\))e Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(19)1012 2640
-y(visible-stats)t Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(7)p eop end
+g(:)g(:)20 b Fb(15)p eop end
%%Page: 68 72
TeXDict begin 68 71 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable)
-g(Index)1187 b(68)75 149 y Fq(Y)75 239 y Fe(yank)11 b(\(C-y\))c
-Fa(:)t(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)20 b Fb(16)1012 149 y Fe(yank-last-a)o(rg)9 b(\(M-.)i(or)h(M-_\))d
-Fa(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)24 b Fb(14)1012 194 y Fe(yank-nth-ar)o(g)10 b(\(M-C-y\))e
-Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(14)1012 239 y Fe(yank-pop)10
-b(\(M-y\))e Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24
-b Fb(17)p eop end
+g(Index)1187 b(68)75 149 y Fq(V)75 213 y Fe(vi-editing)o(-m)o(ode)9
+b(\(M-C-j\))e Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(19)75 259 y(visible-stats)t
+Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)16 b Fb(8)1012 149 y Fq(Y)1012 208 y Fe(yank)c(\(C-y\))7
+b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)20 b Fb(16)1012 252 y Fe(yank-last-a)o(rg)9 b(\(M-.)i(or)h
+(M-_\))d Fa(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)24 b Fb(14)1012 295 y Fe(yank-nth-ar)o(g)10
+b(\(M-C-y\))e Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(14)1012
+339 y Fe(yank-pop)10 b(\(M-y\))e Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)24 b Fb(17)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/lib/readline/doc/rlman.aux b/lib/readline/doc/rlman.aux
index 38eb3660..8f38a54d 100644
--- a/lib/readline/doc/rlman.aux
+++ b/lib/readline/doc/rlman.aux
@@ -30,9 +30,9 @@
@xrdef{Readline Init File Syntax-pg}{4}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 1.3.2}
-@xrdef{Conditional Init Constructs-pg}{9}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 1.3.3}
+@xrdef{Conditional Init Constructs-pg}{10}
@xrdef{Sample Init File-pg}{10}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-snt}{Section@tie 1.4}
@@ -57,9 +57,9 @@
@xrdef{Keyboard Macros-snt}{Section@tie 1.4.7}
@xrdef{Numeric Arguments-pg}{17}
@xrdef{Commands For Completion-pg}{17}
-@xrdef{Keyboard Macros-pg}{17}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 1.4.8}
+@xrdef{Keyboard Macros-pg}{18}
@xrdef{Miscellaneous Commands-pg}{18}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 1.5}
diff --git a/lib/readline/doc/rlman.fn b/lib/readline/doc/rlman.fn
index a8bc3ed1..52a52935 100644
--- a/lib/readline/doc/rlman.fn
+++ b/lib/readline/doc/rlman.fn
@@ -6,7 +6,7 @@
\entry{convert-meta}{5}{convert-meta}
\entry{disable-completion}{5}{disable-completion}
\entry{editing-mode}{5}{editing-mode}
-\entry{enable-keypad}{5}{enable-keypad}
+\entry{enable-keypad}{6}{enable-keypad}
\entry{expand-tilde}{6}{expand-tilde}
\entry{history-preserve-point}{6}{history-preserve-point}
\entry{history-size}{6}{history-size}
@@ -15,7 +15,7 @@
\entry{meta-flag}{6}{meta-flag}
\entry{isearch-terminators}{6}{isearch-terminators}
\entry{keymap}{6}{keymap}
-\entry{mark-modified-lines}{6}{mark-modified-lines}
+\entry{mark-modified-lines}{7}{mark-modified-lines}
\entry{mark-symlinked-directories}{7}{mark-symlinked-directories}
\entry{match-hidden-files}{7}{match-hidden-files}
\entry{output-meta}{7}{output-meta}
@@ -23,7 +23,8 @@
\entry{revert-all-at-newline}{7}{revert-all-at-newline}
\entry{show-all-if-ambiguous}{7}{show-all-if-ambiguous}
\entry{show-all-if-unmodified}{7}{show-all-if-unmodified}
-\entry{visible-stats}{7}{visible-stats}
+\entry{skip-completed-text}{8}{skip-completed-text}
+\entry{visible-stats}{8}{visible-stats}
\entry{beginning-of-line (C-a)}{13}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{13}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{13}{\code {forward-char (C-f)}}
@@ -78,8 +79,9 @@
\entry{possible-completions (M-?)}{17}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{17}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{17}{\code {menu-complete ()}}
+\entry{menu-complete-backward ()}{17}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{17}{\code {delete-char-or-list ()}}
-\entry{start-kbd-macro (C-x ()}{17}{\code {start-kbd-macro (C-x ()}}
+\entry{start-kbd-macro (C-x ()}{18}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{18}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{18}{\code {call-last-kbd-macro (C-x e)}}
\entry{re-read-init-file (C-x C-r)}{18}{\code {re-read-init-file (C-x C-r)}}
@@ -93,7 +95,8 @@
\entry{exchange-point-and-mark (C-x C-x)}{18}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{18}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{18}{\code {character-search-backward (M-C-])}}
-\entry{insert-comment (M-#)}{18}{\code {insert-comment (M-#)}}
+\entry{skip-csi-sequence ()}{19}{\code {skip-csi-sequence ()}}
+\entry{insert-comment (M-#)}{19}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{19}{\code {dump-functions ()}}
\entry{dump-variables ()}{19}{\code {dump-variables ()}}
\entry{dump-macros ()}{19}{\code {dump-macros ()}}
@@ -140,6 +143,7 @@
\entry{rl_copy_keymap}{28}{\code {rl_copy_keymap}}
\entry{rl_make_keymap}{28}{\code {rl_make_keymap}}
\entry{rl_discard_keymap}{28}{\code {rl_discard_keymap}}
+\entry{rl_free_keymap}{28}{\code {rl_free_keymap}}
\entry{rl_get_keymap}{28}{\code {rl_get_keymap}}
\entry{rl_set_keymap}{28}{\code {rl_set_keymap}}
\entry{rl_get_keymap_by_name}{28}{\code {rl_get_keymap_by_name}}
@@ -257,9 +261,10 @@
\entry{rl_char_is_quoted_p}{44}{\code {rl_char_is_quoted_p}}
\entry{rl_ignore_some_completions_function}{44}{\code {rl_ignore_some_completions_function}}
\entry{rl_directory_completion_hook}{44}{\code {rl_directory_completion_hook}}
+\entry{rl_filename_rewrite_hook}{44}{\code {rl_filename_rewrite_hook}}
\entry{rl_completion_display_matches_hook}{44}{\code {rl_completion_display_matches_hook}}
-\entry{rl_basic_word_break_characters}{44}{\code {rl_basic_word_break_characters}}
-\entry{rl_basic_quote_characters}{44}{\code {rl_basic_quote_characters}}
+\entry{rl_basic_word_break_characters}{45}{\code {rl_basic_word_break_characters}}
+\entry{rl_basic_quote_characters}{45}{\code {rl_basic_quote_characters}}
\entry{rl_completer_word_break_characters}{45}{\code {rl_completer_word_break_characters}}
\entry{rl_completion_word_break_hook}{45}{\code {rl_completion_word_break_hook}}
\entry{rl_completer_quote_characters}{45}{\code {rl_completer_quote_characters}}
@@ -267,16 +272,16 @@
\entry{rl_special_prefixes}{45}{\code {rl_special_prefixes}}
\entry{rl_completion_query_items}{45}{\code {rl_completion_query_items}}
\entry{rl_completion_append_character}{45}{\code {rl_completion_append_character}}
-\entry{rl_completion_suppress_append}{45}{\code {rl_completion_suppress_append}}
-\entry{rl_completion_quote_character}{45}{\code {rl_completion_quote_character}}
+\entry{rl_completion_suppress_append}{46}{\code {rl_completion_suppress_append}}
+\entry{rl_completion_quote_character}{46}{\code {rl_completion_quote_character}}
\entry{rl_completion_suppress_quote}{46}{\code {rl_completion_suppress_quote}}
\entry{rl_completion_found_quote}{46}{\code {rl_completion_found_quote}}
\entry{rl_completion_mark_symlink_dirs}{46}{\code {rl_completion_mark_symlink_dirs}}
\entry{rl_ignore_completion_duplicates}{46}{\code {rl_ignore_completion_duplicates}}
\entry{rl_filename_completion_desired}{46}{\code {rl_filename_completion_desired}}
\entry{rl_filename_quoting_desired}{46}{\code {rl_filename_quoting_desired}}
-\entry{rl_attempted_completion_over}{46}{\code {rl_attempted_completion_over}}
-\entry{rl_sort_completion_matches}{46}{\code {rl_sort_completion_matches}}
+\entry{rl_attempted_completion_over}{47}{\code {rl_attempted_completion_over}}
+\entry{rl_sort_completion_matches}{47}{\code {rl_sort_completion_matches}}
\entry{rl_completion_type}{47}{\code {rl_completion_type}}
\entry{rl_completion_invoking_key}{47}{\code {rl_completion_invoking_key}}
\entry{rl_inhibit_completion}{47}{\code {rl_inhibit_completion}}
diff --git a/lib/readline/doc/rlman.fns b/lib/readline/doc/rlman.fns
index 40403bdb..6f053fe0 100644
--- a/lib/readline/doc/rlman.fns
+++ b/lib/readline/doc/rlman.fns
@@ -46,7 +46,7 @@
\initial {E}
\entry {editing-mode}{5}
\entry {\code {emacs-editing-mode (C-e)}}{19}
-\entry {enable-keypad}{5}
+\entry {enable-keypad}{6}
\entry {\code {end-kbd-macro (C-x ))}}{18}
\entry {\code {end-of-history (M->)}}{14}
\entry {\code {end-of-line (C-e)}}{13}
@@ -65,7 +65,7 @@
\entry {horizontal-scroll-mode}{6}
\initial {I}
\entry {input-meta}{6}
-\entry {\code {insert-comment (M-#)}}{18}
+\entry {\code {insert-comment (M-#)}}{19}
\entry {\code {insert-completions (M-*)}}{17}
\entry {isearch-terminators}{6}
\initial {K}
@@ -75,10 +75,11 @@
\entry {\code {kill-whole-line ()}}{16}
\entry {\code {kill-word (M-d)}}{16}
\initial {M}
-\entry {mark-modified-lines}{6}
+\entry {mark-modified-lines}{7}
\entry {mark-symlinked-directories}{7}
\entry {match-hidden-files}{7}
\entry {\code {menu-complete ()}}{17}
+\entry {\code {menu-complete-backward ()}}{17}
\entry {meta-flag}{6}
\initial {N}
\entry {\code {next-history (C-n)}}{14}
@@ -107,9 +108,9 @@
\entry {\code {rl_alphabetic}}{35}
\entry {\code {rl_already_prompted}}{24}
\entry {\code {rl_attempted_completion_function}}{43}
-\entry {\code {rl_attempted_completion_over}}{46}
-\entry {\code {rl_basic_quote_characters}}{44}
-\entry {\code {rl_basic_word_break_characters}}{44}
+\entry {\code {rl_attempted_completion_over}}{47}
+\entry {\code {rl_basic_quote_characters}}{45}
+\entry {\code {rl_basic_word_break_characters}}{45}
\entry {\code {rl_begin_undo_group}}{31}
\entry {\code {rl_bind_key}}{29}
\entry {\code {rl_bind_key_if_unbound}}{29}
@@ -143,8 +144,8 @@
\entry {\code {rl_completion_matches}}{42}
\entry {\code {rl_completion_mode}}{42}
\entry {\code {rl_completion_query_items}}{45}
-\entry {\code {rl_completion_quote_character}}{45}
-\entry {\code {rl_completion_suppress_append}}{45}
+\entry {\code {rl_completion_quote_character}}{46}
+\entry {\code {rl_completion_suppress_append}}{46}
\entry {\code {rl_completion_suppress_quote}}{46}
\entry {\code {rl_completion_type}}{47}
\entry {\code {rl_completion_word_break_hook}}{45}
@@ -180,8 +181,10 @@
\entry {\code {rl_filename_quote_characters}}{45}
\entry {\code {rl_filename_quoting_desired}}{46}
\entry {\code {rl_filename_quoting_function}}{43}
+\entry {\code {rl_filename_rewrite_hook}}{44}
\entry {\code {rl_forced_update_display}}{32}
\entry {\code {rl_free}}{35}
+\entry {\code {rl_free_keymap}}{28}
\entry {\code {rl_free_line_state}}{40}
\entry {\code {rl_free_undo_list}}{32}
\entry {\code {rl_function_dumper}}{31}
@@ -258,7 +261,7 @@
\entry {\code {rl_set_screen_size}}{40}
\entry {\code {rl_set_signals}}{41}
\entry {\code {rl_show_char}}{32}
-\entry {\code {rl_sort_completion_matches}}{46}
+\entry {\code {rl_sort_completion_matches}}{47}
\entry {\code {rl_special_prefixes}}{45}
\entry {\code {rl_startup_hook}}{25}
\entry {\code {rl_stuff_char}}{34}
@@ -278,7 +281,9 @@
\entry {\code {set-mark (C-@)}}{18}
\entry {show-all-if-ambiguous}{7}
\entry {show-all-if-unmodified}{7}
-\entry {\code {start-kbd-macro (C-x ()}}{17}
+\entry {skip-completed-text}{8}
+\entry {\code {skip-csi-sequence ()}}{19}
+\entry {\code {start-kbd-macro (C-x ()}}{18}
\initial {T}
\entry {\code {tab-insert (M-\key {TAB})}}{15}
\entry {\code {tilde-expand (M-~)}}{18}
@@ -293,7 +298,7 @@
\entry {\code {upcase-word (M-u)}}{15}
\initial {V}
\entry {\code {vi-editing-mode (M-C-j)}}{19}
-\entry {visible-stats}{7}
+\entry {visible-stats}{8}
\initial {Y}
\entry {\code {yank (C-y)}}{16}
\entry {\code {yank-last-arg (M-. or M-_)}}{14}
diff --git a/lib/readline/doc/rlman.log b/lib/readline/doc/rlman.log
index eded5482..f77c737b 100644
--- a/lib/readline/doc/rlman.log
+++ b/lib/readline/doc/rlman.log
@@ -1,6 +1,6 @@
-This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:22
-**/Users/chet/src/bash/src/lib/readline/doc/rlman.texi
-(/Users/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex
+This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 12 OCT 2009 10:10
+**/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi
+(/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex
Loading texinfo [version 2009-01-18.17]:
\bindingoffset=\dimen16
\normaloffset=\dimen17
@@ -176,7 +176,7 @@ and turning on texinfo input format.) (./rlman.aux)
] [2]
[3] [4] [5]
-Underfull \hbox (badness 5231) in paragraph at lines 524--540
+Underfull \hbox (badness 5231) in paragraph at lines 535--551
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -189,7 +189,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[6] [7] [8] [9] [10]
-Overfull \hbox (26.43913pt too wide) in paragraph at lines 846--846
+Overfull \hbox (26.43913pt too wide) in paragraph at lines 871--871
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
@@ -204,7 +204,7 @@ gnored[] |
[11] [12] [13] [14] [15] [16] [17] [18]) (./rltech.texi Chapter 2 [19] [20]
[21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35]
[36] [37] [38] [39] [40] [41] [42] [43] [44] [45]
-Underfull \hbox (badness 7379) in paragraph at lines 1870--1875
+Underfull \hbox (badness 7379) in paragraph at lines 1905--1910
[]@textrm If an application-specific com-ple-tion func-tion as-signed to @text
tt rl_attempted_
@@ -221,11 +221,11 @@ tt rl_attempted_
(Function and Variable Index) [64] (./rlman.fns [65] [66] [67]) [68] )
Here is how much of TeX's memory you used:
1839 strings out of 97980
- 23013 string characters out of 1221004
- 83614 words of memory out of 1500000
+ 23025 string characters out of 1221004
+ 88497 words of memory out of 1500000
2666 multiletter control sequences out of 10000+50000
32127 words of font info for 112 fonts, out of 1200000 for 2000
51 hyphenation exceptions out of 8191
- 16i,6n,14p,323b,534s stack positions out of 5000i,500n,6000p,200000b,5000s
+ 16i,6n,14p,327b,534s stack positions out of 5000i,500n,6000p,200000b,5000s
-Output written on rlman.dvi (72 pages, 292044 bytes).
+Output written on rlman.dvi (72 pages, 296928 bytes).
diff --git a/lib/readline/doc/rlman.toc b/lib/readline/doc/rlman.toc
index 20707c58..056eed07 100644
--- a/lib/readline/doc/rlman.toc
+++ b/lib/readline/doc/rlman.toc
@@ -8,7 +8,7 @@
@numsubsecentry{Searching for Commands in the History}{1.2.5}{Searching}{3}
@numsecentry{Readline Init File}{1.3}{Readline Init File}{4}
@numsubsecentry{Readline Init File Syntax}{1.3.1}{Readline Init File Syntax}{4}
-@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{9}
+@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{10}
@numsubsecentry{Sample Init File}{1.3.3}{Sample Init File}{10}
@numsecentry{Bindable Readline Commands}{1.4}{Bindable Readline Commands}{13}
@numsubsecentry{Commands For Moving}{1.4.1}{Commands For Moving}{13}
@@ -17,7 +17,7 @@
@numsubsecentry{Killing And Yanking}{1.4.4}{Commands For Killing}{16}
@numsubsecentry{Specifying Numeric Arguments}{1.4.5}{Numeric Arguments}{17}
@numsubsecentry{Letting Readline Type For You}{1.4.6}{Commands For Completion}{17}
-@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{17}
+@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{18}
@numsubsecentry{Some Miscellaneous Commands}{1.4.8}{Miscellaneous Commands}{18}
@numsecentry{Readline vi Mode}{1.5}{Readline vi Mode}{19}
@numchapentry{Programming with GNU Readline}{2}{Programming with GNU Readline}{20}
diff --git a/lib/readline/doc/rluserman.aux b/lib/readline/doc/rluserman.aux
index 58a937d3..2e88390b 100644
--- a/lib/readline/doc/rluserman.aux
+++ b/lib/readline/doc/rluserman.aux
@@ -30,9 +30,9 @@
@xrdef{Readline Init File Syntax-pg}{4}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 1.3.2}
-@xrdef{Conditional Init Constructs-pg}{9}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 1.3.3}
+@xrdef{Conditional Init Constructs-pg}{10}
@xrdef{Sample Init File-pg}{10}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-snt}{Section@tie 1.4}
@@ -57,9 +57,9 @@
@xrdef{Keyboard Macros-snt}{Section@tie 1.4.7}
@xrdef{Numeric Arguments-pg}{17}
@xrdef{Commands For Completion-pg}{17}
-@xrdef{Keyboard Macros-pg}{17}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 1.4.8}
+@xrdef{Keyboard Macros-pg}{18}
@xrdef{Miscellaneous Commands-pg}{18}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 1.5}
diff --git a/lib/readline/doc/rluserman.dvi b/lib/readline/doc/rluserman.dvi
index dbb224a3..70482099 100644
--- a/lib/readline/doc/rluserman.dvi
+++ b/lib/readline/doc/rluserman.dvi
Binary files differ
diff --git a/lib/readline/doc/rluserman.fn b/lib/readline/doc/rluserman.fn
index b51bc337..bd1508e3 100644
--- a/lib/readline/doc/rluserman.fn
+++ b/lib/readline/doc/rluserman.fn
@@ -52,8 +52,9 @@
\entry{possible-completions (M-?)}{17}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{17}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{17}{\code {menu-complete ()}}
+\entry{menu-complete-backward ()}{17}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{17}{\code {delete-char-or-list ()}}
-\entry{start-kbd-macro (C-x ()}{17}{\code {start-kbd-macro (C-x ()}}
+\entry{start-kbd-macro (C-x ()}{18}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{18}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{18}{\code {call-last-kbd-macro (C-x e)}}
\entry{re-read-init-file (C-x C-r)}{18}{\code {re-read-init-file (C-x C-r)}}
@@ -67,7 +68,8 @@
\entry{exchange-point-and-mark (C-x C-x)}{18}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{18}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{18}{\code {character-search-backward (M-C-])}}
-\entry{insert-comment (M-#)}{18}{\code {insert-comment (M-#)}}
+\entry{skip-csi-sequence ()}{19}{\code {skip-csi-sequence ()}}
+\entry{insert-comment (M-#)}{19}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{19}{\code {dump-functions ()}}
\entry{dump-variables ()}{19}{\code {dump-variables ()}}
\entry{dump-macros ()}{19}{\code {dump-macros ()}}
diff --git a/lib/readline/doc/rluserman.fns b/lib/readline/doc/rluserman.fns
index 466ad219..888f2bee 100644
--- a/lib/readline/doc/rluserman.fns
+++ b/lib/readline/doc/rluserman.fns
@@ -44,7 +44,7 @@
\entry {\code {history-search-backward ()}}{14}
\entry {\code {history-search-forward ()}}{14}
\initial {I}
-\entry {\code {insert-comment (M-#)}}{18}
+\entry {\code {insert-comment (M-#)}}{19}
\entry {\code {insert-completions (M-*)}}{17}
\initial {K}
\entry {\code {kill-line (C-k)}}{16}
@@ -53,6 +53,7 @@
\entry {\code {kill-word (M-d)}}{16}
\initial {M}
\entry {\code {menu-complete ()}}{17}
+\entry {\code {menu-complete-backward ()}}{17}
\initial {N}
\entry {\code {next-history (C-n)}}{14}
\entry {\code {non-incremental-forward-search-history (M-n)}}{14}
@@ -73,7 +74,8 @@
\initial {S}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{15}
\entry {\code {set-mark (C-@)}}{18}
-\entry {\code {start-kbd-macro (C-x ()}}{17}
+\entry {\code {skip-csi-sequence ()}}{19}
+\entry {\code {start-kbd-macro (C-x ()}}{18}
\initial {T}
\entry {\code {tab-insert (M-\key {TAB})}}{15}
\entry {\code {tilde-expand (M-~)}}{18}
diff --git a/lib/readline/doc/rluserman.html b/lib/readline/doc/rluserman.html
index dd84b807..ea7c5d9c 100644
--- a/lib/readline/doc/rluserman.html
+++ b/lib/readline/doc/rluserman.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on March, 18 2009 by texi2html 1.64 -->
+<!-- Created on October, 12 2009 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -648,6 +648,12 @@ mode, where the keystrokes are most similar to Emacs. This variable can be
set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
<P>
+<DT><CODE>echo-control-characters</CODE>
+<DD>When set to <SAMP>`on'</SAMP>, on operating systems that indicate they support it,
+readline echoes a character corresponding to a signal generated from the
+keyboard. The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>enable-keypad</CODE>
<DD><A NAME="IDX13"></A>
When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
@@ -655,6 +661,13 @@ keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>enable-meta-key</CODE>
+<DD>When set to <SAMP>`on'</SAMP>, Readline will try to enable any meta modifier
+key the terminal claims to support when it is called. On many terminals,
+the meta key is used to send eight-bit characters.
+The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>expand-tilde</CODE>
<DD><A NAME="IDX14"></A>
If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
@@ -798,8 +811,23 @@ of ringing the bell.
The default value is <SAMP>`off'</SAMP>.
<P>
-<DT><CODE>visible-stats</CODE>
+<DT><CODE>skip-completed-text</CODE>
<DD><A NAME="IDX30"></A>
+If set to <SAMP>`on'</SAMP>, this alters the default completion behavior when
+inserting a single match into the line. It's only active when
+performing completion in the middle of a word. If enabled, readline
+does not insert characters from the completion that match characters
+after point in the word being completed, so portions of the word
+following the cursor are not duplicated.
+For instance, if this is enabled, attempting completion when the cursor
+is after the <SAMP>`e'</SAMP> in <SAMP>`Makefile'</SAMP> will result in <SAMP>`Makefile'</SAMP>
+rather than <SAMP>`Makefilefile'</SAMP>, assuming there is a single possible
+completion.
+The default value is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>visible-stats</CODE>
+<DD><A NAME="IDX31"></A>
If set to <SAMP>`on'</SAMP>, a character denoting a file's type
is appended to the filename when listing possible
completions. The default is <SAMP>`off'</SAMP>.
@@ -1215,54 +1243,54 @@ The text between the point and mark is referred to as the <EM>region</EM>.
<H3> 1.4.1 Commands For Moving </H3>
<!--docid::SEC14::-->
<DL COMPACT>
-<A NAME="IDX31"></A>
+<A NAME="IDX32"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX32"></A>
+<DD><A NAME="IDX33"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX33"></A>
+<A NAME="IDX34"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX34"></A>
+<DD><A NAME="IDX35"></A>
Move to the end of the line.
<P>
-<A NAME="IDX35"></A>
+<A NAME="IDX36"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX36"></A>
+<DD><A NAME="IDX37"></A>
Move forward a character.
<P>
-<A NAME="IDX37"></A>
+<A NAME="IDX38"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX38"></A>
+<DD><A NAME="IDX39"></A>
Move back a character.
<P>
-<A NAME="IDX39"></A>
+<A NAME="IDX40"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX40"></A>
+<DD><A NAME="IDX41"></A>
Move forward to the end of the next word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX41"></A>
+<A NAME="IDX42"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX42"></A>
+<DD><A NAME="IDX43"></A>
Move back to the start of the current or previous word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX43"></A>
+<A NAME="IDX44"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX44"></A>
+<DD><A NAME="IDX45"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX45"></A>
+<A NAME="IDX46"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX46"></A>
+<DD><A NAME="IDX47"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1288,9 +1316,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX47"></A>
+<A NAME="IDX48"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX48"></A>
+<DD><A NAME="IDX49"></A>
Accept the line regardless of where the cursor is.
If this line is
non-empty, it may be added to the history list for future recall with
@@ -1299,81 +1327,81 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX49"></A>
+<A NAME="IDX50"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX50"></A>
+<DD><A NAME="IDX51"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX51"></A>
+<A NAME="IDX52"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX52"></A>
+<DD><A NAME="IDX53"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX53"></A>
+<A NAME="IDX54"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX54"></A>
+<DD><A NAME="IDX55"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX55"></A>
+<A NAME="IDX56"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX56"></A>
+<DD><A NAME="IDX57"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX57"></A>
+<A NAME="IDX58"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX58"></A>
+<DD><A NAME="IDX59"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX59"></A>
+<A NAME="IDX60"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX60"></A>
+<DD><A NAME="IDX61"></A>
Search forward starting at the current line and moving `down' through
the the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX61"></A>
+<A NAME="IDX62"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX62"></A>
+<DD><A NAME="IDX63"></A>
Search backward starting at the current line and moving `up'
through the history as necessary using a non-incremental search
for a string supplied by the user.
<P>
-<A NAME="IDX63"></A>
+<A NAME="IDX64"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX64"></A>
+<DD><A NAME="IDX65"></A>
Search forward starting at the current line and moving `down'
through the the history as necessary using a non-incremental search
for a string supplied by the user.
<P>
-<A NAME="IDX65"></A>
+<A NAME="IDX66"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX66"></A>
+<DD><A NAME="IDX67"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX67"></A>
+<A NAME="IDX68"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX68"></A>
+<DD><A NAME="IDX69"></A>
Search backward through the history for the string of characters
between the start of the current line and the point. This
is a non-incremental search. By default, this command is unbound.
<P>
-<A NAME="IDX69"></A>
+<A NAME="IDX70"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX70"></A>
+<DD><A NAME="IDX71"></A>
Insert the first argument to the previous command (usually
the second word on the previous line) at point.
With an argument <VAR>n</VAR>,
@@ -1384,9 +1412,9 @@ Once the argument <VAR>n</VAR> is computed, the argument is extracted
as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
<P>
-<A NAME="IDX71"></A>
+<A NAME="IDX72"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX72"></A>
+<DD><A NAME="IDX73"></A>
Insert last argument to the previous command (the last word of the
previous history entry). With an
argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -1418,52 +1446,52 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<P>
<DL COMPACT>
-<A NAME="IDX73"></A>
+<A NAME="IDX74"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX74"></A>
+<DD><A NAME="IDX75"></A>
Delete the character at point. If point is at the
beginning of the line, there are no characters in the line, and
the last character typed was not bound to <CODE>delete-char</CODE>, then
return EOF.
<P>
-<A NAME="IDX75"></A>
+<A NAME="IDX76"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX76"></A>
+<DD><A NAME="IDX77"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX77"></A>
+<A NAME="IDX78"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX78"></A>
+<DD><A NAME="IDX79"></A>
Delete the character under the cursor, unless the cursor is at the
end of the line, in which case the character behind the cursor is
deleted. By default, this is not bound to a key.
<P>
-<A NAME="IDX79"></A>
+<A NAME="IDX80"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX80"></A>
+<DD><A NAME="IDX81"></A>
Add the next character typed to the line verbatim. This is
how to insert key sequences like <KBD>C-q</KBD>, for example.
<P>
-<A NAME="IDX81"></A>
+<A NAME="IDX82"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX82"></A>
+<DD><A NAME="IDX83"></A>
Insert a tab character.
<P>
-<A NAME="IDX83"></A>
+<A NAME="IDX84"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX84"></A>
+<DD><A NAME="IDX85"></A>
Insert yourself.
<P>
-<A NAME="IDX85"></A>
+<A NAME="IDX86"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX86"></A>
+<DD><A NAME="IDX87"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1472,39 +1500,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX87"></A>
+<A NAME="IDX88"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX88"></A>
+<DD><A NAME="IDX89"></A>
Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
the last two words on the line.
<P>
-<A NAME="IDX89"></A>
+<A NAME="IDX90"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX90"></A>
+<DD><A NAME="IDX91"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX91"></A>
+<A NAME="IDX92"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX92"></A>
+<DD><A NAME="IDX93"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX93"></A>
+<A NAME="IDX94"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX94"></A>
+<DD><A NAME="IDX95"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX95"></A>
+<A NAME="IDX96"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX96"></A>
+<DD><A NAME="IDX97"></A>
Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
@@ -1544,106 +1572,106 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX97"></A>
+<A NAME="IDX98"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX98"></A>
+<DD><A NAME="IDX99"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX99"></A>
+<A NAME="IDX100"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX100"></A>
+<DD><A NAME="IDX101"></A>
Kill backward to the beginning of the line.
<P>
-<A NAME="IDX101"></A>
+<A NAME="IDX102"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX102"></A>
+<DD><A NAME="IDX103"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX103"></A>
+<A NAME="IDX104"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX104"></A>
+<DD><A NAME="IDX105"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX105"></A>
+<A NAME="IDX106"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX106"></A>
+<DD><A NAME="IDX107"></A>
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <CODE>forward-word</CODE>.
<P>
-<A NAME="IDX107"></A>
+<A NAME="IDX108"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX108"></A>
+<DD><A NAME="IDX109"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX109"></A>
+<A NAME="IDX110"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX110"></A>
+<DD><A NAME="IDX111"></A>
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX111"></A>
+<A NAME="IDX112"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX112"></A>
+<DD><A NAME="IDX113"></A>
Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX113"></A>
+<A NAME="IDX114"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX114"></A>
+<DD><A NAME="IDX115"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX115"></A>
+<A NAME="IDX116"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX116"></A>
+<DD><A NAME="IDX117"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX117"></A>
+<A NAME="IDX118"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX118"></A>
+<DD><A NAME="IDX119"></A>
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<P>
-<A NAME="IDX119"></A>
+<A NAME="IDX120"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX120"></A>
+<DD><A NAME="IDX121"></A>
Copy the word before point to the kill buffer.
The word boundaries are the same as <CODE>backward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX121"></A>
+<A NAME="IDX122"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX122"></A>
+<DD><A NAME="IDX123"></A>
Copy the word following point to the kill buffer.
The word boundaries are the same as <CODE>forward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX123"></A>
+<A NAME="IDX124"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX124"></A>
+<DD><A NAME="IDX125"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX125"></A>
+<A NAME="IDX126"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX126"></A>
+<DD><A NAME="IDX127"></A>
Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
</DL>
@@ -1667,16 +1695,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX127"></A>
+<A NAME="IDX128"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX128"></A>
+<DD><A NAME="IDX129"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX129"></A>
+<A NAME="IDX130"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX130"></A>
+<DD><A NAME="IDX131"></A>
This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -1711,30 +1739,30 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX131"></A>
+<A NAME="IDX132"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX132"></A>
+<DD><A NAME="IDX133"></A>
Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
The default is filename completion.
<P>
-<A NAME="IDX133"></A>
+<A NAME="IDX134"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX134"></A>
+<DD><A NAME="IDX135"></A>
List the possible completions of the text before point.
<P>
-<A NAME="IDX135"></A>
+<A NAME="IDX136"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX136"></A>
+<DD><A NAME="IDX137"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX137"></A>
+<A NAME="IDX138"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX138"></A>
+<DD><A NAME="IDX139"></A>
Similar to <CODE>complete</CODE>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -1749,9 +1777,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX139"></A>
+<A NAME="IDX140"></A>
+<DT><CODE>menu-complete-backward ()</CODE>
+<DD><A NAME="IDX141"></A>
+Identical to <CODE>menu-complete</CODE>, but moves backward through the list
+of possible completions, as if <CODE>menu-complete</CODE> had been given a
+negative argument.
+<P>
+
+<A NAME="IDX142"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX140"></A>
+<DD><A NAME="IDX143"></A>
Deletes the character under the cursor if not at the beginning or
end of the line (like <CODE>delete-char</CODE>).
If at the end of the line, behaves identically to
@@ -1780,22 +1816,22 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX141"></A>
+<A NAME="IDX144"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX142"></A>
+<DD><A NAME="IDX145"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX143"></A>
+<A NAME="IDX146"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX144"></A>
+<DD><A NAME="IDX147"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX145"></A>
+<A NAME="IDX148"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX146"></A>
+<DD><A NAME="IDX149"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
@@ -1821,87 +1857,99 @@ in the macro appear as if typed at the keyboard.
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX147"></A>
+<A NAME="IDX150"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX148"></A>
+<DD><A NAME="IDX151"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX149"></A>
+<A NAME="IDX152"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX150"></A>
+<DD><A NAME="IDX153"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX151"></A>
+<A NAME="IDX154"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX152"></A>
+<DD><A NAME="IDX155"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX153"></A>
+<A NAME="IDX156"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX154"></A>
+<DD><A NAME="IDX157"></A>
Metafy the next character typed. This is for keyboards
without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
<KBD>M-f</KBD>.
<P>
-<A NAME="IDX155"></A>
+<A NAME="IDX158"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX156"></A>
+<DD><A NAME="IDX159"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX157"></A>
+<A NAME="IDX160"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX158"></A>
+<DD><A NAME="IDX161"></A>
Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
command enough times to get back to the beginning.
<P>
-<A NAME="IDX159"></A>
+<A NAME="IDX162"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX160"></A>
+<DD><A NAME="IDX163"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX161"></A>
+<A NAME="IDX164"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX162"></A>
+<DD><A NAME="IDX165"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX163"></A>
+<A NAME="IDX166"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX164"></A>
+<DD><A NAME="IDX167"></A>
Swap the point with the mark. The current cursor position is set to
the saved position, and the old cursor position is saved as the mark.
<P>
-<A NAME="IDX165"></A>
+<A NAME="IDX168"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX166"></A>
+<DD><A NAME="IDX169"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<P>
-<A NAME="IDX167"></A>
+<A NAME="IDX170"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX168"></A>
+<DD><A NAME="IDX171"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<P>
-<A NAME="IDX169"></A>
+<A NAME="IDX172"></A>
+<DT><CODE>skip-csi-sequence ()</CODE>
+<DD><A NAME="IDX173"></A>
+Read enough characters to consume a multi-key sequence such as those
+defined for keys like Home and End. Such sequences begin with a
+Control Sequence Indicator (CSI), usually ESC-[. If this sequence is
+bound to "\e[", keys producing such sequences will have no effect
+unless explicitly bound to a readline command, instead of inserting
+stray characters into the editing buffer. This is unbound by default,
+but usually bound to ESC-[.
+<P>
+
+<A NAME="IDX174"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX170"></A>
+<DD><A NAME="IDX175"></A>
Without a numeric argument, the value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -1912,43 +1960,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX171"></A>
+<A NAME="IDX176"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX172"></A>
+<DD><A NAME="IDX177"></A>
Print all of the functions and their key bindings to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX173"></A>
+<A NAME="IDX178"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX174"></A>
+<DD><A NAME="IDX179"></A>
Print all of the settable variables and their values to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX175"></A>
+<A NAME="IDX180"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX176"></A>
+<DD><A NAME="IDX181"></A>
Print all of the Readline key sequences bound to macros and the
strings they output. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX177"></A>
+<A NAME="IDX182"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX178"></A>
+<DD><A NAME="IDX183"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX179"></A>
+<A NAME="IDX184"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX180"></A>
+<DD><A NAME="IDX185"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -2675,7 +2723,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2837,7 +2885,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>March, 18 2009</I>
+by <I>Chet Ramey</I> on <I>October, 12 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/lib/readline/doc/rluserman.info b/lib/readline/doc/rluserman.info
index 57982792..c1d55687 100644
--- a/lib/readline/doc/rluserman.info
+++ b/lib/readline/doc/rluserman.info
@@ -2,7 +2,7 @@ This is rluserman.info, produced by makeinfo version 4.13 from
./rluserman.texi.
This manual describes the end user interface of the GNU Readline Library
-(version 6.0, 28 October 2008), a library which aids in the consistency
+(version 6.1, 9 October 2009), a library which aids in the consistency
of user interface across discrete programs which provide a command line
interface.
@@ -438,11 +438,22 @@ Variable Settings
editing mode, where the keystrokes are most similar to Emacs.
This variable can be set to either `emacs' or `vi'.
+ `echo-control-characters'
+ When set to `on', on operating systems that indicate they
+ support it, readline echoes a character corresponding to a
+ signal generated from the keyboard. The default is `on'.
+
`enable-keypad'
When set to `on', Readline will try to enable the application
keypad when it is called. Some systems need this to enable
the arrow keys. The default is `off'.
+ `enable-meta-key'
+ When set to `on', Readline will try to enable any meta
+ modifier key the terminal claims to support when it is
+ called. On many terminals, the meta key is used to send
+ eight-bit characters. The default is `on'.
+
`expand-tilde'
If set to `on', tilde expansion is performed when Readline
attempts word completion. The default is `off'.
@@ -545,6 +556,19 @@ Variable Settings
be listed immediately instead of ringing the bell. The
default value is `off'.
+ `skip-completed-text'
+ If set to `on', this alters the default completion behavior
+ when inserting a single match into the line. It's only
+ active when performing completion in the middle of a word.
+ If enabled, readline does not insert characters from the
+ completion that match characters after point in the word
+ being completed, so portions of the word following the cursor
+ are not duplicated. For instance, if this is enabled,
+ attempting completion when the cursor is after the `e' in
+ `Makefile' will result in `Makefile' rather than
+ `Makefilefile', assuming there is a single possible
+ completion. The default value is `off'.
+
`visible-stats'
If set to `on', a character denoting a file's type is
appended to the filename when listing possible completions.
@@ -1159,6 +1183,11 @@ File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, P
command is intended to be bound to <TAB>, but is unbound by
default.
+`menu-complete-backward ()'
+ Identical to `menu-complete', but moves backward through the list
+ of possible completions, as if `menu-complete' had been given a
+ negative argument.
+
`delete-char-or-list ()'
Deletes the character under the cursor if not at the beginning or
end of the line (like `delete-char'). If at the end of the line,
@@ -1235,6 +1264,15 @@ File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up
of that character. A negative count searches for subsequent
occurrences.
+`skip-csi-sequence ()'
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
+ with a Control Sequence Indicator (CSI), usually ESC-[. If this
+ sequence is bound to "\e[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
+ This is unbound by default, but usually bound to ESC-[.
+
`insert-comment (M-#)'
Without a numeric argument, the value of the `comment-begin'
variable is inserted at the beginning of the current line. If a
@@ -1783,29 +1821,29 @@ permit their use in free software.

Tag Table:
-Node: Top1328
-Node: Command Line Editing1782
-Node: Introduction and Notation2436
-Node: Readline Interaction4060
-Node: Readline Bare Essentials5253
-Node: Readline Movement Commands7044
-Node: Readline Killing Commands8011
-Node: Readline Arguments9933
-Node: Searching10979
-Node: Readline Init File13132
-Node: Readline Init File Syntax14287
-Node: Conditional Init Constructs27241
-Node: Sample Init File29776
-Node: Bindable Readline Commands32895
-Node: Commands For Moving33954
-Node: Commands For History34817
-Node: Commands For Text37943
-Node: Commands For Killing40671
-Node: Numeric Arguments42815
-Node: Commands For Completion43956
-Node: Keyboard Macros45502
-Node: Miscellaneous Commands46075
-Node: Readline vi Mode49438
-Node: GNU Free Documentation License50359
+Node: Top1327
+Node: Command Line Editing1781
+Node: Introduction and Notation2435
+Node: Readline Interaction4059
+Node: Readline Bare Essentials5252
+Node: Readline Movement Commands7043
+Node: Readline Killing Commands8010
+Node: Readline Arguments9932
+Node: Searching10978
+Node: Readline Init File13131
+Node: Readline Init File Syntax14286
+Node: Conditional Init Constructs28493
+Node: Sample Init File31028
+Node: Bindable Readline Commands34147
+Node: Commands For Moving35206
+Node: Commands For History36069
+Node: Commands For Text39195
+Node: Commands For Killing41923
+Node: Numeric Arguments44067
+Node: Commands For Completion45208
+Node: Keyboard Macros46947
+Node: Miscellaneous Commands47520
+Node: Readline vi Mode51378
+Node: GNU Free Documentation License52299

End Tag Table
diff --git a/lib/readline/doc/rluserman.log b/lib/readline/doc/rluserman.log
index 0d34955a..9cb37b53 100644
--- a/lib/readline/doc/rluserman.log
+++ b/lib/readline/doc/rluserman.log
@@ -1,6 +1,6 @@
-This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:22
-**/Users/chet/src/bash/src/lib/readline/doc/rluserman.texi
-(/Users/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex
+This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 12 OCT 2009 10:10
+**/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi
+(/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex
Loading texinfo [version 2009-01-18.17]:
\bindingoffset=\dimen16
\normaloffset=\dimen17
@@ -176,7 +176,7 @@ and turning on texinfo input format.) (./rluserman.aux)
\openout9 = `rluserman.bt'.
] [2] [3] [4] [5]
-Underfull \hbox (badness 5231) in paragraph at lines 524--540
+Underfull \hbox (badness 5231) in paragraph at lines 535--551
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -189,7 +189,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[6] [7] [8] [9] [10]
-Overfull \hbox (26.43913pt too wide) in paragraph at lines 846--846
+Overfull \hbox (26.43913pt too wide) in paragraph at lines 871--871
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
@@ -205,11 +205,11 @@ gnored[] |
[21] [22] [23] [24] [25] [26]) [27] )
Here is how much of TeX's memory you used:
1743 strings out of 97980
- 20809 string characters out of 1221004
- 75544 words of memory out of 1500000
+ 20821 string characters out of 1221004
+ 80427 words of memory out of 1500000
2579 multiletter control sequences out of 10000+50000
32127 words of font info for 112 fonts, out of 1200000 for 2000
51 hyphenation exceptions out of 8191
- 16i,6n,14p,327b,534s stack positions out of 5000i,500n,6000p,200000b,5000s
+ 16i,6n,14p,331b,534s stack positions out of 5000i,500n,6000p,200000b,5000s
-Output written on rluserman.dvi (30 pages, 98540 bytes).
+Output written on rluserman.dvi (30 pages, 100828 bytes).
diff --git a/lib/readline/doc/rluserman.ps b/lib/readline/doc/rluserman.ps
index ee7e2975..a0944434 100644
--- a/lib/readline/doc/rluserman.ps
+++ b/lib/readline/doc/rluserman.ps
@@ -11,7 +11,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o rluserman.ps rluserman.dvi
%DVIPSParameters: dpi=300
-%DVIPSSource: TeX output 2009.03.18:0822
+%DVIPSSource: TeX output 2009.10.12:1010
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2963,23 +2963,23 @@ TeXDict begin
%%Page: 1 1
TeXDict begin 1 0 bop 75 659 a Fp(GNU)33 b(Readline)f(Library)f(User)i
(In)m(terface)p 75 709 1800 17 v 936 757 a Fo(Edition)15
-b(6.0,)e(for)i Fn(Readline)f(Library)g Fo(V)l(ersion)h(6.0.)1608
-811 y(Octob)q(er)h(2008)75 2467 y Fm(Chet)22 b(Ramey)-6
+b(6.1,)e(for)i Fn(Readline)f(Library)g Fo(V)l(ersion)h(6.1.)1608
+811 y(Octob)q(er)h(2009)75 2467 y Fm(Chet)22 b(Ramey)-6
b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 75 1512 a Fo(This)19 b(man)o(ual)f(describ)q(es)i
(the)g(end)g(user)f(in)o(terface)g(of)g(the)g(GNU)g(Readline)h(Library)
-f(\(v)o(ersion)f(6.0,)75 1567 y(28)f(Octob)q(er)g(2008\),)f(a)h
-(library)f(whic)o(h)h(aids)g(in)g(the)g(consistency)g(of)g(user)g(in)o
-(terface)g(across)f(discrete)75 1621 y(programs)e(whic)o(h)h(pro)o
-(vide)g(a)g(command)g(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)
-301 1688 y(c)289 1689 y Fl(\015)g Fo(1988{2009)e(F)l(ree)i(Soft)o(w)o
-(are)f(F)l(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)
-h(to)f(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g
-(man)o(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h
-(and)g(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f
+f(\(v)o(ersion)f(6.1,)75 1567 y(9)g(Octob)q(er)i(2009\),)e(a)g(library)
+g(whic)o(h)g(aids)g(in)h(the)g(consistency)g(of)f(user)h(in)o(terface)f
+(across)g(discrete)75 1621 y(programs)c(whic)o(h)h(pro)o(vide)g(a)g
+(command)g(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)301
+1688 y(c)289 1689 y Fl(\015)g Fo(1988{2009)e(F)l(ree)i(Soft)o(w)o(are)f
+(F)l(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f
+(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o
+(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g
+(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f
(copies.)195 1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,)
h(distribute)f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195
1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f
@@ -3034,10 +3034,10 @@ h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
827 y(1.3.1)43 b(Readline)16 b(Init)f(File)f(Syn)o(tax)9
b Fi(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23
-b Fo(4)200 882 y(1.3.2)43 b(Conditional)14 b(Init)h(Constructs)5
-b Fi(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)19
-b Fo(9)200 937 y(1.3.3)43 b(Sample)16 b(Init)f(File)7
+b Fo(4)200 882 y(1.3.2)43 b(Conditional)14 b(Init)h(Constructs)e
+Fi(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29
+b Fo(10)200 937 y(1.3.3)43 b(Sample)16 b(Init)f(File)7
b Fi(:)f(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fo(10)137 992 y(1.4)45
@@ -3064,7 +3064,7 @@ b Fo(16)200 1266 y(1.4.5)43 b(Sp)q(ecifying)16 b(Numeric)f(Argumen)o
1375 y(1.4.7)43 b(Keyb)q(oard)16 b(Macros)c Fi(:)6 b(:)h(:)g(:)h(:)f(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26
-b Fo(17)200 1430 y(1.4.8)43 b(Some)16 b(Miscellaneous)e(Commands)f
+b Fo(18)200 1430 y(1.4.8)43 b(Some)16 b(Miscellaneous)e(Commands)f
Fi(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fo(18)137 1485
y(1.5)45 b(Readline)15 b(vi)g(Mo)q(de)c Fi(:)c(:)h(:)f(:)g(:)g(:)g(:)h
@@ -3357,21 +3357,22 @@ o(ed)f(in)h(the)h(Readline)f(init)g(\014le.)36 b(Blank)20
b(lines)g(are)75 1532 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e
(a)i(`)p Fn(#)p Fo(')e(are)h(commen)o(ts.)35 b(Lines)21
b(b)q(eginning)g(with)f(a)g(`)p Fn($)p Fo(')f(indicate)75
-1587 y(conditional)12 b(constructs)i(\(see)g(Section)f(1.3.2)g
-([Conditional)e(Init)j(Constructs],)f(page)h(9\).)k(Other)c(lines)75
-1642 y(denote)h(v)m(ariable)g(settings)f(and)i(k)o(ey)f(bindings.)75
-1716 y(V)l(ariable)f(Settings)315 1771 y(Y)l(ou)20 b(can)h(mo)q(dify)f
-(the)g(run-time)g(b)q(eha)o(vior)g(of)f(Readline)i(b)o(y)f(altering)f
-(the)h(v)m(alues)g(of)315 1826 y(v)m(ariables)c(in)h(Readline)g(using)f
-(the)h Fn(set)g Fo(command)f(within)g(the)h(init)f(\014le.)25
-b(The)17 b(syn)o(tax)315 1880 y(is)e(simple:)435 1945
-y Fn(set)23 b Fg(variable)28 b(value)315 2009 y Fo(Here,)14
-b(for)f(example,)g(is)g(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)
-f(Emacs-lik)o(e)g(k)o(ey)g(binding)h(to)315 2064 y(use)i
-Fn(vi)e Fo(line)h(editing)g(commands:)435 2129 y Fn(set)23
-b(editing-mode)g(vi)315 2193 y Fo(V)l(ariable)17 b(names)g(and)h(v)m
-(alues,)g(where)f(appropriate,)g(are)g(recognized)h(without)e(regard)
-315 2248 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g
+1587 y(conditional)g(constructs)i(\(see)f(Section)h(1.3.2)e
+([Conditional)g(Init)h(Constructs],)h(page)f(10\).)36
+b(Other)75 1642 y(lines)15 b(denote)g(v)m(ariable)g(settings)f(and)h(k)
+o(ey)g(bindings.)75 1716 y(V)l(ariable)f(Settings)315
+1771 y(Y)l(ou)20 b(can)h(mo)q(dify)f(the)g(run-time)g(b)q(eha)o(vior)g
+(of)f(Readline)i(b)o(y)f(altering)f(the)h(v)m(alues)g(of)315
+1826 y(v)m(ariables)c(in)h(Readline)g(using)f(the)h Fn(set)g
+Fo(command)f(within)g(the)h(init)f(\014le.)25 b(The)17
+b(syn)o(tax)315 1880 y(is)e(simple:)435 1945 y Fn(set)23
+b Fg(variable)28 b(value)315 2009 y Fo(Here,)14 b(for)f(example,)g(is)g
+(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)f(Emacs-lik)o(e)g(k)o
+(ey)g(binding)h(to)315 2064 y(use)i Fn(vi)e Fo(line)h(editing)g
+(commands:)435 2129 y Fn(set)23 b(editing-mode)g(vi)315
+2193 y Fo(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g(where)f
+(appropriate,)g(are)g(recognized)h(without)e(regard)315
+2248 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g
(ignored.)315 2312 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g
(b)q(e)i(set)e(to)g(on)g(or)g(o\013)t(\))f(are)h(set)h(to)f(on)g(if)g
(the)h(v)m(alue)f(is)315 2367 y(n)o(ull)g(or)f(empt)o(y)l(,)h
@@ -3442,294 +3443,322 @@ b(By)12 b(default,)h(Readline)f(starts)g(up)h(in)f(Emacs)g(editing)g
(mo)q(de,)555 2378 y(where)j(the)f(k)o(eystrok)o(es)g(are)g(most)g
(similar)f(to)g(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555
2433 y(b)q(e)i(set)f(to)f(either)h(`)p Fn(emacs)p Fo(')f(or)h(`)p
-Fn(vi)p Fo('.)315 2506 y Fn(enable-keypad)555 2560 y
-Fo(When)d(set)f(to)h(`)p Fn(on)p Fo(',)e(Readline)i(will)f(try)g(to)g
-(enable)h(the)g(application)e(k)o(eypad)555 2615 y(when)k(it)e(is)h
-(called.)19 b(Some)13 b(systems)g(need)h(this)f(to)g(enable)g(the)h
-(arro)o(w)e(k)o(eys.)555 2670 y(The)j(default)g(is)g(`)p
-Fn(off)p Fo('.)p eop end
+Fn(vi)p Fo('.)315 2506 y Fn(echo-control-characters)555
+2560 y Fo(When)h(set)e(to)h(`)p Fn(on)p Fo(',)f(on)h(op)q(erating)f
+(systems)h(that)f(indicate)h(they)g(supp)q(ort)555 2615
+y(it,)g(readline)g(ec)o(ho)q(es)h(a)g(c)o(haracter)f(corresp)q(onding)h
+(to)f(a)g(signal)g(generated)555 2670 y(from)f(the)i(k)o(eyb)q(oard.)k
+(The)15 b(default)g(is)f(`)p Fn(on)p Fo('.)p eop end
%%Page: 6 9
TeXDict begin 6 8 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(6)315 149 y Fn(expand-tilde)555 204 y
-Fo(If)14 b(set)g(to)f(`)p Fn(on)p Fo(',)f(tilde)i(expansion)f(is)h(p)q
-(erformed)g(when)g(Readline)g(attempts)555 259 y(w)o(ord)h(completion.)
-k(The)c(default)g(is)f(`)p Fn(off)p Fo('.)315 348 y Fn
-(history-preserve-point)555 403 y Fo(If)21 b(set)g(to)f(`)p
-Fn(on)p Fo(',)h(the)g(history)f(co)q(de)h(attempts)f(to)g(place)h(the)g
-(p)q(oin)o(t)f(\(the)555 458 y(curren)o(t)d(cursor)h(p)q(osition\))e
-(at)h(the)h(same)f(lo)q(cation)f(on)i(eac)o(h)g(history)e(line)555
-512 y(retriev)o(ed)i(with)f Fn(previous-history)f Fo(or)i
-Fn(next-history)p Fo(.)27 b(The)18 b(default)555 567
-y(is)d(`)p Fn(off)p Fo('.)315 656 y Fn(history-size)555
-711 y Fo(Set)20 b(the)f(maxim)o(um)g(n)o(um)o(b)q(er)h(of)f(history)f
-(en)o(tries)h(sa)o(v)o(ed)g(in)g(the)h(history)555 766
-y(list.)25 b(If)17 b(set)g(to)g(zero,)g(the)g(n)o(um)o(b)q(er)h(of)f
-(en)o(tries)f(in)h(the)g(history)g(list)f(is)g(not)555
-821 y(limited.)315 910 y Fn(horizontal-scroll-mode)555
-965 y Fo(This)i(v)m(ariable)f(can)h(b)q(e)g(set)g(to)f(either)h(`)p
+(Editing)1075 b(6)315 149 y Fn(enable-keypad)555 204
+y Fo(When)12 b(set)f(to)h(`)p Fn(on)p Fo(',)e(Readline)i(will)f(try)g
+(to)g(enable)h(the)g(application)e(k)o(eypad)555 259
+y(when)k(it)e(is)h(called.)19 b(Some)13 b(systems)g(need)h(this)f(to)g
+(enable)g(the)h(arro)o(w)e(k)o(eys.)555 314 y(The)j(default)g(is)g(`)p
+Fn(off)p Fo('.)315 389 y Fn(enable-meta-key)555 444 y
+Fo(When)20 b(set)g(to)f(`)p Fn(on)p Fo(',)h(Readline)g(will)e(try)i(to)
+f(enable)h(an)o(y)g(meta)f(mo)q(di\014er)555 499 y(k)o(ey)i(the)g
+(terminal)e(claims)h(to)g(supp)q(ort)h(when)h(it)e(is)g(called.)37
+b(On)21 b(man)o(y)555 554 y(terminals,)16 b(the)i(meta)f(k)o(ey)h(is)f
+(used)h(to)f(send)h(eigh)o(t-bit)e(c)o(haracters.)27
+b(The)555 608 y(default)15 b(is)f(`)p Fn(on)p Fo('.)315
+684 y Fn(expand-tilde)555 738 y Fo(If)g(set)g(to)f(`)p
+Fn(on)p Fo(',)f(tilde)i(expansion)f(is)h(p)q(erformed)g(when)g
+(Readline)g(attempts)555 793 y(w)o(ord)h(completion.)k(The)c(default)g
+(is)f(`)p Fn(off)p Fo('.)315 869 y Fn(history-preserve-point)555
+923 y Fo(If)21 b(set)g(to)f(`)p Fn(on)p Fo(',)h(the)g(history)f(co)q
+(de)h(attempts)f(to)g(place)h(the)g(p)q(oin)o(t)f(\(the)555
+978 y(curren)o(t)d(cursor)h(p)q(osition\))e(at)h(the)h(same)f(lo)q
+(cation)f(on)i(eac)o(h)g(history)e(line)555 1033 y(retriev)o(ed)i(with)
+f Fn(previous-history)f Fo(or)i Fn(next-history)p Fo(.)27
+b(The)18 b(default)555 1088 y(is)d(`)p Fn(off)p Fo('.)315
+1163 y Fn(history-size)555 1218 y Fo(Set)20 b(the)f(maxim)o(um)g(n)o
+(um)o(b)q(er)h(of)f(history)f(en)o(tries)h(sa)o(v)o(ed)g(in)g(the)h
+(history)555 1273 y(list.)25 b(If)17 b(set)g(to)g(zero,)g(the)g(n)o(um)
+o(b)q(er)h(of)f(en)o(tries)f(in)h(the)g(history)g(list)f(is)g(not)555
+1328 y(limited.)315 1403 y Fn(horizontal-scroll-mode)555
+1458 y Fo(This)i(v)m(ariable)f(can)h(b)q(e)g(set)g(to)f(either)h(`)p
Fn(on)p Fo(')f(or)g(`)p Fn(off)p Fo('.)27 b(Setting)18
-b(it)f(to)g(`)p Fn(on)p Fo(')555 1019 y(means)c(that)f(the)i(text)e(of)
+b(it)f(to)g(`)p Fn(on)p Fo(')555 1512 y(means)c(that)f(the)i(text)e(of)
h(the)g(lines)g(b)q(eing)g(edited)g(will)f(scroll)g(horizon)o(tally)555
-1074 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g
-(than)h(the)g(width)f(of)h(the)555 1129 y(screen,)e(instead)e(of)h
+1567 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g
+(than)h(the)g(width)f(of)h(the)555 1622 y(screen,)e(instead)e(of)h
(wrapping)f(on)o(to)g(a)h(new)g(screen)h(line.)19 b(By)13
-b(default,)g(this)555 1184 y(v)m(ariable)i(is)f(set)h(to)g(`)p
-Fn(off)p Fo('.)315 1273 y Fn(input-meta)555 1328 y Fo(If)h(set)f(to)g
+b(default,)g(this)555 1677 y(v)m(ariable)i(is)f(set)h(to)g(`)p
+Fn(off)p Fo('.)315 1752 y Fn(input-meta)555 1807 y Fo(If)h(set)f(to)g
(`)p Fn(on)p Fo(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g
-(\(it)g(will)f(not)h(clear)555 1382 y(the)20 b(eigh)o(th)f(bit)g(in)h
+(\(it)g(will)f(not)h(clear)555 1862 y(the)20 b(eigh)o(th)f(bit)g(in)h
(the)g(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555
-1437 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
+1917 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
b(The)20 b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)33
-b(The)555 1492 y(name)15 b Fn(meta-flag)f Fo(is)h(a)g(synon)o(ym)g(for)
-f(this)h(v)m(ariable.)315 1581 y Fn(isearch-terminators)555
-1636 y Fo(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
-(terminate)f(an)h(incremen)o(tal)555 1691 y(searc)o(h)12
+b(The)555 1971 y(name)15 b Fn(meta-flag)f Fo(is)h(a)g(synon)o(ym)g(for)
+f(this)h(v)m(ariable.)315 2047 y Fn(isearch-terminators)555
+2101 y Fo(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
+(terminate)f(an)h(incremen)o(tal)555 2156 y(searc)o(h)12
b(without)g(subsequen)o(tly)g(executing)h(the)f(c)o(haracter)g(as)g(a)g
-(command)555 1745 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
+(command)555 2211 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
(page)f(3\).)40 b(If)23 b(this)f(v)m(ariable)f(has)h(not)555
-1800 y(b)q(een)d(giv)o(en)e(a)g(v)m(alue,)i(the)f(c)o(haracters)e
+2266 y(b)q(een)d(giv)o(en)e(a)g(v)m(alue,)i(the)f(c)o(haracters)e
Fn(ESC)i Fo(and)g Fg(C-J)f Fo(will)f(terminate)h(an)555
-1855 y(incremen)o(tal)d(searc)o(h.)315 1944 y Fn(keymap)96
+2321 y(incremen)o(tal)d(searc)o(h.)315 2396 y Fn(keymap)96
b Fo(Sets)19 b(Readline's)h(idea)f(of)g(the)g(curren)o(t)h(k)o(eymap)f
-(for)f(k)o(ey)i(binding)f(com-)555 1999 y(mands.)41 b(Acceptable)22
+(for)f(k)o(ey)i(binding)f(com-)555 2451 y(mands.)41 b(Acceptable)22
b Fn(keymap)g Fo(names)g(are)f Fn(emacs)p Fo(,)i Fn(emacs-standard)p
-Fo(,)555 2054 y Fn(emacs-meta)p Fo(,)49 b Fn(emacs-ctlx)p
+Fo(,)555 2506 y Fn(emacs-meta)p Fo(,)49 b Fn(emacs-ctlx)p
Fo(,)g Fn(vi)p Fo(,)h Fn(vi-move)p Fo(,)f Fn(vi-command)p
-Fo(,)g(and)555 2108 y Fn(vi-insert)p Fo(.)31 b Fn(vi)20
+Fo(,)g(and)555 2560 y Fn(vi-insert)p Fo(.)31 b Fn(vi)20
b Fo(is)f(equiv)m(alen)o(t)g(to)g Fn(vi-command)p Fo(;)g
-Fn(emacs)g Fo(is)g(equiv)m(alen)o(t)555 2163 y(to)c Fn(emacs-standard)p
+Fn(emacs)g Fo(is)g(equiv)m(alen)o(t)555 2615 y(to)c Fn(emacs-standard)p
Fo(.)20 b(The)d(default)e(v)m(alue)h(is)g Fn(emacs)p
-Fo(.)21 b(The)16 b(v)m(alue)g(of)g(the)555 2218 y Fn(editing-mode)e
-Fo(v)m(ariable)g(also)g(a\013ects)h(the)g(default)g(k)o(eymap.)315
-2307 y Fn(mark-directories)555 2362 y Fo(If)k(set)g(to)g(`)p
-Fn(on)p Fo(',)f(completed)h(directory)g(names)g(ha)o(v)o(e)f(a)h(slash)
-g(app)q(ended.)555 2417 y(The)c(default)g(is)g(`)p Fn(on)p
-Fo('.)315 2506 y Fn(mark-modified-lines)555 2560 y Fo(This)j(v)m
-(ariable,)f(when)i(set)e(to)h(`)p Fn(on)p Fo(',)f(causes)h(Readline)g
-(to)f(displa)o(y)g(an)h(as-)555 2615 y(terisk)e(\(`)p
-Fn(*)p Fo('\))f(at)i(the)f(start)g(of)h(history)e(lines)i(whic)o(h)f
-(ha)o(v)o(e)h(b)q(een)h(mo)q(di\014ed.)555 2670 y(This)d(v)m(ariable)f
-(is)h(`)p Fn(off)p Fo(')f(b)o(y)h(default.)p eop end
+Fo(.)21 b(The)16 b(v)m(alue)g(of)g(the)555 2670 y Fn(editing-mode)e
+Fo(v)m(ariable)g(also)g(a\013ects)h(the)g(default)g(k)o(eymap.)p
+eop end
%%Page: 7 10
TeXDict begin 7 9 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(7)315 149 y Fn(mark-symlinked-directories)555
-204 y Fo(If)23 b(set)f(to)f(`)p Fn(on)p Fo(',)i(completed)f(names)h
-(whic)o(h)f(are)g(sym)o(b)q(olic)g(links)f(to)h(di-)555
-259 y(rectories)g(ha)o(v)o(e)h(a)g(slash)f(app)q(ended)j(\(sub)s(ject)e
-(to)f(the)i(v)m(alue)f(of)g Fn(mark-)555 314 y(directories)p
-Fo(\).)18 b(The)d(default)g(is)g(`)p Fn(off)p Fo('.)315
-387 y Fn(match-hidden-files)555 442 y Fo(This)c(v)m(ariable,)g(when)g
-(set)g(to)g(`)p Fn(on)p Fo(',)f(causes)h(Readline)h(to)e(matc)o(h)h
-(\014les)g(whose)555 496 y(names)22 b(b)q(egin)g(with)g(a)f(`)p
-Fn(.)p Fo(')h(\(hidden)g(\014les\))g(when)g(p)q(erforming)g(\014lename)
-555 551 y(completion,)f(unless)g(the)g(leading)f(`)p
-Fn(.)p Fo(')g(is)g(supplied)h(b)o(y)g(the)f(user)h(in)g(the)555
-606 y(\014lename)15 b(to)g(b)q(e)h(completed.)k(This)14
-b(v)m(ariable)h(is)g(`)p Fn(on)p Fo(')f(b)o(y)h(default.)315
-679 y Fn(output-meta)555 734 y Fo(If)j(set)f(to)g(`)p
-Fn(on)p Fo(',)g(Readline)h(will)f(displa)o(y)g(c)o(haracters)f(with)i
-(the)f(eigh)o(th)g(bit)555 789 y(set)h(directly)g(rather)f(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-844 y(default)15 b(is)f(`)p Fn(off)p Fo('.)315 917 y
-Fn(page-completions)555 971 y Fo(If)j(set)g(to)f(`)p
-Fn(on)p Fo(',)g(Readline)h(uses)h(an)e(in)o(ternal)g
-Fn(more)p Fo(-lik)o(e)g(pager)h(to)f(displa)o(y)555 1026
-y(a)g(screenful)g(of)g(p)q(ossible)g(completions)f(at)h(a)g(time.)22
-b(This)16 b(v)m(ariable)f(is)h(`)p Fn(on)p Fo(')555 1081
-y(b)o(y)f(default.)315 1154 y Fn(print-completions-horizont)o(ally)555
-1209 y Fo(If)d(set)g(to)f(`)p Fn(on)p Fo(',)h(Readline)g(will)e(displa)
-o(y)i(completions)f(with)g(matc)o(hes)g(sorted)555 1264
-y(horizon)o(tally)20 b(in)h(alphab)q(etical)g(order,)i(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 1318 y(The)15 b(default)g(is)g(`)p
-Fn(off)p Fo('.)315 1391 y Fn(revert-all-at-newline)555
-1446 y Fo(If)g(set)g(to)f(`)p Fn(on)p Fo(',)f(Readline)i(will)f(undo)h
+(Editing)1075 b(7)315 149 y Fn(mark-directories)555 204
+y Fo(If)19 b(set)g(to)g(`)p Fn(on)p Fo(',)f(completed)h(directory)g
+(names)g(ha)o(v)o(e)f(a)h(slash)g(app)q(ended.)555 259
+y(The)c(default)g(is)g(`)p Fn(on)p Fo('.)315 338 y Fn
+(mark-modified-lines)555 393 y Fo(This)j(v)m(ariable,)f(when)i(set)e
+(to)h(`)p Fn(on)p Fo(',)f(causes)h(Readline)g(to)f(displa)o(y)g(an)h
+(as-)555 448 y(terisk)e(\(`)p Fn(*)p Fo('\))f(at)i(the)f(start)g(of)h
+(history)e(lines)i(whic)o(h)f(ha)o(v)o(e)h(b)q(een)h(mo)q(di\014ed.)555
+503 y(This)d(v)m(ariable)f(is)h(`)p Fn(off)p Fo(')f(b)o(y)h(default.)
+315 582 y Fn(mark-symlinked-directories)555 637 y Fo(If)23
+b(set)f(to)f(`)p Fn(on)p Fo(',)i(completed)f(names)h(whic)o(h)f(are)g
+(sym)o(b)q(olic)g(links)f(to)h(di-)555 691 y(rectories)g(ha)o(v)o(e)h
+(a)g(slash)f(app)q(ended)j(\(sub)s(ject)e(to)f(the)i(v)m(alue)f(of)g
+Fn(mark-)555 746 y(directories)p Fo(\).)18 b(The)d(default)g(is)g(`)p
+Fn(off)p Fo('.)315 825 y Fn(match-hidden-files)555 880
+y Fo(This)c(v)m(ariable,)g(when)g(set)g(to)g(`)p Fn(on)p
+Fo(',)f(causes)h(Readline)h(to)e(matc)o(h)h(\014les)g(whose)555
+935 y(names)22 b(b)q(egin)g(with)g(a)f(`)p Fn(.)p Fo(')h(\(hidden)g
+(\014les\))g(when)g(p)q(erforming)g(\014lename)555 990
+y(completion,)f(unless)g(the)g(leading)f(`)p Fn(.)p Fo(')g(is)g
+(supplied)h(b)o(y)g(the)f(user)h(in)g(the)555 1044 y(\014lename)15
+b(to)g(b)q(e)h(completed.)k(This)14 b(v)m(ariable)h(is)g(`)p
+Fn(on)p Fo(')f(b)o(y)h(default.)315 1124 y Fn(output-meta)555
+1178 y Fo(If)j(set)f(to)g(`)p Fn(on)p Fo(',)g(Readline)h(will)f(displa)
+o(y)g(c)o(haracters)f(with)i(the)f(eigh)o(th)g(bit)555
+1233 y(set)h(directly)g(rather)f(than)h(as)g(a)g(meta-pre\014xed)h
+(escap)q(e)g(sequence.)30 b(The)555 1288 y(default)15
+b(is)f(`)p Fn(off)p Fo('.)315 1367 y Fn(page-completions)555
+1422 y Fo(If)j(set)g(to)f(`)p Fn(on)p Fo(',)g(Readline)h(uses)h(an)e
+(in)o(ternal)g Fn(more)p Fo(-lik)o(e)g(pager)h(to)f(displa)o(y)555
+1477 y(a)g(screenful)g(of)g(p)q(ossible)g(completions)f(at)h(a)g(time.)
+22 b(This)16 b(v)m(ariable)f(is)h(`)p Fn(on)p Fo(')555
+1531 y(b)o(y)f(default.)315 1611 y Fn(print-completions-horizont)o
+(ally)555 1665 y Fo(If)d(set)g(to)f(`)p Fn(on)p Fo(',)h(Readline)g
+(will)e(displa)o(y)i(completions)f(with)g(matc)o(hes)g(sorted)555
+1720 y(horizon)o(tally)20 b(in)h(alphab)q(etical)g(order,)i(rather)e
+(than)g(do)o(wn)h(the)g(screen.)555 1775 y(The)15 b(default)g(is)g(`)p
+Fn(off)p Fo('.)315 1854 y Fn(revert-all-at-newline)555
+1909 y Fo(If)g(set)g(to)f(`)p Fn(on)p Fo(',)f(Readline)i(will)f(undo)h
(all)f(c)o(hanges)g(to)h(history)e(lines)i(b)q(efore)555
-1501 y(returning)f(when)h Fn(accept-line)e Fo(is)g(executed.)21
-b(By)14 b(default,)g(history)f(lines)555 1556 y(ma)o(y)20
+1964 y(returning)f(when)h Fn(accept-line)e Fo(is)g(executed.)21
+b(By)14 b(default,)g(history)f(lines)555 2019 y(ma)o(y)20
b(b)q(e)i(mo)q(di\014ed)f(and)g(retain)f(individual)g(undo)i(lists)d
-(across)i(calls)f(to)555 1611 y Fn(readline)p Fo(.)f(The)c(default)g
-(is)g(`)p Fn(off)p Fo('.)315 1684 y Fn(show-all-if-ambiguous)555
-1738 y Fo(This)g(alters)e(the)j(default)e(b)q(eha)o(vior)h(of)f(the)h
-(completion)f(functions.)20 b(If)15 b(set)555 1793 y(to)e(`)p
+(across)i(calls)f(to)555 2073 y Fn(readline)p Fo(.)f(The)c(default)g
+(is)g(`)p Fn(off)p Fo('.)315 2152 y Fn(show-all-if-ambiguous)555
+2207 y Fo(This)g(alters)e(the)j(default)e(b)q(eha)o(vior)h(of)f(the)h
+(completion)f(functions.)20 b(If)15 b(set)555 2262 y(to)e(`)p
Fn(on)p Fo(',)g(w)o(ords)g(whic)o(h)g(ha)o(v)o(e)h(more)f(than)g(one)h
-(p)q(ossible)g(completion)f(cause)555 1848 y(the)20 b(matc)o(hes)f(to)f
+(p)q(ossible)g(completion)f(cause)555 2317 y(the)20 b(matc)o(hes)f(to)f
(b)q(e)j(listed)d(immediately)g(instead)h(of)g(ringing)g(the)g(b)q
-(ell.)555 1903 y(The)c(default)g(v)m(alue)h(is)e(`)p
-Fn(off)p Fo('.)315 1976 y Fn(show-all-if-unmodified)555
-2031 y Fo(This)19 b(alters)f(the)i(default)e(b)q(eha)o(vior)h(of)g(the)
-h(completion)e(functions)h(in)g(a)555 2086 y(fashion)12
+(ell.)555 2372 y(The)c(default)g(v)m(alue)h(is)e(`)p
+Fn(off)p Fo('.)315 2451 y Fn(show-all-if-unmodified)555
+2506 y Fo(This)19 b(alters)f(the)i(default)e(b)q(eha)o(vior)h(of)g(the)
+h(completion)e(functions)h(in)g(a)555 2560 y(fashion)12
b(similar)f(to)g Fe(sho)o(w-all-if-am)o(biguous)r Fo(.)17
b(If)c(set)f(to)g(`)p Fn(on)p Fo(',)f(w)o(ords)h(whic)o(h)555
-2140 y(ha)o(v)o(e)j(more)g(than)g(one)h(p)q(ossible)f(completion)f
-(without)h(an)o(y)g(p)q(ossible)g(par-)555 2195 y(tial)20
+2615 y(ha)o(v)o(e)j(more)g(than)g(one)h(p)q(ossible)f(completion)f
+(without)h(an)o(y)g(p)q(ossible)g(par-)555 2670 y(tial)20
b(completion)g(\(the)h(p)q(ossible)g(completions)f(don't)h(share)g(a)f
-(common)555 2250 y(pre\014x\))15 b(cause)h(the)f(matc)o(hes)g(to)f(b)q
-(e)i(listed)e(immediately)g(instead)h(of)f(ring-)555
-2305 y(ing)h(the)g(b)q(ell.)20 b(The)15 b(default)g(v)m(alue)g(is)g(`)p
-Fn(off)p Fo('.)315 2378 y Fn(visible-stats)555 2433 y
-Fo(If)h(set)g(to)f(`)p Fn(on)p Fo(',)g(a)h(c)o(haracter)f(denoting)g(a)
-h(\014le's)g(t)o(yp)q(e)g(is)f(app)q(ended)j(to)d(the)555
-2487 y(\014lename)g(when)h(listing)e(p)q(ossible)h(completions.)j(The)e
-(default)f(is)f(`)p Fn(off)p Fo('.)75 2560 y(Key)i(Bindings)315
-2615 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)e(k)o(ey)i(bindings)f
-(in)h(the)g(init)f(\014le)h(is)g(simple.)37 b(First)19
-b(y)o(ou)315 2670 y(need)c(to)e(\014nd)h(the)g(name)g(of)g(the)f
-(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19
-b(The)14 b(follo)o(wing)p eop end
+(common)p eop end
%%Page: 8 11
TeXDict begin 8 10 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(8)315 149 y(sections)17 b(con)o(tain)h(tables)f(of)g
-(the)h(command)g(name,)g(the)g(default)g(k)o(eybinding,)g(if)f(an)o(y)l
-(,)315 204 y(and)e(a)g(short)g(description)g(of)f(what)h(the)g(command)
-g(do)q(es.)315 271 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)f(place)h(on)g(a)f(line)h(in)g(the)g(init)315
-326 y(\014le)f(the)g(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)h(to)f
-(bind)h(the)g(command)g(to,)f(a)g(colon,)h(and)g(then)315
-381 y(the)f(name)g(of)g(the)g(command.)22 b(There)17
+(Editing)1075 b(8)555 149 y(pre\014x\))15 b(cause)h(the)f(matc)o(hes)g
+(to)f(b)q(e)i(listed)e(immediately)g(instead)h(of)f(ring-)555
+204 y(ing)h(the)g(b)q(ell.)20 b(The)15 b(default)g(v)m(alue)g(is)g(`)p
+Fn(off)p Fo('.)315 281 y Fn(skip-completed-text)555 336
+y Fo(If)i(set)f(to)g(`)p Fn(on)p Fo(',)f(this)h(alters)f(the)i(default)
+f(completion)f(b)q(eha)o(vior)h(when)h(in-)555 391 y(serting)d(a)g
+(single)g(matc)o(h)g(in)o(to)f(the)i(line.)k(It's)14
+b(only)g(activ)o(e)g(when)h(p)q(erform-)555 445 y(ing)i(completion)f
+(in)h(the)h(middle)f(of)g(a)g(w)o(ord.)25 b(If)18 b(enabled,)g
+(readline)f(do)q(es)555 500 y(not)j(insert)g(c)o(haracters)f(from)h
+(the)g(completion)f(that)h(matc)o(h)g(c)o(haracters)555
+555 y(after)e(p)q(oin)o(t)g(in)g(the)g(w)o(ord)g(b)q(eing)h(completed,)
+g(so)f(p)q(ortions)f(of)h(the)h(w)o(ord)555 610 y(follo)o(wing)14
+b(the)h(cursor)h(are)g(not)f(duplicated.)22 b(F)l(or)15
+b(instance,)g(if)h(this)f(is)g(en-)555 665 y(abled,)21
+b(attempting)e(completion)g(when)i(the)f(cursor)g(is)g(after)g(the)g(`)
+p Fn(e)p Fo(')f(in)555 719 y(`)p Fn(Makefile)p Fo(')e(will)g(result)h
+(in)h(`)p Fn(Makefile)p Fo(')e(rather)h(than)h(`)p Fn(Makefilefile)p
+Fo(',)555 774 y(assuming)e(there)h(is)f(a)g(single)g(p)q(ossible)g
+(completion.)27 b(The)18 b(default)f(v)m(alue)555 829
+y(is)e(`)p Fn(off)p Fo('.)315 906 y Fn(visible-stats)555
+960 y Fo(If)h(set)g(to)f(`)p Fn(on)p Fo(',)g(a)h(c)o(haracter)f
+(denoting)g(a)h(\014le's)g(t)o(yp)q(e)g(is)f(app)q(ended)j(to)d(the)555
+1015 y(\014lename)g(when)h(listing)e(p)q(ossible)h(completions.)j(The)e
+(default)f(is)f(`)p Fn(off)p Fo('.)75 1092 y(Key)i(Bindings)315
+1147 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)e(k)o(ey)i(bindings)f
+(in)h(the)g(init)f(\014le)h(is)g(simple.)37 b(First)19
+b(y)o(ou)315 1201 y(need)c(to)e(\014nd)h(the)g(name)g(of)g(the)f
+(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19
+b(The)14 b(follo)o(wing)315 1256 y(sections)j(con)o(tain)h(tables)f(of)
+g(the)h(command)g(name,)g(the)g(default)g(k)o(eybinding,)g(if)f(an)o(y)
+l(,)315 1311 y(and)e(a)g(short)g(description)g(of)f(what)h(the)g
+(command)g(do)q(es.)315 1377 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g
+(of)g(the)g(command,)g(simply)f(place)h(on)g(a)f(line)h(in)g(the)g
+(init)315 1432 y(\014le)f(the)g(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f
+(wish)h(to)f(bind)h(the)g(command)g(to,)f(a)g(colon,)h(and)g(then)315
+1486 y(the)f(name)g(of)g(the)g(command.)22 b(There)17
b(can)f(b)q(e)h(no)f(space)g(b)q(et)o(w)o(een)h(the)f(k)o(ey)g(name)g
-(and)315 435 y(the)k(colon)g({)g(that)g(will)f(b)q(e)i(in)o(terpreted)f
-(as)g(part)g(of)g(the)h(k)o(ey)f(name.)35 b(The)21 b(name)f(of)315
-490 y(the)d(k)o(ey)g(can)h(b)q(e)g(expressed)g(in)f(di\013eren)o(t)f(w)
-o(a)o(ys,)h(dep)q(ending)h(on)f(what)g(y)o(ou)g(\014nd)h(most)315
-545 y(comfortable.)315 612 y(In)h(addition)e(to)g(command)h(names,)g
+(and)315 1541 y(the)k(colon)g({)g(that)g(will)f(b)q(e)i(in)o(terpreted)
+f(as)g(part)g(of)g(the)h(k)o(ey)f(name.)35 b(The)21 b(name)f(of)315
+1596 y(the)d(k)o(ey)g(can)h(b)q(e)g(expressed)g(in)f(di\013eren)o(t)f
+(w)o(a)o(ys,)h(dep)q(ending)h(on)f(what)g(y)o(ou)g(\014nd)h(most)315
+1651 y(comfortable.)315 1717 y(In)h(addition)e(to)g(command)h(names,)g
(readline)g(allo)o(ws)e(k)o(eys)i(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 666 y(that)c(is)h(inserted)g(when)h(the)f(k)o(ey)g(is)g
-(pressed)h(\(a)e Fe(macro)r Fo(\).)315 745 y Fe(k)o(eyname)s
-Fo(:)19 b Fe(function-name)f Fo(or)d Fe(macro)555 800
+(string)315 1771 y(that)c(is)h(inserted)g(when)h(the)f(k)o(ey)g(is)g
+(pressed)h(\(a)e Fe(macro)r Fo(\).)315 1848 y Fe(k)o(eyname)s
+Fo(:)19 b Fe(function-name)f Fo(or)d Fe(macro)555 1903
y(k)o(eyname)i Fo(is)d(the)g(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)h(out)
-f(in)g(English.)19 b(F)l(or)13 b(example:)675 867 y Fn(Control-u:)22
-b(universal-argument)675 921 y(Meta-Rubout:)g(backward-kill-word)675
-976 y(Control-o:)g(">)i(output")555 1043 y Fo(In)c(the)f(ab)q(o)o(v)o
-(e)g(example,)h Fg(C-u)f Fo(is)g(b)q(ound)h(to)f(the)g(function)g
-Fn(universal-)555 1098 y(argument)p Fo(,)f Fg(M-DEL)h
-Fo(is)f(b)q(ound)i(to)e(the)h(function)g Fn(backward-kill-word)p
-Fo(,)555 1152 y(and)h Fg(C-o)f Fo(is)g(b)q(ound)h(to)f(run)h(the)f
-(macro)g(expressed)h(on)g(the)f(righ)o(t)g(hand)555 1207
-y(side)c(\(that)f(is,)h(to)f(insert)h(the)g(text)g(`)p
-Fn(>)f(output)p Fo(')g(in)o(to)h(the)g(line\).)555 1274
-y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)g(c)o(haracter)g(names)g
-(are)g(recognized)h(while)f(pro-)555 1329 y(cessing)11
+f(in)g(English.)19 b(F)l(or)13 b(example:)675 1969 y
+Fn(Control-u:)22 b(universal-argument)675 2023 y(Meta-Rubout:)g
+(backward-kill-word)675 2078 y(Control-o:)g(">)i(output")555
+2144 y Fo(In)c(the)f(ab)q(o)o(v)o(e)g(example,)h Fg(C-u)f
+Fo(is)g(b)q(ound)h(to)f(the)g(function)g Fn(universal-)555
+2199 y(argument)p Fo(,)f Fg(M-DEL)h Fo(is)f(b)q(ound)i(to)e(the)h
+(function)g Fn(backward-kill-word)p Fo(,)555 2254 y(and)h
+Fg(C-o)f Fo(is)g(b)q(ound)h(to)f(run)h(the)f(macro)g(expressed)h(on)g
+(the)f(righ)o(t)g(hand)555 2308 y(side)c(\(that)f(is,)h(to)f(insert)h
+(the)g(text)g(`)p Fn(>)f(output)p Fo(')g(in)o(to)h(the)g(line\).)555
+2374 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)g(c)o(haracter)g
+(names)g(are)g(recognized)h(while)f(pro-)555 2429 y(cessing)11
b(this)f(k)o(ey)g(binding)h(syn)o(tax:)17 b Fe(DEL)p
Fo(,)10 b Fe(ESC)t Fo(,)h Fe(ESCAPE)s Fo(,)f Fe(LFD)r
-Fo(,)g Fe(NEW-)555 1384 y(LINE)s Fo(,)15 b Fe(RET)s Fo(,)h
+Fo(,)g Fe(NEW-)555 2484 y(LINE)s Fo(,)15 b Fe(RET)s Fo(,)h
Fe(RETURN)5 b Fo(,)15 b Fe(R)o(UBOUT)s Fo(,)h Fe(SP)l(A)o(CE)s
-Fo(,)e Fe(SPC)t Fo(,)h(and)g Fe(T)l(AB)s Fo(.)315 1462
+Fo(,)e Fe(SPC)t Fo(,)h(and)g Fe(T)l(AB)s Fo(.)315 2560
y Fn(")p Fe(k)o(eyseq)q Fn(")p Fo(:)20 b Fe(function-name)d
-Fo(or)e Fe(macro)555 1517 y(k)o(eyseq)i Fo(di\013ers)d(from)h
+Fo(or)e Fe(macro)555 2615 y(k)o(eyseq)i Fo(di\013ers)d(from)h
Fe(k)o(eyname)j Fo(ab)q(o)o(v)o(e)d(in)h(that)e(strings)h(denoting)g
-(an)g(en-)555 1572 y(tire)h(k)o(ey)h(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)h(b)o(y)f(placing)f(the)h(k)o(ey)g(sequence)h(in)555
-1627 y(double)d(quotes.)k(Some)c Fh(gnu)g Fo(Emacs)f(st)o(yle)g(k)o(ey)
-h(escap)q(es)g(can)g(b)q(e)g(used,)g(as)555 1681 y(in)i(the)g(follo)o
-(wing)d(example,)j(but)g(the)g(sp)q(ecial)g(c)o(haracter)f(names)h(are)
-f(not)555 1736 y(recognized.)675 1803 y Fn("\\C-u":)23
-b(universal-argument)675 1858 y("\\C-x\\C-r":)f(re-read-init-file)675
-1912 y("\\e[11~":)h("Function)f(Key)i(1")555 1979 y Fo(In)33
-b(the)f(ab)q(o)o(v)o(e)g(example,)k Fg(C-u)c Fo(is)g(again)f(b)q(ound)i
-(to)f(the)g(function)555 2034 y Fn(universal-argument)19
-b Fo(\(just)j(as)f(it)g(w)o(as)g(in)h(the)g(\014rst)f(example\),)i(`)p
-Fg(C-x)555 2089 y(C-r)p Fo(')14 b(is)h(b)q(ound)h(to)f(the)g(function)g
-Fn(re-read-init-file)p Fo(,)d(and)k(`)p Fn(ESC)e([)h(1)g(1)555
-2143 y(~)p Fo(')g(is)f(b)q(ound)j(to)d(insert)h(the)g(text)g(`)p
-Fn(Function)e(Key)i(1)p Fo('.)315 2222 y(The)g(follo)o(wing)e
-Fh(gnu)h Fo(Emacs)h(st)o(yle)f(escap)q(e)i(sequences)g(are)e(a)o(v)m
-(ailable)g(when)h(sp)q(ecifying)315 2277 y(k)o(ey)g(sequences:)315
-2356 y Fg(\\C-)168 b Fo(con)o(trol)14 b(pre\014x)315
-2434 y Fg(\\M-)168 b Fo(meta)15 b(pre\014x)315 2513 y
-Fg(\\e)192 b Fo(an)15 b(escap)q(e)h(c)o(haracter)315
-2591 y Fg(\\\\)192 b Fo(bac)o(kslash)315 2670 y Fg(\\)p
-Fn(")g(")p Fo(,)15 b(a)g(double)g(quotation)f(mark)p
+(an)g(en-)555 2670 y(tire)h(k)o(ey)h(sequence)h(can)f(b)q(e)g(sp)q
+(eci\014ed,)h(b)o(y)f(placing)f(the)h(k)o(ey)g(sequence)h(in)p
eop end
%%Page: 9 12
TeXDict begin 9 11 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(9)315 149 y Fg(\\')192 b Fn(')p Fo(,)15
-b(a)g(single)f(quote)h(or)g(ap)q(ostrophe)315 228 y(In)f(addition)f(to)
-h(the)f Fh(gnu)h Fo(Emacs)g(st)o(yle)e(escap)q(e)j(sequences,)g(a)e
-(second)i(set)e(of)h(bac)o(kslash)315 283 y(escap)q(es)i(is)f(a)o(v)m
-(ailable:)315 362 y Fn(\\a)192 b Fo(alert)14 b(\(b)q(ell\))315
-441 y Fn(\\b)192 b Fo(bac)o(kspace)315 520 y Fn(\\d)g
-Fo(delete)315 599 y Fn(\\f)g Fo(form)14 b(feed)315 678
-y Fn(\\n)192 b Fo(newline)315 757 y Fn(\\r)g Fo(carriage)14
-b(return)315 836 y Fn(\\t)192 b Fo(horizon)o(tal)14 b(tab)315
-915 y Fn(\\v)192 b Fo(v)o(ertical)14 b(tab)315 994 y
-Fn(\\)p Fg(nnn)144 b Fo(the)17 b(eigh)o(t-bit)f(c)o(haracter)h(whose)g
-(v)m(alue)h(is)e(the)i(o)q(ctal)e(v)m(alue)i Fe(nnn)g
-Fo(\(one)f(to)555 1049 y(three)e(digits\))315 1128 y
-Fn(\\x)p Fg(HH)144 b Fo(the)20 b(eigh)o(t-bit)e(c)o(haracter)h(whose)h
-(v)m(alue)g(is)f(the)h(hexadecimal)f(v)m(alue)h Fe(HH)555
-1183 y Fo(\(one)15 b(or)g(t)o(w)o(o)f(hex)h(digits\))315
-1262 y(When)k(en)o(tering)f(the)h(text)f(of)g(a)h(macro,)f(single)g(or)
-g(double)h(quotes)g(m)o(ust)f(b)q(e)h(used)h(to)315 1317
-y(indicate)10 b(a)h(macro)f(de\014nition.)18 b(Unquoted)11
-b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h(name.)18
-b(In)315 1372 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o(kslash)f
-(escap)q(es)h(describ)q(ed)h(ab)q(o)o(v)o(e)e(are)g(expanded.)20
-b(Bac)o(kslash)315 1426 y(will)f(quote)g(an)o(y)h(other)g(c)o(haracter)
-f(in)h(the)g(macro)f(text,)h(including)g(`)p Fn(")p Fo(')f(and)h(`)p
-Fn(')p Fo('.)34 b(F)l(or)315 1481 y(example,)13 b(the)g(follo)o(wing)d
-(binding)j(will)f(mak)o(e)g(`)p Fg(C-x)i Fn(\\)p Fo(')f(insert)f(a)h
-(single)f(`)p Fn(\\)p Fo(')g(in)o(to)g(the)h(line:)435
-1548 y Fn("\\C-x\\\\":)23 b("\\\\")75 1647 y Fd(1.3.2)30
-b(Conditional)20 b(Init)g(Constructs)75 1721 y Fo(Readline)f(implemen)o
-(ts)e(a)h(facilit)o(y)f(similar)f(in)i(spirit)g(to)f(the)i(conditional)
-e(compilation)f(features)i(of)75 1775 y(the)d(C)h(prepro)q(cessor)f
-(whic)o(h)g(allo)o(ws)f(k)o(ey)h(bindings)g(and)h(v)m(ariable)e
-(settings)h(to)f(b)q(e)i(p)q(erformed)g(as)f(the)75 1830
-y(result)g(of)f(tests.)20 b(There)15 b(are)g(four)g(parser)g(directiv)o
-(es)f(used.)75 1909 y Fn($if)168 b Fo(The)16 b Fn($if)f
-Fo(construct)g(allo)o(ws)f(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f
-(the)h(editing)f(mo)q(de,)h(the)315 1964 y(terminal)i(b)q(eing)h(used,)
-h(or)f(the)g(application)f(using)g(Readline.)32 b(The)19
-b(text)g(of)f(the)i(test)315 2019 y(extends)c(to)e(the)h(end)h(of)f
-(the)g(line;)g(no)g(c)o(haracters)f(are)h(required)h(to)e(isolate)g
-(it.)315 2098 y Fn(mode)144 b Fo(The)11 b Fn(mode=)e
-Fo(form)h(of)g(the)h Fn($if)f Fo(directiv)o(e)f(is)h(used)h(to)f(test)g
-(whether)h(Readline)555 2153 y(is)j(in)h Fn(emacs)f Fo(or)g
-Fn(vi)g Fo(mo)q(de.)20 b(This)15 b(ma)o(y)f(b)q(e)h(used)g(in)g
-(conjunction)g(with)f(the)555 2207 y(`)p Fn(set)g(keymap)p
-Fo(')f(command,)g(for)h(instance,)f(to)g(set)h(bindings)f(in)h(the)g
-Fn(emacs-)555 2262 y(standard)d Fo(and)i Fn(emacs-ctlx)e
-Fo(k)o(eymaps)h(only)h(if)f(Readline)g(is)g(starting)f(out)555
-2317 y(in)k Fn(emacs)g Fo(mo)q(de.)315 2396 y Fn(term)144
-b Fo(The)14 b Fn(term=)e Fo(form)h(ma)o(y)g(b)q(e)h(used)g(to)f
-(include)h(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555
-2451 y(ings,)18 b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 2506 y(function)12
+(Editing)1075 b(9)555 149 y(double)15 b(quotes.)k(Some)c
+Fh(gnu)g Fo(Emacs)f(st)o(yle)g(k)o(ey)h(escap)q(es)g(can)g(b)q(e)g
+(used,)g(as)555 204 y(in)i(the)g(follo)o(wing)d(example,)j(but)g(the)g
+(sp)q(ecial)g(c)o(haracter)f(names)h(are)f(not)555 259
+y(recognized.)675 326 y Fn("\\C-u":)23 b(universal-argument)675
+381 y("\\C-x\\C-r":)f(re-read-init-file)675 435 y("\\e[11~":)h
+("Function)f(Key)i(1")555 502 y Fo(In)33 b(the)f(ab)q(o)o(v)o(e)g
+(example,)k Fg(C-u)c Fo(is)g(again)f(b)q(ound)i(to)f(the)g(function)555
+557 y Fn(universal-argument)19 b Fo(\(just)j(as)f(it)g(w)o(as)g(in)h
+(the)g(\014rst)f(example\),)i(`)p Fg(C-x)555 612 y(C-r)p
+Fo(')14 b(is)h(b)q(ound)h(to)f(the)g(function)g Fn(re-read-init-file)p
+Fo(,)d(and)k(`)p Fn(ESC)e([)h(1)g(1)555 666 y(~)p Fo(')g(is)f(b)q(ound)
+j(to)d(insert)h(the)g(text)g(`)p Fn(Function)e(Key)i(1)p
+Fo('.)315 745 y(The)g(follo)o(wing)e Fh(gnu)h Fo(Emacs)h(st)o(yle)f
+(escap)q(e)i(sequences)g(are)e(a)o(v)m(ailable)g(when)h(sp)q(ecifying)
+315 800 y(k)o(ey)g(sequences:)315 879 y Fg(\\C-)168 b
+Fo(con)o(trol)14 b(pre\014x)315 957 y Fg(\\M-)168 b Fo(meta)15
+b(pre\014x)315 1036 y Fg(\\e)192 b Fo(an)15 b(escap)q(e)h(c)o(haracter)
+315 1115 y Fg(\\\\)192 b Fo(bac)o(kslash)315 1193 y Fg(\\)p
+Fn(")g(")p Fo(,)15 b(a)g(double)g(quotation)f(mark)315
+1272 y Fg(\\')192 b Fn(')p Fo(,)15 b(a)g(single)f(quote)h(or)g(ap)q
+(ostrophe)315 1351 y(In)f(addition)f(to)h(the)f Fh(gnu)h
+Fo(Emacs)g(st)o(yle)e(escap)q(e)j(sequences,)g(a)e(second)i(set)e(of)h
+(bac)o(kslash)315 1405 y(escap)q(es)i(is)f(a)o(v)m(ailable:)315
+1484 y Fn(\\a)192 b Fo(alert)14 b(\(b)q(ell\))315 1563
+y Fn(\\b)192 b Fo(bac)o(kspace)315 1641 y Fn(\\d)g Fo(delete)315
+1720 y Fn(\\f)g Fo(form)14 b(feed)315 1799 y Fn(\\n)192
+b Fo(newline)315 1877 y Fn(\\r)g Fo(carriage)14 b(return)315
+1956 y Fn(\\t)192 b Fo(horizon)o(tal)14 b(tab)315 2035
+y Fn(\\v)192 b Fo(v)o(ertical)14 b(tab)315 2113 y Fn(\\)p
+Fg(nnn)144 b Fo(the)17 b(eigh)o(t-bit)f(c)o(haracter)h(whose)g(v)m
+(alue)h(is)e(the)i(o)q(ctal)e(v)m(alue)i Fe(nnn)g Fo(\(one)f(to)555
+2168 y(three)e(digits\))315 2247 y Fn(\\x)p Fg(HH)144
+b Fo(the)20 b(eigh)o(t-bit)e(c)o(haracter)h(whose)h(v)m(alue)g(is)f
+(the)h(hexadecimal)f(v)m(alue)h Fe(HH)555 2302 y Fo(\(one)15
+b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2380 y(When)k(en)o(tering)f(the)h
+(text)f(of)g(a)h(macro,)f(single)g(or)g(double)h(quotes)g(m)o(ust)f(b)q
+(e)h(used)h(to)315 2435 y(indicate)10 b(a)h(macro)f(de\014nition.)18
+b(Unquoted)11 b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h
+(name.)18 b(In)315 2490 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
+(kslash)f(escap)q(es)h(describ)q(ed)h(ab)q(o)o(v)o(e)e(are)g(expanded.)
+20 b(Bac)o(kslash)315 2545 y(will)f(quote)g(an)o(y)h(other)g(c)o
+(haracter)f(in)h(the)g(macro)f(text,)h(including)g(`)p
+Fn(")p Fo(')f(and)h(`)p Fn(')p Fo('.)34 b(F)l(or)315
+2599 y(example,)13 b(the)g(follo)o(wing)d(binding)j(will)f(mak)o(e)g(`)
+p Fg(C-x)i Fn(\\)p Fo(')f(insert)f(a)h(single)f(`)p Fn(\\)p
+Fo(')g(in)o(to)g(the)h(line:)435 2666 y Fn("\\C-x\\\\":)23
+b("\\\\")p eop end
+%%Page: 10 13
+TeXDict begin 10 12 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
+(Editing)1053 b(10)75 149 y Fd(1.3.2)30 b(Conditional)20
+b(Init)g(Constructs)75 223 y Fo(Readline)f(implemen)o(ts)e(a)h(facilit)
+o(y)f(similar)f(in)i(spirit)g(to)f(the)i(conditional)e(compilation)f
+(features)i(of)75 278 y(the)d(C)h(prepro)q(cessor)f(whic)o(h)g(allo)o
+(ws)f(k)o(ey)h(bindings)g(and)h(v)m(ariable)e(settings)h(to)f(b)q(e)i
+(p)q(erformed)g(as)f(the)75 333 y(result)g(of)f(tests.)20
+b(There)15 b(are)g(four)g(parser)g(directiv)o(es)f(used.)75
+412 y Fn($if)168 b Fo(The)16 b Fn($if)f Fo(construct)g(allo)o(ws)f
+(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f(the)h(editing)f(mo)q(de,)h
+(the)315 467 y(terminal)i(b)q(eing)h(used,)h(or)f(the)g(application)f
+(using)g(Readline.)32 b(The)19 b(text)g(of)f(the)i(test)315
+522 y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)g(no)g(c)o(haracters)
+f(are)h(required)h(to)e(isolate)g(it.)315 601 y Fn(mode)144
+b Fo(The)11 b Fn(mode=)e Fo(form)h(of)g(the)h Fn($if)f
+Fo(directiv)o(e)f(is)h(used)h(to)f(test)g(whether)h(Readline)555
+656 y(is)j(in)h Fn(emacs)f Fo(or)g Fn(vi)g Fo(mo)q(de.)20
+b(This)15 b(ma)o(y)f(b)q(e)h(used)g(in)g(conjunction)g(with)f(the)555
+711 y(`)p Fn(set)g(keymap)p Fo(')f(command,)g(for)h(instance,)f(to)g
+(set)h(bindings)f(in)h(the)g Fn(emacs-)555 766 y(standard)d
+Fo(and)i Fn(emacs-ctlx)e Fo(k)o(eymaps)h(only)h(if)f(Readline)g(is)g
+(starting)f(out)555 821 y(in)k Fn(emacs)g Fo(mo)q(de.)315
+900 y Fn(term)144 b Fo(The)14 b Fn(term=)e Fo(form)h(ma)o(y)g(b)q(e)h
+(used)g(to)f(include)h(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555
+955 y(ings,)18 b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j
+(output)e(b)o(y)g(the)g(terminal's)555 1010 y(function)12
b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)f(side)g(of)h
-(the)g(`)p Fn(=)p Fo(')f(is)g(tested)h(against)555 2560
+(the)g(`)p Fn(=)p Fo(')f(is)g(tested)h(against)555 1065
y(b)q(oth)j(the)g(full)g(name)g(of)f(the)h(terminal)f(and)h(the)g(p)q
-(ortion)g(of)f(the)h(terminal)555 2615 y(name)i(b)q(efore)g(the)g
+(ortion)g(of)f(the)h(terminal)555 1120 y(name)i(b)q(efore)g(the)g
(\014rst)f(`)p Fn(-)p Fo('.)24 b(This)16 b(allo)o(ws)f
Fn(sun)h Fo(to)g(matc)o(h)h(b)q(oth)f Fn(sun)h Fo(and)555
-2670 y Fn(sun-cmd)p Fo(,)d(for)g(instance.)p eop end
-%%Page: 10 13
-TeXDict begin 10 12 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1053 b(10)315 149 y Fn(application)555 204 y
-Fo(The)11 b Fe(application)f Fo(construct)h(is)f(used)i(to)e(include)h
-(application-sp)q(eci\014c)g(set-)555 259 y(tings.)18
-b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h(library)e(sets)h(the)
-g Fe(application)555 314 y(name)s Fo(,)f(and)h(y)o(ou)f(can)h(test)e
-(for)h(a)g(particular)f(v)m(alue.)19 b(This)11 b(could)h(b)q(e)g(used)g
-(to)555 369 y(bind)17 b(k)o(ey)f(sequences)i(to)d(functions)i(useful)f
-(for)g(a)g(sp)q(eci\014c)h(program.)23 b(F)l(or)555 423
-y(instance,)16 b(the)h(follo)o(wing)d(command)j(adds)f(a)g(k)o(ey)h
-(sequence)g(that)f(quotes)555 478 y(the)f(curren)o(t)g(or)g(previous)g
-(w)o(ord)f(in)i(Bash:)675 545 y Fn($if)23 b(Bash)675
-600 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)675
-655 y("\\C-xq":)g("\\eb\\"\\ef\\"")675 710 y($endif)75
-790 y($endif)96 b Fo(This)15 b(command,)f(as)h(seen)h(in)f(the)g
-(previous)g(example,)g(terminates)f(an)h Fn($if)f Fo(command.)75
-869 y Fn($else)120 b Fo(Commands)15 b(in)g(this)f(branc)o(h)i(of)e(the)
-i Fn($if)e Fo(directiv)o(e)h(are)g(executed)h(if)f(the)g(test)g(fails.)
-75 949 y Fn($include)48 b Fo(This)21 b(directiv)o(e)g(tak)o(es)g(a)h
+1174 y Fn(sun-cmd)p Fo(,)d(for)g(instance.)315 1254 y
+Fn(application)555 1309 y Fo(The)d Fe(application)f Fo(construct)h(is)f
+(used)i(to)e(include)h(application-sp)q(eci\014c)g(set-)555
+1364 y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h
+(library)e(sets)h(the)g Fe(application)555 1418 y(name)s
+Fo(,)f(and)h(y)o(ou)f(can)h(test)e(for)h(a)g(particular)f(v)m(alue.)19
+b(This)11 b(could)h(b)q(e)g(used)g(to)555 1473 y(bind)17
+b(k)o(ey)f(sequences)i(to)d(functions)i(useful)f(for)g(a)g(sp)q
+(eci\014c)h(program.)23 b(F)l(or)555 1528 y(instance,)16
+b(the)h(follo)o(wing)d(command)j(adds)f(a)g(k)o(ey)h(sequence)g(that)f
+(quotes)555 1583 y(the)f(curren)o(t)g(or)g(previous)g(w)o(ord)f(in)i
+(Bash:)675 1650 y Fn($if)23 b(Bash)675 1705 y(#)h(Quote)f(the)g
+(current)g(or)h(previous)f(word)675 1760 y("\\C-xq":)g
+("\\eb\\"\\ef\\"")675 1814 y($endif)75 1894 y($endif)96
+b Fo(This)15 b(command,)f(as)h(seen)h(in)f(the)g(previous)g(example,)g
+(terminates)f(an)h Fn($if)f Fo(command.)75 1974 y Fn($else)120
+b Fo(Commands)15 b(in)g(this)f(branc)o(h)i(of)e(the)i
+Fn($if)e Fo(directiv)o(e)h(are)g(executed)h(if)f(the)g(test)g(fails.)75
+2054 y Fn($include)48 b Fo(This)21 b(directiv)o(e)g(tak)o(es)g(a)h
(single)f(\014lename)h(as)f(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 1004 y(and)e(bindings)h(from)e(that)h(\014le.)32
+315 2108 y(and)e(bindings)h(from)e(that)h(\014le.)32
b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e(directiv)o(e)i(reads)g
-(from)315 1059 y(`)p Fn(/etc/inputrc)p Fo(':)435 1126
-y Fn($include)k(/etc/inputrc)75 1225 y Fd(1.3.3)30 b(Sample)20
-b(Init)h(File)75 1299 y Fo(Here)13 b(is)g(an)g(example)g(of)g(an)g
+(from)315 2163 y(`)p Fn(/etc/inputrc)p Fo(':)435 2230
+y Fn($include)k(/etc/inputrc)75 2330 y Fd(1.3.3)30 b(Sample)20
+b(Init)h(File)75 2403 y Fo(Here)13 b(is)g(an)g(example)g(of)g(an)g
Fe(inputrc)j Fo(\014le.)k(This)12 b(illustrates)g(k)o(ey)h(binding,)g
-(v)m(ariable)g(assignmen)o(t,)f(and)75 1354 y(conditional)i(syn)o(tax.)
+(v)m(ariable)g(assignmen)o(t,)f(and)75 2458 y(conditional)i(syn)o(tax.)
p eop end
%%Page: 11 14
TeXDict begin 11 13 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
@@ -4027,179 +4056,196 @@ TeXDict begin 17 19 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
204 y Fo(Rotate)j(the)g(kill-ring,)f(and)h(y)o(ank)g(the)h(new)f(top.)
26 b(Y)l(ou)17 b(can)h(only)f(do)g(this)g(if)f(the)i(prior)315
259 y(command)d(is)g Fn(yank)f Fo(or)h Fn(yank-pop)p
-Fo(.)75 350 y Fd(1.4.5)30 b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts)
-75 432 y Fn(digit-argument)13 b(\()p Fg(M-0)p Fn(,)i
-Fg(M-1)p Fn(,)f(...)h Fg(M--)p Fn(\))315 487 y Fo(Add)f(this)f(digit)f
+Fo(.)75 354 y Fd(1.4.5)30 b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts)
+75 438 y Fn(digit-argument)13 b(\()p Fg(M-0)p Fn(,)i
+Fg(M-1)p Fn(,)f(...)h Fg(M--)p Fn(\))315 493 y Fo(Add)f(this)f(digit)f
(to)h(the)h(argumen)o(t)e(already)h(accum)o(ulating,)f(or)h(start)f(a)h
-(new)h(argumen)o(t.)315 542 y Fg(M--)h Fo(starts)f(a)h(negativ)o(e)f
-(argumen)o(t.)75 613 y Fn(universal-argument)f(\(\))315
-668 y Fo(This)f(is)h(another)f(w)o(a)o(y)g(to)g(sp)q(ecify)h(an)g
+(new)h(argumen)o(t.)315 548 y Fg(M--)h Fo(starts)f(a)h(negativ)o(e)f
+(argumen)o(t.)75 623 y Fn(universal-argument)f(\(\))315
+678 y Fo(This)f(is)h(another)f(w)o(a)o(y)g(to)g(sp)q(ecify)h(an)g
(argumen)o(t.)18 b(If)13 b(this)f(command)h(is)f(follo)o(w)o(ed)f(b)o
-(y)i(one)315 723 y(or)h(more)h(digits,)e(optionally)g(with)h(a)h
+(y)i(one)315 733 y(or)h(more)h(digits,)e(optionally)g(with)h(a)h
(leading)f(min)o(us)g(sign,)g(those)h(digits)e(de\014ne)j(the)f(ar-)315
-778 y(gumen)o(t.)k(If)c(the)g(command)f(is)g(follo)o(w)o(ed)f(b)o(y)i
-(digits,)e(executing)h Fn(universal-argument)315 832
+788 y(gumen)o(t.)k(If)c(the)g(command)f(is)g(follo)o(w)o(ed)f(b)o(y)i
+(digits,)e(executing)h Fn(universal-argument)315 843
y Fo(again)h(ends)h(the)g(n)o(umeric)g(argumen)o(t,)f(but)h(is)g
(otherwise)f(ignored.)21 b(As)16 b(a)g(sp)q(ecial)f(case,)315
-887 y(if)h(this)g(command)g(is)g(immediately)f(follo)o(w)o(ed)g(b)o(y)h
+897 y(if)h(this)g(command)g(is)g(immediately)f(follo)o(w)o(ed)g(b)o(y)h
(a)g(c)o(haracter)g(that)g(is)g(neither)g(a)g(digit)315
-942 y(or)d(min)o(us)h(sign,)f(the)h(argumen)o(t)g(coun)o(t)f(for)h(the)
+952 y(or)d(min)o(us)h(sign,)f(the)h(argumen)o(t)g(coun)o(t)f(for)h(the)
g(next)g(command)g(is)f(m)o(ultiplied)g(b)o(y)h(four.)315
-997 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)g(initially)f(one,)i(so)f
+1007 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)g(initially)f(one,)i(so)f
(executing)h(this)f(function)h(the)f(\014rst)h(time)315
-1052 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
+1062 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
(time)f(mak)o(es)h(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1106 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)g(this)f(is)h(not)g
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1198 y Fd(1.4.6)30
+1117 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)g(this)f(is)h(not)g
+(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1212 y Fd(1.4.6)30
b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1280 y Fn(complete)14 b(\(TAB\))315 1334 y Fo(A)o(ttempt)c(to)h
+b(ou)75 1296 y Fn(complete)14 b(\(TAB\))315 1351 y Fo(A)o(ttempt)c(to)h
(p)q(erform)g(completion)g(on)g(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)
-18 b(The)11 b(actual)g(completion)315 1389 y(p)q(erformed)k(is)g
+18 b(The)11 b(actual)g(completion)315 1406 y(p)q(erformed)k(is)g
(application-sp)q(eci\014c.)20 b(The)15 b(default)g(is)g(\014lename)g
-(completion.)75 1461 y Fn(possible-completions)d(\(M-?\))315
-1515 y Fo(List)j(the)g(p)q(ossible)g(completions)f(of)h(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 1587 y Fn(insert-completions)d(\(M-*\))315
-1642 y Fo(Insert)j(all)e(completions)g(of)h(the)g(text)g(b)q(efore)h(p)
+(completion.)75 1481 y Fn(possible-completions)d(\(M-?\))315
+1536 y Fo(List)j(the)g(p)q(ossible)g(completions)f(of)h(the)g(text)g(b)
+q(efore)h(p)q(oin)o(t.)75 1611 y Fn(insert-completions)d(\(M-*\))315
+1666 y Fo(Insert)j(all)e(completions)g(of)h(the)g(text)g(b)q(efore)h(p)
q(oin)o(t)e(that)h(w)o(ould)g(ha)o(v)o(e)g(b)q(een)h(generated)315
-1696 y(b)o(y)f Fn(possible-completions)p Fo(.)75 1768
-y Fn(menu-complete)e(\(\))315 1823 y Fo(Similar)d(to)i
+1721 y(b)o(y)f Fn(possible-completions)p Fo(.)75 1796
+y Fn(menu-complete)e(\(\))315 1851 y Fo(Similar)d(to)i
Fn(complete)p Fo(,)f(but)h(replaces)g(the)g(w)o(ord)f(to)g(b)q(e)i
-(completed)e(with)h(a)f(single)h(matc)o(h)315 1877 y(from)18
+(completed)e(with)h(a)f(single)h(matc)o(h)315 1906 y(from)18
b(the)h(list)f(of)g(p)q(ossible)h(completions.)30 b(Rep)q(eated)20
-b(execution)f(of)g Fn(menu-complete)315 1932 y Fo(steps)h(through)g
+b(execution)f(of)g Fn(menu-complete)315 1961 y Fo(steps)h(through)g
(the)g(list)f(of)h(p)q(ossible)g(completions,)g(inserting)f(eac)o(h)h
-(matc)o(h)f(in)h(turn.)315 1987 y(A)o(t)e(the)g(end)h(of)f(the)h(list)e
+(matc)o(h)f(in)h(turn.)315 2016 y(A)o(t)e(the)g(end)h(of)f(the)h(list)e
(of)h(completions,)g(the)g(b)q(ell)h(is)e(rung)i(\(sub)s(ject)f(to)f
-(the)i(setting)315 2042 y(of)f Fn(bell-style)p Fo(\))e(and)i(the)g
+(the)i(setting)315 2070 y(of)f Fn(bell-style)p Fo(\))e(and)i(the)g
(original)e(text)i(is)f(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fe(n)i Fo(mo)o(v)o(es)e Fe(n)315 2097 y Fo(p)q(ositions)f(forw)o(ard)g
+Fe(n)i Fo(mo)o(v)o(es)e Fe(n)315 2125 y Fo(p)q(ositions)f(forw)o(ard)g
(in)i(the)f(list)f(of)h(matc)o(hes;)h(a)f(negativ)o(e)f(argumen)o(t)h
-(ma)o(y)g(b)q(e)h(used)g(to)315 2151 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
+(ma)o(y)g(b)q(e)h(used)g(to)315 2180 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
(through)g(the)g(list.)30 b(This)19 b(command)g(is)g(in)o(tended)g(to)g
-(b)q(e)h(b)q(ound)g(to)315 2206 y Fn(TAB)p Fo(,)14 b(but)i(is)e(un)o(b)
-q(ound)j(b)o(y)e(default.)75 2278 y Fn(delete-char-or-list)e(\(\))315
-2332 y Fo(Deletes)g(the)g(c)o(haracter)g(under)h(the)g(cursor)f(if)g
-(not)g(at)g(the)g(b)q(eginning)h(or)f(end)h(of)f(the)g(line)315
-2387 y(\(lik)o(e)g Fn(delete-char)p Fo(\).)18 b(If)d(at)f(the)h(end)g
-(of)f(the)g(line,)g(b)q(eha)o(v)o(es)h(iden)o(tically)e(to)h
-Fn(possible-)315 2442 y(completions)p Fo(.)k(This)d(command)g(is)g(un)o
-(b)q(ound)h(b)o(y)f(default.)75 2533 y Fd(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 2615 y Fn(start-kbd-macro)13 b(\(C-x)i(\(\))315
-2670 y Fo(Begin)g(sa)o(ving)f(the)i(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)e(the)h(curren)o(t)g(k)o(eyb)q(oard)g(macro.)p eop
-end
+(b)q(e)h(b)q(ound)g(to)315 2235 y Fn(TAB)p Fo(,)14 b(but)i(is)e(un)o(b)
+q(ound)j(b)o(y)e(default.)75 2310 y Fn(menu-complete-backward)d(\(\))
+315 2365 y Fo(Iden)o(tical)17 b(to)g Fn(menu-complete)p
+Fo(,)f(but)i(mo)o(v)o(es)e(bac)o(kw)o(ard)h(through)g(the)h(list)e(of)h
+(p)q(ossible)315 2420 y(completions,)d(as)h(if)f Fn(menu-complete)g
+Fo(had)h(b)q(een)h(giv)o(en)f(a)g(negativ)o(e)f(argumen)o(t.)75
+2496 y Fn(delete-char-or-list)f(\(\))315 2550 y Fo(Deletes)g(the)g(c)o
+(haracter)g(under)h(the)g(cursor)f(if)g(not)g(at)g(the)g(b)q(eginning)h
+(or)f(end)h(of)f(the)g(line)315 2605 y(\(lik)o(e)g Fn(delete-char)p
+Fo(\).)18 b(If)d(at)f(the)h(end)g(of)f(the)g(line,)g(b)q(eha)o(v)o(es)h
+(iden)o(tically)e(to)h Fn(possible-)315 2660 y(completions)p
+Fo(.)k(This)d(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.)p
+eop end
%%Page: 18 21
TeXDict begin 18 20 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1053 b(18)75 149 y Fn(end-kbd-macro)13 b(\(C-x)i(\)\))315
-204 y Fo(Stop)f(sa)o(ving)e(the)i(c)o(haracters)f(t)o(yp)q(ed)h(in)o
-(to)e(the)i(curren)o(t)g(k)o(eyb)q(oard)f(macro)g(and)h(sa)o(v)o(e)f
-(the)315 259 y(de\014nition.)75 335 y Fn(call-last-kbd-macro)g(\(C-x)h
-(e\))315 390 y Fo(Re-execute)19 b(the)f(last)e(k)o(eyb)q(oard)i(macro)f
-(de\014ned,)i(b)o(y)e(making)g(the)h(c)o(haracters)e(in)i(the)315
-445 y(macro)c(app)q(ear)i(as)f(if)f(t)o(yp)q(ed)i(at)e(the)i(k)o(eyb)q
-(oard.)75 541 y Fd(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-625 y Fn(re-read-init-file)13 b(\(C-x)h(C-r\))315 680
+(Editing)1053 b(18)75 149 y Fd(1.4.7)30 b(Keyb)r(oard)20
+b(Macros)75 233 y Fn(start-kbd-macro)13 b(\(C-x)i(\(\))315
+287 y Fo(Begin)g(sa)o(ving)f(the)i(c)o(haracters)e(t)o(yp)q(ed)i(in)o
+(to)e(the)h(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 362
+y Fn(end-kbd-macro)e(\(C-x)i(\)\))315 416 y Fo(Stop)f(sa)o(ving)e(the)i
+(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)e(the)i(curren)o(t)g(k)o(eyb)q
+(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 471 y(de\014nition.)75
+545 y Fn(call-last-kbd-macro)g(\(C-x)h(e\))315 600 y
+Fo(Re-execute)19 b(the)f(last)e(k)o(eyb)q(oard)i(macro)f(de\014ned,)i
+(b)o(y)e(making)g(the)h(c)o(haracters)e(in)i(the)315
+655 y(macro)c(app)q(ear)i(as)f(if)f(t)o(yp)q(ed)i(at)e(the)i(k)o(eyb)q
+(oard.)75 749 y Fd(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
+832 y Fn(re-read-init-file)13 b(\(C-x)h(C-r\))315 887
y Fo(Read)e(in)e(the)h(con)o(ten)o(ts)g(of)f(the)h Fe(inputrc)j
Fo(\014le,)d(and)h(incorp)q(orate)e(an)o(y)g(bindings)h(or)g(v)m
-(ariable)315 735 y(assignmen)o(ts)j(found)i(there.)75
-811 y Fn(abort)e(\(C-g\))315 866 y Fo(Ab)q(ort)f(the)g(curren)o(t)h
+(ariable)315 942 y(assignmen)o(ts)j(found)i(there.)75
+1016 y Fn(abort)e(\(C-g\))315 1071 y Fo(Ab)q(ort)f(the)g(curren)o(t)h
(editing)e(command)h(and)h(ring)e(the)i(terminal's)d(b)q(ell)i(\(sub)s
-(ject)g(to)g(the)315 921 y(setting)h(of)h Fn(bell-style)p
-Fo(\).)75 997 y Fn(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fg(x)5 b Fn(,)15 b(...\))315 1052 y Fo(If)f(the)g(meta\014ed)g(c)o
+(ject)g(to)g(the)315 1126 y(setting)h(of)h Fn(bell-style)p
+Fo(\).)75 1200 y Fn(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
+Fg(x)5 b Fn(,)15 b(...\))315 1255 y Fo(If)f(the)g(meta\014ed)g(c)o
(haracter)f Fe(x)k Fo(is)c(lo)o(w)o(ercase,)g(run)h(the)g(command)f
-(that)h(is)f(b)q(ound)i(to)e(the)315 1107 y(corresp)q(onding)i(upp)q
-(ercase)h(c)o(haracter.)75 1183 y Fn(prefix-meta)e(\(ESC\))315
-1238 y Fo(Metafy)k(the)h(next)g(c)o(haracter)f(t)o(yp)q(ed.)30
+(that)h(is)f(b)q(ound)i(to)e(the)315 1309 y(corresp)q(onding)i(upp)q
+(ercase)h(c)o(haracter.)75 1384 y Fn(prefix-meta)e(\(ESC\))315
+1438 y Fo(Metafy)k(the)h(next)g(c)o(haracter)f(t)o(yp)q(ed.)30
b(This)19 b(is)f(for)g(k)o(eyb)q(oards)h(without)f(a)g(meta)g(k)o(ey)l
-(.)315 1293 y(T)o(yping)d(`)p Fn(ESC)f(f)p Fo(')h(is)f(equiv)m(alen)o
-(t)h(to)g(t)o(yping)f Fg(M-f)p Fo(.)75 1369 y Fn(undo)h(\(C-_)f(or)h
-(C-x)g(C-u\))315 1424 y Fo(Incremen)o(tal)g(undo,)g(separately)g(remem)
-o(b)q(ered)h(for)e(eac)o(h)h(line.)75 1500 y Fn(revert-line)f(\(M-r\))
-315 1555 y Fo(Undo)j(all)e(c)o(hanges)i(made)f(to)g(this)g(line.)24
+(.)315 1493 y(T)o(yping)d(`)p Fn(ESC)f(f)p Fo(')h(is)f(equiv)m(alen)o
+(t)h(to)g(t)o(yping)f Fg(M-f)p Fo(.)75 1567 y Fn(undo)h(\(C-_)f(or)h
+(C-x)g(C-u\))315 1622 y Fo(Incremen)o(tal)g(undo,)g(separately)g(remem)
+o(b)q(ered)h(for)e(eac)o(h)h(line.)75 1696 y Fn(revert-line)f(\(M-r\))
+315 1751 y Fo(Undo)j(all)e(c)o(hanges)i(made)f(to)g(this)g(line.)24
b(This)16 b(is)g(lik)o(e)g(executing)g(the)h Fn(undo)f
-Fo(command)315 1610 y(enough)g(times)e(to)h(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 1686 y Fn(tilde-expand)f(\(M-~\))315
-1741 y Fo(P)o(erform)g(tilde)h(expansion)g(on)g(the)g(curren)o(t)g(w)o
-(ord.)75 1817 y Fn(set-mark)f(\(C-@\))315 1872 y Fo(Set)i(the)h(mark)f
+Fo(command)315 1806 y(enough)g(times)e(to)h(get)f(bac)o(k)h(to)g(the)g
+(b)q(eginning.)75 1880 y Fn(tilde-expand)f(\(M-~\))315
+1935 y Fo(P)o(erform)g(tilde)h(expansion)g(on)g(the)g(curren)o(t)g(w)o
+(ord.)75 2009 y Fn(set-mark)f(\(C-@\))315 2064 y Fo(Set)i(the)h(mark)f
(to)f(the)i(p)q(oin)o(t.)23 b(If)17 b(a)f(n)o(umeric)g(argumen)o(t)g
-(is)f(supplied,)i(the)g(mark)e(is)h(set)315 1926 y(to)f(that)f(p)q
-(osition.)75 2003 y Fn(exchange-point-and-mark)e(\(C-x)j(C-x\))315
-2058 y Fo(Sw)o(ap)g(the)h(p)q(oin)o(t)f(with)g(the)h(mark.)k(The)c
+(is)f(supplied,)i(the)g(mark)e(is)h(set)315 2119 y(to)f(that)f(p)q
+(osition.)75 2193 y Fn(exchange-point-and-mark)e(\(C-x)j(C-x\))315
+2248 y Fo(Sw)o(ap)g(the)h(p)q(oin)o(t)f(with)g(the)h(mark.)k(The)c
(curren)o(t)f(cursor)h(p)q(osition)e(is)h(set)h(to)f(the)g(sa)o(v)o(ed)
-315 2112 y(p)q(osition,)f(and)h(the)h(old)e(cursor)h(p)q(osition)f(is)h
-(sa)o(v)o(ed)g(as)g(the)g(mark.)75 2189 y Fn(character-search)e
-(\(C-]\))315 2243 y Fo(A)f(c)o(haracter)g(is)g(read)h(and)f(p)q(oin)o
+315 2302 y(p)q(osition,)f(and)h(the)h(old)e(cursor)h(p)q(osition)f(is)h
+(sa)o(v)o(ed)g(as)g(the)g(mark.)75 2377 y Fn(character-search)e
+(\(C-]\))315 2431 y Fo(A)f(c)o(haracter)g(is)g(read)h(and)f(p)q(oin)o
(t)g(is)g(mo)o(v)o(ed)g(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g
-(c)o(haracter.)315 2298 y(A)j(negativ)o(e)g(coun)o(t)g(searc)o(hes)g
-(for)f(previous)h(o)q(ccurrences.)75 2375 y Fn
-(character-search-backward)d(\(M-C-]\))315 2429 y Fo(A)22
+(c)o(haracter.)315 2486 y(A)j(negativ)o(e)g(coun)o(t)g(searc)o(hes)g
+(for)f(previous)h(o)q(ccurrences.)75 2560 y Fn
+(character-search-backward)d(\(M-C-]\))315 2615 y Fo(A)22
b(c)o(haracter)g(is)g(read)g(and)h(p)q(oin)o(t)f(is)g(mo)o(v)o(ed)g(to)
-g(the)g(previous)g(o)q(ccurrence)i(of)e(that)315 2484
+g(the)g(previous)g(o)q(ccurrence)i(of)e(that)315 2670
y(c)o(haracter.)d(A)c(negativ)o(e)g(coun)o(t)g(searc)o(hes)g(for)f
-(subsequen)o(t)i(o)q(ccurrences.)75 2560 y Fn(insert-comment)d(\(M-#\))
-315 2615 y Fo(Without)k(a)g(n)o(umeric)h(argumen)o(t,)f(the)h(v)m(alue)
-g(of)g(the)f Fn(comment-begin)f Fo(v)m(ariable)i(is)f(in-)315
-2670 y(serted)f(at)f(the)h(b)q(eginning)g(of)f(the)h(curren)o(t)g
-(line.)21 b(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)g(supplied,)p
-eop end
+(subsequen)o(t)i(o)q(ccurrences.)p eop end
%%Page: 19 22
TeXDict begin 19 21 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1053 b(19)315 149 y(this)18 b(command)g(acts)g(as)f(a)h
-(toggle:)25 b(if)18 b(the)g(c)o(haracters)g(at)f(the)i(b)q(eginning)f
-(of)g(the)g(line)315 204 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)h(of)f
-Fn(comment-begin)p Fo(,)e(the)i(v)m(alue)h(is)f(inserted,)f(otherwise)h
-(the)315 259 y(c)o(haracters)k(in)h Fn(comment-begin)e
-Fo(are)i(deleted)h(from)e(the)h(b)q(eginning)g(of)g(the)g(line.)34
-b(In)315 314 y(either)15 b(case,)g(the)g(line)g(is)g(accepted)g(as)g
-(if)g(a)g(newline)g(had)g(b)q(een)i(t)o(yp)q(ed.)75 394
-y Fn(dump-functions)c(\(\))315 448 y Fo(Prin)o(t)f(all)g(of)h(the)g
-(functions)g(and)h(their)f(k)o(ey)g(bindings)g(to)f(the)i(Readline)f
-(output)g(stream.)315 503 y(If)j(a)g(n)o(umeric)f(argumen)o(t)g(is)h
-(supplied,)g(the)g(output)f(is)h(formatted)e(in)i(suc)o(h)g(a)g(w)o(a)o
-(y)f(that)315 558 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g
-Fe(inputrc)j Fo(\014le.)i(This)15 b(command)g(is)g(un)o(b)q(ound)h(b)o
-(y)f(default.)75 638 y Fn(dump-variables)e(\(\))315 692
-y Fo(Prin)o(t)d(all)f(of)h(the)h(settable)f(v)m(ariables)g(and)h(their)
-f(v)m(alues)h(to)f(the)h(Readline)g(output)f(stream.)315
-747 y(If)16 b(a)g(n)o(umeric)f(argumen)o(t)g(is)h(supplied,)g(the)g
+(Editing)1053 b(19)75 149 y Fn(skip-csi-sequence)13 b(\(\))315
+204 y Fo(Read)h(enough)g(c)o(haracters)f(to)g(consume)h(a)g(m)o(ulti-k)
+o(ey)e(sequence)j(suc)o(h)f(as)f(those)h(de\014ned)315
+259 y(for)k(k)o(eys)g(lik)o(e)g(Home)h(and)g(End.)30
+b(Suc)o(h)19 b(sequences)h(b)q(egin)f(with)f(a)g(Con)o(trol)f(Sequence)
+315 314 y(Indicator)h(\(CSI\),)g(usually)f(ESC-[.)29
+b(If)19 b(this)f(sequence)h(is)f(b)q(ound)h(to)f Fn("\\)p
+Fo(e[)p Fn(")p Fo(,)g(k)o(eys)g(pro-)315 369 y(ducing)e(suc)o(h)h
+(sequences)g(will)d(ha)o(v)o(e)i(no)g(e\013ect)g(unless)g(explicitly)e
+(b)q(ound)j(to)f(a)f(readline)315 423 y(command,)h(instead)f(of)h
+(inserting)f(stra)o(y)f(c)o(haracters)i(in)o(to)f(the)h(editing)f
+(bu\013er.)22 b(This)15 b(is)315 478 y(un)o(b)q(ound)h(b)o(y)g
+(default,)e(but)h(usually)g(b)q(ound)h(to)f(ESC-[.)75
+558 y Fn(insert-comment)e(\(M-#\))315 613 y Fo(Without)k(a)g(n)o
+(umeric)h(argumen)o(t,)f(the)h(v)m(alue)g(of)g(the)f
+Fn(comment-begin)f Fo(v)m(ariable)i(is)f(in-)315 667
+y(serted)f(at)f(the)h(b)q(eginning)g(of)f(the)h(curren)o(t)g(line.)21
+b(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)g(supplied,)315
+722 y(this)j(command)g(acts)g(as)f(a)h(toggle:)25 b(if)18
+b(the)g(c)o(haracters)g(at)f(the)i(b)q(eginning)f(of)g(the)g(line)315
+777 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)h(of)f Fn(comment-begin)p
+Fo(,)e(the)i(v)m(alue)h(is)f(inserted,)f(otherwise)h(the)315
+832 y(c)o(haracters)k(in)h Fn(comment-begin)e Fo(are)i(deleted)h(from)e
+(the)h(b)q(eginning)g(of)g(the)g(line.)34 b(In)315 887
+y(either)15 b(case,)g(the)g(line)g(is)g(accepted)g(as)g(if)g(a)g
+(newline)g(had)g(b)q(een)i(t)o(yp)q(ed.)75 966 y Fn(dump-functions)c
+(\(\))315 1021 y Fo(Prin)o(t)f(all)g(of)h(the)g(functions)g(and)h
+(their)f(k)o(ey)g(bindings)g(to)f(the)i(Readline)f(output)g(stream.)315
+1076 y(If)j(a)g(n)o(umeric)f(argumen)o(t)g(is)h(supplied,)g(the)g
(output)f(is)h(formatted)e(in)i(suc)o(h)g(a)g(w)o(a)o(y)f(that)315
-802 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g Fe(inputrc)j
+1131 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g Fe(inputrc)j
Fo(\014le.)i(This)15 b(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.)
-75 882 y Fn(dump-macros)f(\(\))315 936 y Fo(Prin)o(t)i(all)g(of)g(the)h
-(Readline)g(k)o(ey)g(sequences)h(b)q(ound)g(to)e(macros)g(and)h(the)g
-(strings)f(they)315 991 y(output.)26 b(If)18 b(a)f(n)o(umeric)g
-(argumen)o(t)g(is)g(supplied,)h(the)f(output)g(is)g(formatted)f(in)i
-(suc)o(h)f(a)315 1046 y(w)o(a)o(y)d(that)g(it)h(can)g(b)q(e)g(made)g
-(part)g(of)f(an)h Fe(inputrc)j Fo(\014le.)i(This)14 b(command)h(is)g
-(un)o(b)q(ound)h(b)o(y)315 1101 y(default.)75 1181 y
-Fn(emacs-editing-mode)d(\(C-e\))315 1235 y Fo(When)j(in)f
-Fn(vi)f Fo(command)i(mo)q(de,)f(this)f(causes)i(a)f(switc)o(h)f(to)h
-Fn(emacs)f Fo(editing)h(mo)q(de.)75 1315 y Fn(vi-editing-mode)e
-(\(M-C-j\))315 1370 y Fo(When)j(in)f Fn(emacs)f Fo(editing)h(mo)q(de,)g
-(this)f(causes)i(a)f(switc)o(h)f(to)h Fn(vi)f Fo(editing)h(mo)q(de.)75
-1486 y Fm(1.5)33 b(Readline)21 b(vi)i(Mo)r(de)75 1566
-y Fo(While)15 b(the)h(Readline)g(library)f(do)q(es)h(not)f(ha)o(v)o(e)g
-(a)h(full)f(set)h(of)f Fn(vi)g Fo(editing)g(functions,)h(it)f(do)q(es)h
-(con)o(tain)75 1621 y(enough)h(to)g(allo)o(w)e(simple)h(editing)h(of)f
-(the)i(line.)25 b(The)17 b(Readline)g Fn(vi)g Fo(mo)q(de)g(b)q(eha)o(v)
-o(es)g(as)g(sp)q(eci\014ed)h(in)75 1675 y(the)d Fh(posix)g
-Fo(1003.2)f(standard.)137 1743 y(In)h(order)g(to)f(switc)o(h)f(in)o
-(teractiv)o(ely)g(b)q(et)o(w)o(een)i Fn(emacs)e Fo(and)i
-Fn(vi)f Fo(editing)g(mo)q(des,)h(use)f(the)h(command)75
-1797 y Fg(M-C-j)j Fo(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)h(when)g
-(in)g Fn(vi)g Fo(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)h(in)g
-Fn(emacs)75 1852 y Fo(mo)q(de\).)h(The)15 b(Readline)h(default)f(is)f
-Fn(emacs)h Fo(mo)q(de.)137 1919 y(When)h(y)o(ou)e(en)o(ter)h(a)g(line)g
-(in)f Fn(vi)h Fo(mo)q(de,)g(y)o(ou)g(are)f(already)h(placed)g(in)g
-(`insertion')e(mo)q(de,)i(as)g(if)f(y)o(ou)75 1974 y(had)h(t)o(yp)q(ed)
-g(an)g(`)p Fn(i)p Fo('.)j(Pressing)c Fn(ESC)h Fo(switc)o(hes)f(y)o(ou)g
-(in)o(to)g(`command')g(mo)q(de,)g(where)h(y)o(ou)g(can)f(edit)h(the)75
-2029 y(text)h(of)h(the)g(line)f(with)h(the)g(standard)f
-Fn(vi)h Fo(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o(v)o(e)g(to)h(previous)f
-(history)g(lines)h(with)75 2084 y(`)p Fn(k)p Fo(')d(and)i(subsequen)o
-(t)f(lines)g(with)g(`)p Fn(j)p Fo(',)f(and)h(so)g(forth.)p
-eop end
+75 1210 y Fn(dump-variables)e(\(\))315 1265 y Fo(Prin)o(t)d(all)f(of)h
+(the)h(settable)f(v)m(ariables)g(and)h(their)f(v)m(alues)h(to)f(the)h
+(Readline)g(output)f(stream.)315 1320 y(If)16 b(a)g(n)o(umeric)f
+(argumen)o(t)g(is)h(supplied,)g(the)g(output)f(is)h(formatted)e(in)i
+(suc)o(h)g(a)g(w)o(a)o(y)f(that)315 1375 y(it)f(can)i(b)q(e)g(made)f
+(part)f(of)h(an)g Fe(inputrc)j Fo(\014le.)i(This)15 b(command)g(is)g
+(un)o(b)q(ound)h(b)o(y)f(default.)75 1455 y Fn(dump-macros)f(\(\))315
+1509 y Fo(Prin)o(t)i(all)g(of)g(the)h(Readline)g(k)o(ey)g(sequences)h
+(b)q(ound)g(to)e(macros)g(and)h(the)g(strings)f(they)315
+1564 y(output.)26 b(If)18 b(a)f(n)o(umeric)g(argumen)o(t)g(is)g
+(supplied,)h(the)f(output)g(is)g(formatted)f(in)i(suc)o(h)f(a)315
+1619 y(w)o(a)o(y)d(that)g(it)h(can)g(b)q(e)g(made)g(part)g(of)f(an)h
+Fe(inputrc)j Fo(\014le.)i(This)14 b(command)h(is)g(un)o(b)q(ound)h(b)o
+(y)315 1674 y(default.)75 1753 y Fn(emacs-editing-mode)d(\(C-e\))315
+1808 y Fo(When)j(in)f Fn(vi)f Fo(command)i(mo)q(de,)f(this)f(causes)i
+(a)f(switc)o(h)f(to)h Fn(emacs)f Fo(editing)h(mo)q(de.)75
+1888 y Fn(vi-editing-mode)e(\(M-C-j\))315 1943 y Fo(When)j(in)f
+Fn(emacs)f Fo(editing)h(mo)q(de,)g(this)f(causes)i(a)f(switc)o(h)f(to)h
+Fn(vi)f Fo(editing)h(mo)q(de.)75 2059 y Fm(1.5)33 b(Readline)21
+b(vi)i(Mo)r(de)75 2139 y Fo(While)15 b(the)h(Readline)g(library)f(do)q
+(es)h(not)f(ha)o(v)o(e)g(a)h(full)f(set)h(of)f Fn(vi)g
+Fo(editing)g(functions,)h(it)f(do)q(es)h(con)o(tain)75
+2193 y(enough)h(to)g(allo)o(w)e(simple)h(editing)h(of)f(the)i(line.)25
+b(The)17 b(Readline)g Fn(vi)g Fo(mo)q(de)g(b)q(eha)o(v)o(es)g(as)g(sp)q
+(eci\014ed)h(in)75 2248 y(the)d Fh(posix)g Fo(1003.2)f(standard.)137
+2315 y(In)h(order)g(to)f(switc)o(h)f(in)o(teractiv)o(ely)g(b)q(et)o(w)o
+(een)i Fn(emacs)e Fo(and)i Fn(vi)f Fo(editing)g(mo)q(des,)h(use)f(the)h
+(command)75 2370 y Fg(M-C-j)j Fo(\(b)q(ound)i(to)e(emacs-editing-mo)q
+(de)h(when)g(in)g Fn(vi)g Fo(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)h
+(in)g Fn(emacs)75 2425 y Fo(mo)q(de\).)h(The)15 b(Readline)h(default)f
+(is)f Fn(emacs)h Fo(mo)q(de.)137 2492 y(When)h(y)o(ou)e(en)o(ter)h(a)g
+(line)g(in)f Fn(vi)h Fo(mo)q(de,)g(y)o(ou)g(are)f(already)h(placed)g
+(in)g(`insertion')e(mo)q(de,)i(as)g(if)f(y)o(ou)75 2547
+y(had)h(t)o(yp)q(ed)g(an)g(`)p Fn(i)p Fo('.)j(Pressing)c
+Fn(ESC)h Fo(switc)o(hes)f(y)o(ou)g(in)o(to)g(`command')g(mo)q(de,)g
+(where)h(y)o(ou)g(can)f(edit)h(the)75 2602 y(text)h(of)h(the)g(line)f
+(with)h(the)g(standard)f Fn(vi)h Fo(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o
+(v)o(e)g(to)h(previous)f(history)g(lines)h(with)75 2657
+y(`)p Fn(k)p Fo(')d(and)i(subsequen)o(t)f(lines)g(with)g(`)p
+Fn(j)p Fo(',)f(and)h(so)g(forth.)p eop end
%%Page: 20 23
TeXDict begin 20 22 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l
(ree)g(Do)q(cumen)o(tation)g(License)802 b(20)75 149
diff --git a/lib/readline/doc/rluserman.toc b/lib/readline/doc/rluserman.toc
index 25838dfa..3857f5bb 100644
--- a/lib/readline/doc/rluserman.toc
+++ b/lib/readline/doc/rluserman.toc
@@ -8,7 +8,7 @@
@numsubsecentry{Searching for Commands in the History}{1.2.5}{Searching}{3}
@numsecentry{Readline Init File}{1.3}{Readline Init File}{4}
@numsubsecentry{Readline Init File Syntax}{1.3.1}{Readline Init File Syntax}{4}
-@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{9}
+@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{10}
@numsubsecentry{Sample Init File}{1.3.3}{Sample Init File}{10}
@numsecentry{Bindable Readline Commands}{1.4}{Bindable Readline Commands}{13}
@numsubsecentry{Commands For Moving}{1.4.1}{Commands For Moving}{13}
@@ -17,7 +17,7 @@
@numsubsecentry{Killing And Yanking}{1.4.4}{Commands For Killing}{16}
@numsubsecentry{Specifying Numeric Arguments}{1.4.5}{Numeric Arguments}{17}
@numsubsecentry{Letting Readline Type For You}{1.4.6}{Commands For Completion}{17}
-@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{17}
+@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{18}
@numsubsecentry{Some Miscellaneous Commands}{1.4.8}{Miscellaneous Commands}{18}
@numsecentry{Readline vi Mode}{1.5}{Readline vi Mode}{19}
@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{20}
diff --git a/lib/readline/doc/rluserman.vr b/lib/readline/doc/rluserman.vr
index aed1edaf..a3c11063 100644
--- a/lib/readline/doc/rluserman.vr
+++ b/lib/readline/doc/rluserman.vr
@@ -6,7 +6,7 @@
\entry{convert-meta}{5}{\code {convert-meta}}
\entry{disable-completion}{5}{\code {disable-completion}}
\entry{editing-mode}{5}{\code {editing-mode}}
-\entry{enable-keypad}{5}{\code {enable-keypad}}
+\entry{enable-keypad}{6}{\code {enable-keypad}}
\entry{expand-tilde}{6}{\code {expand-tilde}}
\entry{history-preserve-point}{6}{\code {history-preserve-point}}
\entry{history-size}{6}{\code {history-size}}
@@ -15,7 +15,7 @@
\entry{meta-flag}{6}{\code {meta-flag}}
\entry{isearch-terminators}{6}{\code {isearch-terminators}}
\entry{keymap}{6}{\code {keymap}}
-\entry{mark-modified-lines}{6}{\code {mark-modified-lines}}
+\entry{mark-modified-lines}{7}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{7}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{7}{\code {match-hidden-files}}
\entry{output-meta}{7}{\code {output-meta}}
@@ -23,4 +23,5 @@
\entry{revert-all-at-newline}{7}{\code {revert-all-at-newline}}
\entry{show-all-if-ambiguous}{7}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{7}{\code {show-all-if-unmodified}}
-\entry{visible-stats}{7}{\code {visible-stats}}
+\entry{skip-completed-text}{8}{\code {skip-completed-text}}
+\entry{visible-stats}{8}{\code {visible-stats}}
diff --git a/lib/readline/doc/rluserman.vrs b/lib/readline/doc/rluserman.vrs
index 97d3a203..cdd0a8f4 100644
--- a/lib/readline/doc/rluserman.vrs
+++ b/lib/readline/doc/rluserman.vrs
@@ -10,7 +10,7 @@
\entry {\code {disable-completion}}{5}
\initial {E}
\entry {\code {editing-mode}}{5}
-\entry {\code {enable-keypad}}{5}
+\entry {\code {enable-keypad}}{6}
\entry {\code {expand-tilde}}{6}
\initial {H}
\entry {\code {history-preserve-point}}{6}
@@ -22,7 +22,7 @@
\initial {K}
\entry {\code {keymap}}{6}
\initial {M}
-\entry {\code {mark-modified-lines}}{6}
+\entry {\code {mark-modified-lines}}{7}
\entry {\code {mark-symlinked-directories}}{7}
\entry {\code {match-hidden-files}}{7}
\entry {\code {meta-flag}}{6}
@@ -35,5 +35,6 @@
\initial {S}
\entry {\code {show-all-if-ambiguous}}{7}
\entry {\code {show-all-if-unmodified}}{7}
+\entry {\code {skip-completed-text}}{8}
\initial {V}
-\entry {\code {visible-stats}}{7}
+\entry {\code {visible-stats}}{8}
diff --git a/lib/readline/posixdir.h b/lib/readline/posixdir.h
index bd33694d..8b163845 100644..120000
--- a/lib/readline/posixdir.h
+++ b/lib/readline/posixdir.h
@@ -1,61 +1 @@
-/* posixdir.h -- Posix directory reading includes and defines. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Bash is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/* This file should be included instead of <dirent.h> or <sys/dir.h>. */
-
-#if !defined (_POSIXDIR_H_)
-#define _POSIXDIR_H_
-
-#if defined (HAVE_DIRENT_H)
-# include <dirent.h>
-# if defined (HAVE_STRUCT_DIRENT_D_NAMLEN)
-# define D_NAMLEN(d) ((d)->d_namlen)
-# else
-# define D_NAMLEN(d) (strlen ((d)->d_name))
-# endif /* !HAVE_STRUCT_DIRENT_D_NAMLEN */
-#else
-# if defined (HAVE_SYS_NDIR_H)
-# include <sys/ndir.h>
-# endif
-# if defined (HAVE_SYS_DIR_H)
-# include <sys/dir.h>
-# endif
-# if defined (HAVE_NDIR_H)
-# include <ndir.h>
-# endif
-# if !defined (dirent)
-# define dirent direct
-# endif /* !dirent */
-# define D_NAMLEN(d) ((d)->d_namlen)
-#endif /* !HAVE_DIRENT_H */
-
-#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
-# define d_fileno d_ino
-#endif
-
-#if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO))
-/* Posix does not require that the d_ino field be present, and some
- systems do not provide it. */
-# define REAL_DIR_ENTRY(dp) 1
-#else
-# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
-#endif /* _POSIX_SOURCE */
-
-#endif /* !_POSIXDIR_H_ */
+../../include/posixdir.h \ No newline at end of file
diff --git a/lib/readline/posixjmp.h b/lib/readline/posixjmp.h
index 49bfecf3..b4d3ee74 100644..120000
--- a/lib/readline/posixjmp.h
+++ b/lib/readline/posixjmp.h
@@ -1,40 +1 @@
-/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Bash is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _POSIXJMP_H_
-#define _POSIXJMP_H_
-
-#include <setjmp.h>
-
-/* This *must* be included *after* config.h */
-
-#if defined (HAVE_POSIX_SIGSETJMP)
-# define procenv_t sigjmp_buf
-# if !defined (__OPENNT)
-# undef setjmp
-# define setjmp(x) sigsetjmp((x), 1)
-# undef longjmp
-# define longjmp(x, n) siglongjmp((x), (n))
-# endif /* !__OPENNT */
-#else
-# define procenv_t jmp_buf
-#endif
-
-#endif /* _POSIXJMP_H_ */
+../../include/posixjmp.h \ No newline at end of file
diff --git a/lib/readline/posixselect.h b/lib/readline/posixselect.h
index da6a1ace..56a0a2c6 100644..120000
--- a/lib/readline/posixselect.h
+++ b/lib/readline/posixselect.h
@@ -1,47 +1 @@
-/* posixselect.h -- wrapper for select(2) includes and definitions */
-
-/* Copyright (C) 2009 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Bash is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _POSIXSELECT_H_
-#define _POSIXSELECT_H_
-
-#if defined (FD_SET) && !defined (HAVE_SELECT)
-# define HAVE_SELECT 1
-#endif
-
-#if defined (HAVE_SELECT)
-# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX)
-# include <sys/time.h>
-# endif
-#endif /* HAVE_SELECT */
-#if defined (HAVE_SYS_SELECT_H)
-# include <sys/select.h>
-#endif
-
-#ifndef USEC_PER_SEC
-# define USEC_PER_SEC 1000000
-#endif
-
-#define USEC_TO_TIMEVAL(us, tv) \
-do { \
- (tv).tv_sec = (us) / USEC_PER_SEC; \
- (tv).tv_usec = (us) % USEC_PER_SEC; \
-} while (0)
-
-#endif /* _POSIXSELECT_H_ */
+../../include/posixselect.h \ No newline at end of file
diff --git a/lib/readline/posixstat.h b/lib/readline/posixstat.h
index 3eb7f290..c6164b79 100644..120000
--- a/lib/readline/posixstat.h
+++ b/lib/readline/posixstat.h
@@ -1,142 +1 @@
-/* posixstat.h -- Posix stat(2) definitions for systems that
- don't have them. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Bash is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/* This file should be included instead of <sys/stat.h>.
- It relies on the local sys/stat.h to work though. */
-#if !defined (_POSIXSTAT_H_)
-#define _POSIXSTAT_H_
-
-#include <sys/stat.h>
-
-#if defined (STAT_MACROS_BROKEN)
-# undef S_ISBLK
-# undef S_ISCHR
-# undef S_ISDIR
-# undef S_ISFIFO
-# undef S_ISREG
-# undef S_ISLNK
-#endif /* STAT_MACROS_BROKEN */
-
-/* These are guaranteed to work only on isc386 */
-#if !defined (S_IFDIR) && !defined (S_ISDIR)
-# define S_IFDIR 0040000
-#endif /* !S_IFDIR && !S_ISDIR */
-#if !defined (S_IFMT)
-# define S_IFMT 0170000
-#endif /* !S_IFMT */
-
-/* Posix 1003.1 5.6.1.1 <sys/stat.h> file types */
-
-/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but
- do not provide the S_IS* macros that Posix requires. */
-
-#if defined (_S_IFMT) && !defined (S_IFMT)
-#define S_IFMT _S_IFMT
-#endif
-#if defined (_S_IFIFO) && !defined (S_IFIFO)
-#define S_IFIFO _S_IFIFO
-#endif
-#if defined (_S_IFCHR) && !defined (S_IFCHR)
-#define S_IFCHR _S_IFCHR
-#endif
-#if defined (_S_IFDIR) && !defined (S_IFDIR)
-#define S_IFDIR _S_IFDIR
-#endif
-#if defined (_S_IFBLK) && !defined (S_IFBLK)
-#define S_IFBLK _S_IFBLK
-#endif
-#if defined (_S_IFREG) && !defined (S_IFREG)
-#define S_IFREG _S_IFREG
-#endif
-#if defined (_S_IFLNK) && !defined (S_IFLNK)
-#define S_IFLNK _S_IFLNK
-#endif
-#if defined (_S_IFSOCK) && !defined (S_IFSOCK)
-#define S_IFSOCK _S_IFSOCK
-#endif
-
-/* Test for each symbol individually and define the ones necessary (some
- systems claiming Posix compatibility define some but not all). */
-
-#if defined (S_IFBLK) && !defined (S_ISBLK)
-#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */
-#endif
-
-#if defined (S_IFCHR) && !defined (S_ISCHR)
-#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */
-#endif
-
-#if defined (S_IFDIR) && !defined (S_ISDIR)
-#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */
-#endif
-
-#if defined (S_IFREG) && !defined (S_ISREG)
-#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */
-#endif
-
-#if defined (S_IFIFO) && !defined (S_ISFIFO)
-#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */
-#endif
-
-#if defined (S_IFLNK) && !defined (S_ISLNK)
-#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */
-#endif
-
-#if defined (S_IFSOCK) && !defined (S_ISSOCK)
-#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */
-#endif
-
-/*
- * POSIX 1003.1 5.6.1.2 <sys/stat.h> File Modes
- */
-
-#if !defined (S_IRWXU)
-# if !defined (S_IREAD)
-# define S_IREAD 00400
-# define S_IWRITE 00200
-# define S_IEXEC 00100
-# endif /* S_IREAD */
-
-# if !defined (S_IRUSR)
-# define S_IRUSR S_IREAD /* read, owner */
-# define S_IWUSR S_IWRITE /* write, owner */
-# define S_IXUSR S_IEXEC /* execute, owner */
-
-# define S_IRGRP (S_IREAD >> 3) /* read, group */
-# define S_IWGRP (S_IWRITE >> 3) /* write, group */
-# define S_IXGRP (S_IEXEC >> 3) /* execute, group */
-
-# define S_IROTH (S_IREAD >> 6) /* read, other */
-# define S_IWOTH (S_IWRITE >> 6) /* write, other */
-# define S_IXOTH (S_IEXEC >> 6) /* execute, other */
-# endif /* !S_IRUSR */
-
-# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
-# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
-# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
-#endif /* !S_IRWXU */
-
-/* These are non-standard, but are used in builtins.c$symbolic_umask() */
-#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH)
-#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH)
-#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
-
-#endif /* _POSIXSTAT_H_ */
+../../include/posixstat.h \ No newline at end of file
diff --git a/lib/readline/tilde.c b/lib/readline/tilde.c
index 088ff154..439ceede 100644..120000
--- a/lib/readline/tilde.c
+++ b/lib/readline/tilde.c
@@ -1,502 +1 @@
-/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
-
-/* Copyright (C) 1988-2009 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library (Readline), a library
- for reading lines of text with interactive input and history editing.
-
- Readline is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Readline is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <sys/types.h>
-#if defined (HAVE_PWD_H)
-#include <pwd.h>
-#endif
-
-#include "tilde.h"
-
-#if defined (TEST) || defined (STATIC_MALLOC)
-static void *xmalloc (), *xrealloc ();
-#else
-# include "xmalloc.h"
-#endif /* TEST || STATIC_MALLOC */
-
-#if !defined (HAVE_GETPW_DECLS)
-# if defined (HAVE_GETPWUID)
-extern struct passwd *getpwuid PARAMS((uid_t));
-# endif
-# if defined (HAVE_GETPWNAM)
-extern struct passwd *getpwnam PARAMS((const char *));
-# endif
-#endif /* !HAVE_GETPW_DECLS */
-
-#if !defined (savestring)
-#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
-#endif /* !savestring */
-
-#if !defined (NULL)
-# if defined (__STDC__)
-# define NULL ((void *) 0)
-# else
-# define NULL 0x0
-# endif /* !__STDC__ */
-#endif /* !NULL */
-
-/* If being compiled as part of bash, these will be satisfied from
- variables.o. If being compiled as part of readline, they will
- be satisfied from shell.o. */
-extern char *sh_get_home_dir PARAMS((void));
-extern char *sh_get_env_value PARAMS((const char *));
-
-/* The default value of tilde_additional_prefixes. This is set to
- whitespace preceding a tilde so that simple programs which do not
- perform any word separation get desired behaviour. */
-static const char *default_prefixes[] =
- { " ~", "\t~", (const char *)NULL };
-
-/* The default value of tilde_additional_suffixes. This is set to
- whitespace or newline so that simple programs which do not
- perform any word separation get desired behaviour. */
-static const char *default_suffixes[] =
- { " ", "\n", (const char *)NULL };
-
-/* If non-null, this contains the address of a function that the application
- wants called before trying the standard tilde expansions. The function
- is called with the text sans tilde, and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if the expansion fails. */
-tilde_hook_func_t *tilde_expansion_preexpansion_hook = (tilde_hook_func_t *)NULL;
-
-/* If non-null, this contains the address of a function to call if the
- standard meaning for expanding a tilde fails. The function is called
- with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if there is no expansion. */
-tilde_hook_func_t *tilde_expansion_failure_hook = (tilde_hook_func_t *)NULL;
-
-/* When non-null, this is a NULL terminated array of strings which
- are duplicates for a tilde prefix. Bash uses this to expand
- `=~' and `:~'. */
-char **tilde_additional_prefixes = (char **)default_prefixes;
-
-/* When non-null, this is a NULL terminated array of strings which match
- the end of a username, instead of just "/". Bash sets this to
- `:' and `=~'. */
-char **tilde_additional_suffixes = (char **)default_suffixes;
-
-static int tilde_find_prefix PARAMS((const char *, int *));
-static int tilde_find_suffix PARAMS((const char *));
-static char *isolate_tilde_prefix PARAMS((const char *, int *));
-static char *glue_prefix_and_suffix PARAMS((char *, const char *, int));
-
-/* Find the start of a tilde expansion in STRING, and return the index of
- the tilde which starts the expansion. Place the length of the text
- which identified this tilde starter in LEN, excluding the tilde itself. */
-static int
-tilde_find_prefix (string, len)
- const char *string;
- int *len;
-{
- register int i, j, string_len;
- register char **prefixes;
-
- prefixes = tilde_additional_prefixes;
-
- string_len = strlen (string);
- *len = 0;
-
- if (*string == '\0' || *string == '~')
- return (0);
-
- if (prefixes)
- {
- for (i = 0; i < string_len; i++)
- {
- for (j = 0; prefixes[j]; j++)
- {
- if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0)
- {
- *len = strlen (prefixes[j]) - 1;
- return (i + *len);
- }
- }
- }
- }
- return (string_len);
-}
-
-/* Find the end of a tilde expansion in STRING, and return the index of
- the character which ends the tilde definition. */
-static int
-tilde_find_suffix (string)
- const char *string;
-{
- register int i, j, string_len;
- register char **suffixes;
-
- suffixes = tilde_additional_suffixes;
- string_len = strlen (string);
-
- for (i = 0; i < string_len; i++)
- {
-#if defined (__MSDOS__)
- if (string[i] == '/' || string[i] == '\\' /* || !string[i] */)
-#else
- if (string[i] == '/' /* || !string[i] */)
-#endif
- break;
-
- for (j = 0; suffixes && suffixes[j]; j++)
- {
- if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0)
- return (i);
- }
- }
- return (i);
-}
-
-/* Return a new string which is the result of tilde expanding STRING. */
-char *
-tilde_expand (string)
- const char *string;
-{
- char *result;
- int result_size, result_index;
-
- result_index = result_size = 0;
- if (result = strchr (string, '~'))
- result = (char *)xmalloc (result_size = (strlen (string) + 16));
- else
- result = (char *)xmalloc (result_size = (strlen (string) + 1));
-
- /* Scan through STRING expanding tildes as we come to them. */
- while (1)
- {
- register int start, end;
- char *tilde_word, *expansion;
- int len;
-
- /* Make START point to the tilde which starts the expansion. */
- start = tilde_find_prefix (string, &len);
-
- /* Copy the skipped text into the result. */
- if ((result_index + start + 1) > result_size)
- result = (char *)xrealloc (result, 1 + (result_size += (start + 20)));
-
- strncpy (result + result_index, string, start);
- result_index += start;
-
- /* Advance STRING to the starting tilde. */
- string += start;
-
- /* Make END be the index of one after the last character of the
- username. */
- end = tilde_find_suffix (string);
-
- /* If both START and END are zero, we are all done. */
- if (!start && !end)
- break;
-
- /* Expand the entire tilde word, and copy it into RESULT. */
- tilde_word = (char *)xmalloc (1 + end);
- strncpy (tilde_word, string, end);
- tilde_word[end] = '\0';
- string += end;
-
- expansion = tilde_expand_word (tilde_word);
- xfree (tilde_word);
-
- len = strlen (expansion);
-#ifdef __CYGWIN__
- /* Fix for Cygwin to prevent ~user/xxx from expanding to //xxx when
- $HOME for `user' is /. On cygwin, // denotes a network drive. */
- if (len > 1 || *expansion != '/' || *string != '/')
-#endif
- {
- if ((result_index + len + 1) > result_size)
- result = (char *)xrealloc (result, 1 + (result_size += (len + 20)));
-
- strcpy (result + result_index, expansion);
- result_index += len;
- }
- xfree (expansion);
- }
-
- result[result_index] = '\0';
-
- return (result);
-}
-
-/* Take FNAME and return the tilde prefix we want expanded. If LENP is
- non-null, the index of the end of the prefix into FNAME is returned in
- the location it points to. */
-static char *
-isolate_tilde_prefix (fname, lenp)
- const char *fname;
- int *lenp;
-{
- char *ret;
- int i;
-
- ret = (char *)xmalloc (strlen (fname));
-#if defined (__MSDOS__)
- for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++)
-#else
- for (i = 1; fname[i] && fname[i] != '/'; i++)
-#endif
- ret[i - 1] = fname[i];
- ret[i - 1] = '\0';
- if (lenp)
- *lenp = i;
- return ret;
-}
-
-#if 0
-/* Public function to scan a string (FNAME) beginning with a tilde and find
- the portion of the string that should be passed to the tilde expansion
- function. Right now, it just calls tilde_find_suffix and allocates new
- memory, but it can be expanded to do different things later. */
-char *
-tilde_find_word (fname, flags, lenp)
- const char *fname;
- int flags, *lenp;
-{
- int x;
- char *r;
-
- x = tilde_find_suffix (fname);
- if (x == 0)
- {
- r = savestring (fname);
- if (lenp)
- *lenp = 0;
- }
- else
- {
- r = (char *)xmalloc (1 + x);
- strncpy (r, fname, x);
- r[x] = '\0';
- if (lenp)
- *lenp = x;
- }
-
- return r;
-}
-#endif
-
-/* Return a string that is PREFIX concatenated with SUFFIX starting at
- SUFFIND. */
-static char *
-glue_prefix_and_suffix (prefix, suffix, suffind)
- char *prefix;
- const char *suffix;
- int suffind;
-{
- char *ret;
- int plen, slen;
-
- plen = (prefix && *prefix) ? strlen (prefix) : 0;
- slen = strlen (suffix + suffind);
- ret = (char *)xmalloc (plen + slen + 1);
- if (plen)
- strcpy (ret, prefix);
- strcpy (ret + plen, suffix + suffind);
- return ret;
-}
-
-/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
- tilde. If there is no expansion, call tilde_expansion_failure_hook.
- This always returns a newly-allocated string, never static storage. */
-char *
-tilde_expand_word (filename)
- const char *filename;
-{
- char *dirname, *expansion, *username;
- int user_len;
- struct passwd *user_entry;
-
- if (filename == 0)
- return ((char *)NULL);
-
- if (*filename != '~')
- return (savestring (filename));
-
- /* A leading `~/' or a bare `~' is *always* translated to the value of
- $HOME or the home directory of the current user, regardless of any
- preexpansion hook. */
- if (filename[1] == '\0' || filename[1] == '/')
- {
- /* Prefix $HOME to the rest of the string. */
- expansion = sh_get_env_value ("HOME");
-
- /* If there is no HOME variable, look up the directory in
- the password database. */
- if (expansion == 0)
- expansion = sh_get_home_dir ();
-
- return (glue_prefix_and_suffix (expansion, filename, 1));
- }
-
- username = isolate_tilde_prefix (filename, &user_len);
-
- if (tilde_expansion_preexpansion_hook)
- {
- expansion = (*tilde_expansion_preexpansion_hook) (username);
- if (expansion)
- {
- dirname = glue_prefix_and_suffix (expansion, filename, user_len);
- xfree (username);
- free (expansion);
- return (dirname);
- }
- }
-
- /* No preexpansion hook, or the preexpansion hook failed. Look in the
- password database. */
- dirname = (char *)NULL;
-#if defined (HAVE_GETPWNAM)
- user_entry = getpwnam (username);
-#else
- user_entry = 0;
-#endif
- if (user_entry == 0)
- {
- /* If the calling program has a special syntax for expanding tildes,
- and we couldn't find a standard expansion, then let them try. */
- if (tilde_expansion_failure_hook)
- {
- expansion = (*tilde_expansion_failure_hook) (username);
- if (expansion)
- {
- dirname = glue_prefix_and_suffix (expansion, filename, user_len);
- free (expansion);
- }
- }
- /* If we don't have a failure hook, or if the failure hook did not
- expand the tilde, return a copy of what we were passed. */
- if (dirname == 0)
- dirname = savestring (filename);
- }
-#if defined (HAVE_GETPWENT)
- else
- dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
-#endif
-
- xfree (username);
-#if defined (HAVE_GETPWENT)
- endpwent ();
-#endif
- return (dirname);
-}
-
-
-#if defined (TEST)
-#undef NULL
-#include <stdio.h>
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *result, line[512];
- int done = 0;
-
- while (!done)
- {
- printf ("~expand: ");
- fflush (stdout);
-
- if (!gets (line))
- strcpy (line, "done");
-
- if ((strcmp (line, "done") == 0) ||
- (strcmp (line, "quit") == 0) ||
- (strcmp (line, "exit") == 0))
- {
- done = 1;
- break;
- }
-
- result = tilde_expand (line);
- printf (" --> %s\n", result);
- free (result);
- }
- exit (0);
-}
-
-static void memory_error_and_abort ();
-
-static void *
-xmalloc (bytes)
- size_t bytes;
-{
- void *temp = (char *)malloc (bytes);
-
- if (!temp)
- memory_error_and_abort ();
- return (temp);
-}
-
-static void *
-xrealloc (pointer, bytes)
- void *pointer;
- int bytes;
-{
- void *temp;
-
- if (!pointer)
- temp = malloc (bytes);
- else
- temp = realloc (pointer, bytes);
-
- if (!temp)
- memory_error_and_abort ();
-
- return (temp);
-}
-
-static void
-memory_error_and_abort ()
-{
- fprintf (stderr, "readline: out of virtual memory\n");
- abort ();
-}
-
-/*
- * Local variables:
- * compile-command: "gcc -g -DTEST -o tilde tilde.c"
- * end:
- */
-#endif /* TEST */
+../tilde/tilde.c \ No newline at end of file
diff --git a/lib/readline/tilde.h b/lib/readline/tilde.h
index e26dd047..6fea2aea 100644..120000
--- a/lib/readline/tilde.h
+++ b/lib/readline/tilde.h
@@ -1,80 +1 @@
-/* tilde.h: Externally available variables and function in libtilde.a. */
-
-/* Copyright (C) 1992-2009 Free Software Foundation, Inc.
-
- This file contains the Readline Library (Readline), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- Readline is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Readline is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#if !defined (_TILDE_H_)
-# define _TILDE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A function can be defined using prototypes and compile on both ANSI C
- and traditional C compilers with something like this:
- extern char *func PARAMS((char *, char *, int)); */
-
-#if !defined (PARAMS)
-# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-# define PARAMS(protos) protos
-# else
-# define PARAMS(protos) ()
-# endif
-#endif
-
-typedef char *tilde_hook_func_t PARAMS((char *));
-
-/* If non-null, this contains the address of a function that the application
- wants called before trying the standard tilde expansions. The function
- is called with the text sans tilde, and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if the expansion fails. */
-extern tilde_hook_func_t *tilde_expansion_preexpansion_hook;
-
-/* If non-null, this contains the address of a function to call if the
- standard meaning for expanding a tilde fails. The function is called
- with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if there is no expansion. */
-extern tilde_hook_func_t *tilde_expansion_failure_hook;
-
-/* When non-null, this is a NULL terminated array of strings which
- are duplicates for a tilde prefix. Bash uses this to expand
- `=~' and `:~'. */
-extern char **tilde_additional_prefixes;
-
-/* When non-null, this is a NULL terminated array of strings which match
- the end of a username, instead of just "/". Bash sets this to
- `:' and `=~'. */
-extern char **tilde_additional_suffixes;
-
-/* Return a new string which is the result of tilde expanding STRING. */
-extern char *tilde_expand PARAMS((const char *));
-
-/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
- tilde. If there is no expansion, call tilde_expansion_failure_hook. */
-extern char *tilde_expand_word PARAMS((const char *));
-
-/* Find the portion of the string beginning with ~ that should be expanded. */
-extern char *tilde_find_word PARAMS((const char *, int, int *));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TILDE_H_ */
+../tilde/tilde.h \ No newline at end of file
diff --git a/lib/sh/fnxform.c b/lib/sh/fnxform.c
index 499b9cb9..55281b0a 100644
--- a/lib/sh/fnxform.c
+++ b/lib/sh/fnxform.c
@@ -185,6 +185,7 @@ char *
fnx_tofs (string)
char *string;
{
+bar
return string;
}
diff --git a/parse.y b/parse.y
index c1e1068a..c322f4f8 100644
--- a/parse.y
+++ b/parse.y
@@ -118,6 +118,7 @@ extern int current_command_number;
extern int sourcelevel, parse_and_execute_level;
extern int posixly_correct;
extern int last_command_exit_value;
+extern pid_t last_command_subst_pid;
extern char *shell_name, *current_host_name;
extern char *dist_version;
extern int patch_level;
@@ -2774,7 +2775,7 @@ reset_parser ()
/* Reset to global value of extended glob */
if (parser_state & PST_EXTPAT)
{
-itrace("reset_parser: parser_state includes PST_EXTPAT");
+/*itrace("reset_parser: parser_state includes PST_EXTPAT");*/
extended_glob = global_extglob;
}
@@ -3092,7 +3093,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
char *ret, *nestret, *ttrans;
int retind, retsize, rflags;
-/*itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */
+/*itrace("parse_matched_pair[%d]: open = %c close = %c flags = %d", line_number, open, close, flags);*/
count = 1;
tflags = 0;
@@ -3301,6 +3302,7 @@ parse_dollar_word:
ret[retind] = '\0';
if (lenp)
*lenp = retind;
+/*itrace("parse_matched_pair[%d]: returning %s", line_number, ret);*/
return ret;
}
@@ -4917,7 +4919,7 @@ decode_prompt_string (string)
WORD_LIST *list;
char *result, *t;
struct dstack save_dstack;
- int last_exit_value;
+ int last_exit_value, last_comsub_pid;
#if defined (PROMPT_STRING_DECODE)
int result_size, result_index;
int c, n, i;
@@ -5265,11 +5267,13 @@ not_escape:
if (promptvars || posixly_correct)
{
last_exit_value = last_command_exit_value;
+ last_comsub_pid = last_command_subst_pid;
list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0);
free (result);
result = string_list (list);
dispose_words (list);
last_command_exit_value = last_exit_value;
+ last_command_subst_pid = last_comsub_pid;
}
else
{
@@ -5412,7 +5416,7 @@ report_syntax_error (message)
parser_error (line_number, "%s", message);
if (interactive && EOF_Reached)
EOF_Reached = 0;
- last_command_exit_value = EX_BADUSAGE;
+ last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
return;
}
@@ -5427,7 +5431,7 @@ report_syntax_error (message)
if (interactive == 0)
print_offending_line ();
- last_command_exit_value = EX_BADUSAGE;
+ last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
return;
}
@@ -5458,7 +5462,7 @@ report_syntax_error (message)
EOF_Reached = 0;
}
- last_command_exit_value = EX_BADUSAGE;
+ last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
}
/* ??? Needed function. ??? We have to be able to discard the constructs
diff --git a/parse.y~ b/parse.y~
index bc1f0796..146512b6 100644
--- a/parse.y~
+++ b/parse.y~
@@ -118,6 +118,7 @@ extern int current_command_number;
extern int sourcelevel, parse_and_execute_level;
extern int posixly_correct;
extern int last_command_exit_value;
+extern pid_t last_command_subst_pid;
extern char *shell_name, *current_host_name;
extern char *dist_version;
extern int patch_level;
@@ -2774,7 +2775,7 @@ reset_parser ()
/* Reset to global value of extended glob */
if (parser_state & PST_EXTPAT)
{
-itrace("reset_parser: parser_state includes PST_EXTPAT");
+/*itrace("reset_parser: parser_state includes PST_EXTPAT");*/
extended_glob = global_extglob;
}
@@ -3092,7 +3093,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
char *ret, *nestret, *ttrans;
int retind, retsize, rflags;
-/*itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */
+/*itrace("parse_matched_pair[%d]: open = %c close = %c flags = %d", line_number, open, close, flags);*/
count = 1;
tflags = 0;
@@ -3145,6 +3146,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
if (tflags & LEX_PASSNEXT) /* last char was backslash */
{
tflags &= ~LEX_PASSNEXT;
+
if (qc != '\'' && ch == '\n') /* double-quoted \<newline> disappears. */
{
if (retind > 0)
@@ -3301,6 +3303,7 @@ parse_dollar_word:
ret[retind] = '\0';
if (lenp)
*lenp = retind;
+/*itrace("parse_matched_pair[%d]: returning %s", line_number, ret);*/
return ret;
}
@@ -4095,17 +4098,12 @@ cond_term ()
/* rhs */
if (parser_state & PST_EXTPAT)
-{
extended_glob = 1;
-itrace("cond_node: temporarily set extended_glob to 1");
-}
tok = read_token (READ);
if (parser_state & PST_EXTPAT)
-{
-itrace("cond_node: reset extended_glob to %d", global_extglob);
extended_glob = global_extglob;
-}
parser_state &= ~(PST_REGEXP|PST_EXTPAT);
+
if (tok == WORD)
{
tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
@@ -4922,7 +4920,7 @@ decode_prompt_string (string)
WORD_LIST *list;
char *result, *t;
struct dstack save_dstack;
- int last_exit_value;
+ int last_exit_value, last_comsub_pid;
#if defined (PROMPT_STRING_DECODE)
int result_size, result_index;
int c, n, i;
@@ -5270,11 +5268,13 @@ not_escape:
if (promptvars || posixly_correct)
{
last_exit_value = last_command_exit_value;
+ last_comsub_pid = last_command_subst_pid;
list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0);
free (result);
result = string_list (list);
dispose_words (list);
last_command_exit_value = last_exit_value;
+ last_command_subst_pid = last_comsub_pid;
}
else
{
@@ -5417,7 +5417,7 @@ report_syntax_error (message)
parser_error (line_number, "%s", message);
if (interactive && EOF_Reached)
EOF_Reached = 0;
- last_command_exit_value = EX_BADUSAGE;
+ last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
return;
}
@@ -5432,7 +5432,7 @@ report_syntax_error (message)
if (interactive == 0)
print_offending_line ();
- last_command_exit_value = EX_BADUSAGE;
+ last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
return;
}
@@ -5463,7 +5463,7 @@ report_syntax_error (message)
EOF_Reached = 0;
}
- last_command_exit_value = EX_BADUSAGE;
+ last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
}
/* ??? Needed function. ??? We have to be able to discard the constructs
diff --git a/po/ga.gmo b/po/ga.gmo
index 84421881..48c7dc9d 100644
--- a/po/ga.gmo
+++ b/po/ga.gmo
Binary files differ
diff --git a/po/ga.po b/po/ga.po
index a5d432a3..28afa1dc 100644
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-09 15:06-0400\n"
+"POT-Creation-Date: 2009-10-12 10:08-0400\n"
"PO-Revision-Date: 2009-09-24 23:08+0100\n"
"Last-Translator: Séamus Ó Ciardhuáin <seoc@iolfree.ie>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -125,6 +125,21 @@ msgstr ""
" \n"
" Gan SLONN, aischuirtear "
+#: builtins/caller.def:135
+msgid ""
+". With EXPR, returns\n"
+" "
+msgstr ""
+
+#: builtins/caller.def:136
+msgid ""
+"; this extra information can be used to\n"
+" provide a stack trace.\n"
+" \n"
+" The value of EXPR indicates how many call frames to go back before the\n"
+" current one; the top frame is frame 0."
+msgstr ""
+
#: builtins/cd.def:215
msgid "HOME not set"
msgstr "Níl HOME socruithe"
@@ -828,8 +843,8 @@ msgstr "%s: athróg neamhcheangailte"
#: eval.c:181
#, c-format
-msgid "\atimed out waiting for input: auto-logout\n"
-msgstr "\aimithe thar am ag feitheamh le hionchur: logáil amach uathoibríoch\n"
+msgid "timed out waiting for input: auto-logout\n"
+msgstr "imithe thar am ag feitheamh le hionchur: logáil amach uathoibríoch\n"
#: execute_cmd.c:491
#, c-format
@@ -1772,16 +1787,16 @@ msgstr "%s: ag súil le hoibreoir dénártha."
msgid "missing `]'"
msgstr "\"]\" ar iarraidh"
-#: trap.c:202
+#: trap.c:203
msgid "invalid signal number"
msgstr "Uimhir chomhartha neamhbhailí"
-#: trap.c:326
+#: trap.c:327
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: drochluach sa liosta_gaistí[%d]: %p"
-#: trap.c:330
+#: trap.c:331
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1789,7 +1804,7 @@ msgstr ""
"run_pending_traps: is SIG_DFL an láimhseálaí comharthaí; %d (%s) á "
"athsheoladh chugam féin."
-#: trap.c:379
+#: trap.c:380
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: droch-chomhartha %d"
diff --git a/print_cmd.c~ b/print_cmd.c~
index d902a002..d24dc0aa 100644
--- a/print_cmd.c~
+++ b/print_cmd.c~
@@ -51,6 +51,7 @@ extern int printf __P((const char *, ...)); /* Yuck. Double yuck. */
#endif
extern int indirection_level;
+extern int last_command_exit_value;
static int indentation;
static int indentation_amount = 4;
@@ -988,7 +989,7 @@ print_redirection_list (redirects)
else
hdtail = heredocs = newredir;
}
- else if (redirects->instruction == r_duplicating_output_word && redirects->redirector == 1)
+ else if (redirects->instruction == r_duplicating_output_word && redirects->redirector.dest == 1)
{
/* Temporarily translate it as the execution code does. */
redirects->instruction = r_err_and_out;
@@ -1024,8 +1025,10 @@ print_heredoc_header (redirect)
kill_leading = redirect->instruction == r_deblank_reading_until;
/* Here doc header */
- if (redirect->redirector != 0)
- cprintf ("%d", redirect->redirector);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redirect->redirector.filename->word);
+ else if (redirect->redirector.dest != 0)
+ cprintf ("%d", redirect->redirector.dest);
/* If the here document delimiter is quoted, single-quote it. */
if (redirect->redirectee.filename->flags & W_QUOTED)
@@ -1051,37 +1054,61 @@ print_redirection (redirect)
REDIRECT *redirect;
{
int kill_leading, redirector, redir_fd;
- WORD_DESC *redirectee;
+ WORD_DESC *redirectee, *redir_word;
kill_leading = 0;
redirectee = redirect->redirectee.filename;
- redirector = redirect->redirector;
redir_fd = redirect->redirectee.dest;
+ redir_word = redirect->redirector.filename;
+ redirector = redirect->redirector.dest;
+
switch (redirect->instruction)
{
- case r_output_direction:
- if (redirector != 1)
+ case r_input_direction:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 0)
cprintf ("%d", redirector);
- cprintf ("> %s", redirectee->word);
+ cprintf ("< %s", redirectee->word);
break;
- case r_input_direction:
- if (redirector != 0)
+ case r_output_direction:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
cprintf ("%d", redirector);
- cprintf ("< %s", redirectee->word);
+ cprintf ("> %s", redirectee->word);
break;
case r_inputa_direction: /* Redirection created by the shell. */
cprintf ("&");
break;
+ case r_output_force:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf (">|%s", redirectee->word);
+ break;
+
case r_appending_to:
- if (redirector != 1)
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
cprintf ("%d", redirector);
cprintf (">> %s", redirectee->word);
break;
+ case r_input_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf ("<> %s", redirectee->word);
+ break;
+
case r_deblank_reading_until:
case r_reading_until:
print_heredoc_header (redirect);
@@ -1090,7 +1117,9 @@ print_redirection (redirect)
break;
case r_reading_string:
- if (redirector != 0)
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 0)
cprintf ("%d", redirector);
if (ansic_shouldquote (redirect->redirectee.filename->word))
{
@@ -1104,39 +1133,66 @@ print_redirection (redirect)
break;
case r_duplicating_input:
- cprintf ("%d<&%d", redirector, redir_fd);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%d", redir_word->word, redir_fd);
+ else
+ cprintf ("%d<&%d", redirector, redir_fd);
break;
case r_duplicating_output:
- cprintf ("%d>&%d", redirector, redir_fd);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%d", redir_word->word, redir_fd);
+ else
+ cprintf ("%d>&%d", redirector, redir_fd);
break;
case r_duplicating_input_word:
- cprintf ("%d<&%s", redirector, redirectee->word);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%s", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d<&%s", redirector, redirectee->word);
break;
case r_duplicating_output_word:
- cprintf ("%d>&%s", redirector, redirectee->word);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%s", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d>&%s", redirector, redirectee->word);
break;
case r_move_input:
- cprintf ("%d<&%d-", redirector, redir_fd);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%d-", redir_word->word, redir_fd);
+ else
+ cprintf ("%d<&%d-", redirector, redir_fd);
break;
case r_move_output:
- cprintf ("%d>&%d-", redirector, redir_fd);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%d-", redir_word->word, redir_fd);
+ else
+ cprintf ("%d>&%d-", redirector, redir_fd);
break;
case r_move_input_word:
- cprintf ("%d<&%s-", redirector, redirectee->word);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%s-", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d<&%s-", redirector, redirectee->word);
break;
case r_move_output_word:
- cprintf ("%d>&%s-", redirector, redirectee->word);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%s-", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d>&%s-", redirector, redirectee->word);
break;
case r_close_this:
- cprintf ("%d>&-", redirector);
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&-", redir_word->word);
+ else
+ cprintf ("%d>&-", redirector);
break;
case r_err_and_out:
@@ -1146,18 +1202,6 @@ print_redirection (redirect)
case r_append_err_and_out:
cprintf ("&>>%s", redirectee->word);
break;
-
- case r_input_output:
- if (redirector != 1)
- cprintf ("%d", redirector);
- cprintf ("<> %s", redirectee->word);
- break;
-
- case r_output_force:
- if (redirector != 1)
- cprintf ("%d", redirector);
- cprintf (">|%s", redirectee->word);
- break;
}
}
@@ -1339,7 +1383,7 @@ semicolon ()
{
if (command_string_index > 0 &&
(the_printed_command[command_string_index - 1] == '&' ||
- the_printed_command[command_string_index - 1] == '\n'))
+ the_printed_command[command_string_index - 1] == '\n'))
return;
cprintf (";");
}
@@ -1404,7 +1448,7 @@ cprintf (control, va_alist)
argp = intbuf;
}
else
- argp = inttostr (digit_arg, intbuf, sizeof (intbuf));
+ argp = inttostr (digit_arg, intbuf, sizeof (intbuf));
arg_len = strlen (argp);
break;
diff --git a/subst.c b/subst.c
index a59c785b..8bccf939 100644
--- a/subst.c
+++ b/subst.c
@@ -86,6 +86,7 @@ extern int errno;
/* Flags for the `pflags' argument to param_expand() */
#define PF_NOCOMSUB 0x01 /* Do not perform command substitution */
#define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */
+#define PF_NOSPLIT2 0x04 /* same as W_NOSPLIT2 */
/* These defs make it easier to use the editor. */
#define LBRACE '{'
@@ -293,7 +294,7 @@ static char *parameter_brace_patsub __P((char *, char *, char *, int));
static char *pos_params_casemod __P((char *, char *, int, int));
static char *parameter_brace_casemod __P((char *, char *, int, char *, int));
-static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int *, int *));
+static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int, int *, int *));
static WORD_DESC *param_expand __P((char *, int *, int, int *, int *, int *, int *, int));
static WORD_LIST *expand_word_internal __P((WORD_DESC *, int, int, int *, int *));
@@ -3076,6 +3077,7 @@ cond_expand_word (w, special)
if (w->word == 0 || w->word[0] == '\0')
return ((char *)NULL);
+ w->flags |= W_NOSPLIT2;
l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
if (l)
{
@@ -4503,6 +4505,7 @@ expand_word_leave_quoted (word, quoted)
if (ifs_firstc == 0)
#endif
word->flags |= W_NOSPLIT;
+ word->flags |= W_NOSPLIT2;
result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
expand_no_split_dollar_star = 0;
@@ -6604,9 +6607,9 @@ chk_arithsub (s, len)
/* ${[#][!]name[[:][^[^]][,[,]]#[#]%[%]-=?+[word][:e1[:e2]]]} */
static WORD_DESC *
-parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_dollar_at)
+parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, contains_dollar_at)
char *string;
- int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at;
+ int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at, pflags;
{
int check_nullness, var_is_set, var_is_null, var_is_special;
int want_substring, want_indir, want_patsub, want_casemod;
@@ -6846,7 +6849,7 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll
if (want_indir)
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
else
- tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND);
+ tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&PF_NOSPLIT2));
if (tdesc)
{
@@ -7280,6 +7283,11 @@ param_expand (string, sindex, quoted, expanded_something,
if (contains_dollar_at)
*contains_dollar_at = 1;
+#if 0
+ if (pflags & PF_NOSPLIT2)
+ temp = string_list_internal (quoted ? quote_list (list) : list, " ");
+ else
+#endif
/* We want to separate the positional parameters with the first
character of $IFS in case $IFS is something other than a space.
We also want to make sure that splitting is done no matter what --
@@ -7291,7 +7299,7 @@ param_expand (string, sindex, quoted, expanded_something,
break;
case LBRACE:
- tdesc = parameter_brace_expand (string, &zindex, quoted,
+ tdesc = parameter_brace_expand (string, &zindex, quoted, pflags,
quoted_dollar_at_p,
contains_dollar_at);
@@ -7569,6 +7577,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin
int had_quoted_null;
int has_dollar_at;
int tflag;
+ int pflags; /* flags passed to param_expand */
int assignoff; /* If assignment, offset of `=' */
@@ -7678,7 +7687,7 @@ add_string:
even in POSIX mode. */
if (word->flags & (W_ASSIGNRHS|W_NOTILDE))
{
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7698,7 +7707,7 @@ add_string:
string[sindex+1] == '~')
word->flags |= W_ITILDE;
#endif
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7706,7 +7715,7 @@ add_string:
case ':':
if (word->flags & W_NOTILDE)
{
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7716,7 +7725,7 @@ add_string:
string[sindex+1] == '~')
word->flags |= W_ITILDE;
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7730,7 +7739,7 @@ add_string:
(quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
{
word->flags &= ~W_ITILDE;
- if (isexp == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
goto add_ifs_character;
else
goto add_character;
@@ -7772,10 +7781,12 @@ add_string:
*expanded_something = 1;
has_dollar_at = 0;
+ pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
+ if (word->flags & W_NOSPLIT2)
+ pflags |= PF_NOSPLIT2;
tword = param_expand (string, &sindex, quoted, expanded_something,
&has_dollar_at, &quoted_dollar_at,
- &had_quoted_null,
- (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0);
+ &had_quoted_null, pflags);
if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
{
@@ -7970,6 +7981,11 @@ add_twochars:
{
if (list->next)
{
+#if 0
+ if (quoted_dollar_at && word->flags & W_NOSPLIT2)
+ temp = string_list_internal (quote_list (list), " ");
+ else
+#endif
/* Testing quoted_dollar_at makes sure that "$@" is
split correctly when $IFS does not contain a space. */
temp = quoted_dollar_at
diff --git a/subst.c.orig b/subst.c.orig
new file mode 100644
index 00000000..a4075970
--- /dev/null
+++ b/subst.c.orig
@@ -0,0 +1,9041 @@
+/* subst.c -- The part of the shell that does parameter, command, arithmetic,
+ and globbing substitutions. */
+
+/* ``Have a little faith, there's magic in the night. You ain't a
+ beauty, but, hey, you're alright.'' */
+
+/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "config.h"
+
+#include "bashtypes.h"
+#include <stdio.h>
+#include "chartypes.h"
+#if defined (HAVE_PWD_H)
+# include <pwd.h>
+#endif
+#include <signal.h>
+#include <errno.h>
+
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif
+
+#include "bashansi.h"
+#include "posixstat.h"
+#include "bashintl.h"
+
+#include "shell.h"
+#include "flags.h"
+#include "jobs.h"
+#include "execute_cmd.h"
+#include "filecntl.h"
+#include "trap.h"
+#include "pathexp.h"
+#include "mailcheck.h"
+
+#include "shmbutil.h"
+
+#include "builtins/getopt.h"
+#include "builtins/common.h"
+
+#include "builtins/builtext.h"
+
+#include <tilde/tilde.h>
+#include <glob/strmatch.h>
+
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+/* The size that strings change by. */
+#define DEFAULT_INITIAL_ARRAY_SIZE 112
+#define DEFAULT_ARRAY_SIZE 128
+
+/* Variable types. */
+#define VT_VARIABLE 0
+#define VT_POSPARMS 1
+#define VT_ARRAYVAR 2
+#define VT_ARRAYMEMBER 3
+#define VT_ASSOCVAR 4
+
+#define VT_STARSUB 128 /* $* or ${array[*]} -- used to split */
+
+/* Flags for quoted_strchr */
+#define ST_BACKSL 0x01
+#define ST_CTLESC 0x02
+#define ST_SQUOTE 0x04 /* unused yet */
+#define ST_DQUOTE 0x08 /* unused yet */
+
+/* Flags for the `pflags' argument to param_expand() */
+#define PF_NOCOMSUB 0x01 /* Do not perform command substitution */
+#define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */
+
+/* These defs make it easier to use the editor. */
+#define LBRACE '{'
+#define RBRACE '}'
+#define LPAREN '('
+#define RPAREN ')'
+
+#if defined (HANDLE_MULTIBYTE)
+#define WLPAREN L'('
+#define WRPAREN L')'
+#endif
+
+/* Evaluates to 1 if C is one of the shell's special parameters whose length
+ can be taken, but is also one of the special expansion characters. */
+#define VALID_SPECIAL_LENGTH_PARAM(c) \
+ ((c) == '-' || (c) == '?' || (c) == '#')
+
+/* Evaluates to 1 if C is one of the shell's special parameters for which an
+ indirect variable reference may be made. */
+#define VALID_INDIR_PARAM(c) \
+ ((c) == '#' || (c) == '?' || (c) == '@' || (c) == '*')
+
+/* Evaluates to 1 if C is one of the OP characters that follows the parameter
+ in ${parameter[:]OPword}. */
+#define VALID_PARAM_EXPAND_CHAR(c) (sh_syntaxtab[(unsigned char)c] & CSUBSTOP)
+
+/* Evaluates to 1 if this is one of the shell's special variables. */
+#define SPECIAL_VAR(name, wi) \
+ ((DIGIT (*name) && all_digits (name)) || \
+ (name[1] == '\0' && (sh_syntaxtab[(unsigned char)*name] & CSPECVAR)) || \
+ (wi && name[2] == '\0' && VALID_INDIR_PARAM (name[1])))
+
+/* An expansion function that takes a string and a quoted flag and returns
+ a WORD_LIST *. Used as the type of the third argument to
+ expand_string_if_necessary(). */
+typedef WORD_LIST *EXPFUNC __P((char *, int));
+
+/* Process ID of the last command executed within command substitution. */
+pid_t last_command_subst_pid = NO_PID;
+pid_t current_command_subst_pid = NO_PID;
+
+/* Variables used to keep track of the characters in IFS. */
+SHELL_VAR *ifs_var;
+char *ifs_value;
+unsigned char ifs_cmap[UCHAR_MAX + 1];
+
+#if defined (HANDLE_MULTIBYTE)
+unsigned char ifs_firstc[MB_LEN_MAX];
+size_t ifs_firstc_len;
+#else
+unsigned char ifs_firstc;
+#endif
+
+/* Sentinel to tell when we are performing variable assignments preceding a
+ command name and putting them into the environment. Used to make sure
+ we use the temporary environment when looking up variable values. */
+int assigning_in_environment;
+
+/* Used to hold a list of variable assignments preceding a command. Global
+ so the SIGCHLD handler in jobs.c can unwind-protect it when it runs a
+ SIGCHLD trap and so it can be saved and restored by the trap handlers. */
+WORD_LIST *subst_assign_varlist = (WORD_LIST *)NULL;
+
+/* Extern functions and variables from different files. */
+extern int last_command_exit_value, last_command_exit_signal;
+extern int subshell_environment;
+extern int subshell_level, parse_and_execute_level;
+extern int eof_encountered;
+extern int return_catch_flag, return_catch_value;
+extern pid_t dollar_dollar_pid;
+extern int posixly_correct;
+extern char *this_command_name;
+extern struct fd_bitmap *current_fds_to_close;
+extern int wordexp_only;
+extern int expanding_redir;
+extern int tempenv_assign_error;
+
+#if !defined (HAVE_WCSDUP) && defined (HANDLE_MULTIBYTE)
+extern wchar_t *wcsdup __P((const wchar_t *));
+#endif
+
+/* Non-zero means to allow unmatched globbed filenames to expand to
+ a null file. */
+int allow_null_glob_expansion;
+
+/* Non-zero means to throw an error when globbing fails to match anything. */
+int fail_glob_expansion;
+
+#if 0
+/* Variables to keep track of which words in an expanded word list (the
+ output of expand_word_list_internal) are the result of globbing
+ expansions. GLOB_ARGV_FLAGS is used by execute_cmd.c.
+ (CURRENTLY UNUSED). */
+char *glob_argv_flags;
+static int glob_argv_flags_size;
+#endif
+
+static WORD_LIST expand_word_error, expand_word_fatal;
+static WORD_DESC expand_wdesc_error, expand_wdesc_fatal;
+static char expand_param_error, expand_param_fatal;
+static char extract_string_error, extract_string_fatal;
+
+/* Tell the expansion functions to not longjmp back to top_level on fatal
+ errors. Enabled when doing completion and prompt string expansion. */
+static int no_longjmp_on_fatal_error = 0;
+
+/* Set by expand_word_unsplit; used to inhibit splitting and re-joining
+ $* on $IFS, primarily when doing assignment statements. */
+static int expand_no_split_dollar_star = 0;
+
+/* A WORD_LIST of words to be expanded by expand_word_list_internal,
+ without any leading variable assignments. */
+static WORD_LIST *garglist = (WORD_LIST *)NULL;
+
+static char *quoted_substring __P((char *, int, int));
+static int quoted_strlen __P((char *));
+static char *quoted_strchr __P((char *, int, int));
+
+static char *expand_string_if_necessary __P((char *, int, EXPFUNC *));
+static inline char *expand_string_to_string_internal __P((char *, int, EXPFUNC *));
+static WORD_LIST *call_expand_word_internal __P((WORD_DESC *, int, int, int *, int *));
+static WORD_LIST *expand_string_internal __P((char *, int));
+static WORD_LIST *expand_string_leave_quoted __P((char *, int));
+static WORD_LIST *expand_string_for_rhs __P((char *, int, int *, int *));
+
+static WORD_LIST *list_quote_escapes __P((WORD_LIST *));
+static char *make_quoted_char __P((int));
+static WORD_LIST *quote_list __P((WORD_LIST *));
+
+static int unquoted_substring __P((char *, char *));
+static int unquoted_member __P((int, char *));
+
+#if defined (ARRAY_VARS)
+static SHELL_VAR *do_compound_assignment __P((char *, char *, int));
+#endif
+static int do_assignment_internal __P((const WORD_DESC *, int));
+
+static char *string_extract_verbatim __P((char *, size_t, int *, char *, int));
+static char *string_extract __P((char *, int *, char *, int));
+static char *string_extract_double_quoted __P((char *, int *, int));
+static inline char *string_extract_single_quoted __P((char *, int *));
+static inline int skip_single_quoted __P((const char *, size_t, int));
+static int skip_double_quoted __P((char *, size_t, int));
+static char *extract_delimited_string __P((char *, int *, char *, char *, char *, int));
+static char *extract_dollar_brace_string __P((char *, int *, int, int));
+static int skip_matched_pair __P((const char *, int, int, int, int));
+
+static char *pos_params __P((char *, int, int, int));
+
+static unsigned char *mb_getcharlens __P((char *, int));
+
+static char *remove_upattern __P((char *, char *, int));
+#if defined (HANDLE_MULTIBYTE)
+static wchar_t *remove_wpattern __P((wchar_t *, size_t, wchar_t *, int));
+#endif
+static char *remove_pattern __P((char *, char *, int));
+
+static int match_pattern_char __P((char *, char *));
+static int match_upattern __P((char *, char *, int, char **, char **));
+#if defined (HANDLE_MULTIBYTE)
+static int match_pattern_wchar __P((wchar_t *, wchar_t *));
+static int match_wpattern __P((wchar_t *, char **, size_t, wchar_t *, int, char **, char **));
+#endif
+static int match_pattern __P((char *, char *, int, char **, char **));
+static int getpatspec __P((int, char *));
+static char *getpattern __P((char *, int, int));
+static char *variable_remove_pattern __P((char *, char *, int, int));
+static char *list_remove_pattern __P((WORD_LIST *, char *, int, int, int));
+static char *parameter_list_remove_pattern __P((int, char *, int, int));
+#ifdef ARRAY_VARS
+static char *array_remove_pattern __P((SHELL_VAR *, char *, int, char *, int));
+#endif
+static char *parameter_brace_remove_pattern __P((char *, char *, char *, int, int));
+
+static char *process_substitute __P((char *, int));
+
+static char *read_comsub __P((int, int, int *));
+
+#ifdef ARRAY_VARS
+static arrayind_t array_length_reference __P((char *));
+#endif
+
+static int valid_brace_expansion_word __P((char *, int));
+static int chk_atstar __P((char *, int, int *, int *));
+static int chk_arithsub __P((const char *, int));
+
+static WORD_DESC *parameter_brace_expand_word __P((char *, int, int, int));
+static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *));
+static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *));
+static void parameter_brace_expand_error __P((char *, char *));
+
+static int valid_length_expression __P((char *));
+static intmax_t parameter_brace_expand_length __P((char *));
+
+static char *skiparith __P((char *, int));
+static int verify_substring_values __P((SHELL_VAR *, char *, char *, int, intmax_t *, intmax_t *));
+static int get_var_and_type __P((char *, char *, int, SHELL_VAR **, char **));
+static char *mb_substring __P((char *, int, int));
+static char *parameter_brace_substring __P((char *, char *, char *, int));
+
+static char *pos_params_pat_subst __P((char *, char *, char *, int));
+
+static char *parameter_brace_patsub __P((char *, char *, char *, int));
+
+static char *pos_params_casemod __P((char *, char *, int, int));
+static char *parameter_brace_casemod __P((char *, char *, int, char *, int));
+
+static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int *, int *));
+static WORD_DESC *param_expand __P((char *, int *, int, int *, int *, int *, int *, int));
+
+static WORD_LIST *expand_word_internal __P((WORD_DESC *, int, int, int *, int *));
+
+static WORD_LIST *word_list_split __P((WORD_LIST *));
+
+static void exp_jump_to_top_level __P((int));
+
+static WORD_LIST *separate_out_assignments __P((WORD_LIST *));
+static WORD_LIST *glob_expand_word_list __P((WORD_LIST *, int));
+#ifdef BRACE_EXPANSION
+static WORD_LIST *brace_expand_word_list __P((WORD_LIST *, int));
+#endif
+#if defined (ARRAY_VARS)
+static int make_internal_declare __P((char *, char *));
+#endif
+static WORD_LIST *shell_expand_word_list __P((WORD_LIST *, int));
+static WORD_LIST *expand_word_list_internal __P((WORD_LIST *, int));
+
+/* **************************************************************** */
+/* */
+/* Utility Functions */
+/* */
+/* **************************************************************** */
+
+#if defined (DEBUG)
+void
+dump_word_flags (flags)
+ int flags;
+{
+ int f;
+
+ f = flags;
+ fprintf (stderr, "%d -> ", f);
+ if (f & W_ASSIGNASSOC)
+ {
+ f &= ~W_ASSIGNASSOC;
+ fprintf (stderr, "W_ASSIGNASSOC%s", f ? "|" : "");
+ }
+ if (f & W_HASCTLESC)
+ {
+ f &= ~W_HASCTLESC;
+ fprintf (stderr, "W_HASCTLESC%s", f ? "|" : "");
+ }
+ if (f & W_NOPROCSUB)
+ {
+ f &= ~W_NOPROCSUB;
+ fprintf (stderr, "W_NOPROCSUB%s", f ? "|" : "");
+ }
+ if (f & W_DQUOTE)
+ {
+ f &= ~W_DQUOTE;
+ fprintf (stderr, "W_DQUOTE%s", f ? "|" : "");
+ }
+ if (f & W_HASQUOTEDNULL)
+ {
+ f &= ~W_HASQUOTEDNULL;
+ fprintf (stderr, "W_HASQUOTEDNULL%s", f ? "|" : "");
+ }
+ if (f & W_ASSIGNARG)
+ {
+ f &= ~W_ASSIGNARG;
+ fprintf (stderr, "W_ASSIGNARG%s", f ? "|" : "");
+ }
+ if (f & W_ASSNBLTIN)
+ {
+ f &= ~W_ASSNBLTIN;
+ fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : "");
+ }
+ if (f & W_COMPASSIGN)
+ {
+ f &= ~W_COMPASSIGN;
+ fprintf (stderr, "W_COMPASSIGN%s", f ? "|" : "");
+ }
+ if (f & W_NOEXPAND)
+ {
+ f &= ~W_NOEXPAND;
+ fprintf (stderr, "W_NOEXPAND%s", f ? "|" : "");
+ }
+ if (f & W_ITILDE)
+ {
+ f &= ~W_ITILDE;
+ fprintf (stderr, "W_ITILDE%s", f ? "|" : "");
+ }
+ if (f & W_NOTILDE)
+ {
+ f &= ~W_NOTILDE;
+ fprintf (stderr, "W_NOTILDE%s", f ? "|" : "");
+ }
+ if (f & W_ASSIGNRHS)
+ {
+ f &= ~W_ASSIGNRHS;
+ fprintf (stderr, "W_ASSIGNRHS%s", f ? "|" : "");
+ }
+ if (f & W_NOCOMSUB)
+ {
+ f &= ~W_NOCOMSUB;
+ fprintf (stderr, "W_NOCOMSUB%s", f ? "|" : "");
+ }
+ if (f & W_DOLLARSTAR)
+ {
+ f &= ~W_DOLLARSTAR;
+ fprintf (stderr, "W_DOLLARSTAR%s", f ? "|" : "");
+ }
+ if (f & W_DOLLARAT)
+ {
+ f &= ~W_DOLLARAT;
+ fprintf (stderr, "W_DOLLARAT%s", f ? "|" : "");
+ }
+ if (f & W_TILDEEXP)
+ {
+ f &= ~W_TILDEEXP;
+ fprintf (stderr, "W_TILDEEXP%s", f ? "|" : "");
+ }
+ if (f & W_NOSPLIT2)
+ {
+ f &= ~W_NOSPLIT2;
+ fprintf (stderr, "W_NOSPLIT2%s", f ? "|" : "");
+ }
+ if (f & W_NOGLOB)
+ {
+ f &= ~W_NOGLOB;
+ fprintf (stderr, "W_NOGLOB%s", f ? "|" : "");
+ }
+ if (f & W_NOSPLIT)
+ {
+ f &= ~W_NOSPLIT;
+ fprintf (stderr, "W_NOSPLIT%s", f ? "|" : "");
+ }
+ if (f & W_GLOBEXP)
+ {
+ f &= ~W_GLOBEXP;
+ fprintf (stderr, "W_GLOBEXP%s", f ? "|" : "");
+ }
+ if (f & W_ASSIGNMENT)
+ {
+ f &= ~W_ASSIGNMENT;
+ fprintf (stderr, "W_ASSIGNMENT%s", f ? "|" : "");
+ }
+ if (f & W_QUOTED)
+ {
+ f &= ~W_QUOTED;
+ fprintf (stderr, "W_QUOTED%s", f ? "|" : "");
+ }
+ if (f & W_HASDOLLAR)
+ {
+ f &= ~W_HASDOLLAR;
+ fprintf (stderr, "W_HASDOLLAR%s", f ? "|" : "");
+ }
+ fprintf (stderr, "\n");
+ fflush (stderr);
+}
+#endif
+
+#ifdef INCLUDE_UNUSED
+static char *
+quoted_substring (string, start, end)
+ char *string;
+ int start, end;
+{
+ register int len, l;
+ register char *result, *s, *r;
+
+ len = end - start;
+
+ /* Move to string[start], skipping quoted characters. */
+ for (s = string, l = 0; *s && l < start; )
+ {
+ if (*s == CTLESC)
+ {
+ s++;
+ continue;
+ }
+ l++;
+ if (*s == 0)
+ break;
+ }
+
+ r = result = (char *)xmalloc (2*len + 1); /* save room for quotes */
+
+ /* Copy LEN characters, including quote characters. */
+ s = string + l;
+ for (l = 0; l < len; s++)
+ {
+ if (*s == CTLESC)
+ *r++ = *s++;
+ *r++ = *s;
+ l++;
+ if (*s == 0)
+ break;
+ }
+ *r = '\0';
+ return result;
+}
+#endif
+
+#ifdef INCLUDE_UNUSED
+/* Return the length of S, skipping over quoted characters */
+static int
+quoted_strlen (s)
+ char *s;
+{
+ register char *p;
+ int i;
+
+ i = 0;
+ for (p = s; *p; p++)
+ {
+ if (*p == CTLESC)
+ {
+ p++;
+ if (*p == 0)
+ return (i + 1);
+ }
+ i++;
+ }
+
+ return i;
+}
+#endif
+
+/* Find the first occurrence of character C in string S, obeying shell
+ quoting rules. If (FLAGS & ST_BACKSL) is non-zero, backslash-escaped
+ characters are skipped. If (FLAGS & ST_CTLESC) is non-zero, characters
+ escaped with CTLESC are skipped. */
+static char *
+quoted_strchr (s, c, flags)
+ char *s;
+ int c, flags;
+{
+ register char *p;
+
+ for (p = s; *p; p++)
+ {
+ if (((flags & ST_BACKSL) && *p == '\\')
+ || ((flags & ST_CTLESC) && *p == CTLESC))
+ {
+ p++;
+ if (*p == '\0')
+ return ((char *)NULL);
+ continue;
+ }
+ else if (*p == c)
+ return p;
+ }
+ return ((char *)NULL);
+}
+
+/* Return 1 if CHARACTER appears in an unquoted portion of
+ STRING. Return 0 otherwise. CHARACTER must be a single-byte character. */
+static int
+unquoted_member (character, string)
+ int character;
+ char *string;
+{
+ size_t slen;
+ int sindex, c;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+ sindex = 0;
+ while (c = string[sindex])
+ {
+ if (c == character)
+ return (1);
+
+ switch (c)
+ {
+ default:
+ ADVANCE_CHAR (string, slen, sindex);
+ break;
+
+ case '\\':
+ sindex++;
+ if (string[sindex])
+ ADVANCE_CHAR (string, slen, sindex);
+ break;
+
+ case '\'':
+ sindex = skip_single_quoted (string, slen, ++sindex);
+ break;
+
+ case '"':
+ sindex = skip_double_quoted (string, slen, ++sindex);
+ break;
+ }
+ }
+ return (0);
+}
+
+/* Return 1 if SUBSTR appears in an unquoted portion of STRING. */
+static int
+unquoted_substring (substr, string)
+ char *substr, *string;
+{
+ size_t slen;
+ int sindex, c, sublen;
+ DECLARE_MBSTATE;
+
+ if (substr == 0 || *substr == '\0')
+ return (0);
+
+ slen = strlen (string);
+ sublen = strlen (substr);
+ for (sindex = 0; c = string[sindex]; )
+ {
+ if (STREQN (string + sindex, substr, sublen))
+ return (1);
+
+ switch (c)
+ {
+ case '\\':
+ sindex++;
+
+ if (string[sindex])
+ ADVANCE_CHAR (string, slen, sindex);
+ break;
+
+ case '\'':
+ sindex = skip_single_quoted (string, slen, ++sindex);
+ break;
+
+ case '"':
+ sindex = skip_double_quoted (string, slen, ++sindex);
+ break;
+
+ default:
+ ADVANCE_CHAR (string, slen, sindex);
+ break;
+ }
+ }
+ return (0);
+}
+
+/* Most of the substitutions must be done in parallel. In order
+ to avoid using tons of unclear goto's, I have some functions
+ for manipulating malloc'ed strings. They all take INDX, a
+ pointer to an integer which is the offset into the string
+ where manipulation is taking place. They also take SIZE, a
+ pointer to an integer which is the current length of the
+ character array for this string. */
+
+/* Append SOURCE to TARGET at INDEX. SIZE is the current amount
+ of space allocated to TARGET. SOURCE can be NULL, in which
+ case nothing happens. Gets rid of SOURCE by freeing it.
+ Returns TARGET in case the location has changed. */
+INLINE char *
+sub_append_string (source, target, indx, size)
+ char *source, *target;
+ int *indx, *size;
+{
+ if (source)
+ {
+ int srclen, n;
+
+ srclen = STRLEN (source);
+ if (srclen >= (int)(*size - *indx))
+ {
+ n = srclen + *indx;
+ n = (n + DEFAULT_ARRAY_SIZE) - (n % DEFAULT_ARRAY_SIZE);
+ target = (char *)xrealloc (target, (*size = n));
+ }
+
+ FASTCOPY (source, target + *indx, srclen);
+ *indx += srclen;
+ target[*indx] = '\0';
+
+ free (source);
+ }
+ return (target);
+}
+
+#if 0
+/* UNUSED */
+/* Append the textual representation of NUMBER to TARGET.
+ INDX and SIZE are as in SUB_APPEND_STRING. */
+char *
+sub_append_number (number, target, indx, size)
+ intmax_t number;
+ int *indx, *size;
+ char *target;
+{
+ char *temp;
+
+ temp = itos (number);
+ return (sub_append_string (temp, target, indx, size));
+}
+#endif
+
+/* Extract a substring from STRING, starting at SINDEX and ending with
+ one of the characters in CHARLIST. Don't make the ending character
+ part of the string. Leave SINDEX pointing at the ending character.
+ Understand about backslashes in the string. If (flags & SX_VARNAME)
+ is non-zero, and array variables have been compiled into the shell,
+ everything between a `[' and a corresponding `]' is skipped over.
+ If (flags & SX_NOALLOC) is non-zero, don't return the substring, just
+ update SINDEX. If (flags & SX_REQMATCH) is non-zero, the string must
+ contain a closing character from CHARLIST. */
+static char *
+string_extract (string, sindex, charlist, flags)
+ char *string;
+ int *sindex;
+ char *charlist;
+ int flags;
+{
+ register int c, i;
+ int found;
+ size_t slen;
+ char *temp;
+ DECLARE_MBSTATE;
+
+ slen = (MB_CUR_MAX > 1) ? strlen (string + *sindex) + *sindex : 0;
+ i = *sindex;
+ found = 0;
+ while (c = string[i])
+ {
+ if (c == '\\')
+ {
+ if (string[i + 1])
+ i++;
+ else
+ break;
+ }
+#if defined (ARRAY_VARS)
+ else if ((flags & SX_VARNAME) && c == '[')
+ {
+ int ni;
+ /* If this is an array subscript, skip over it and continue. */
+ ni = skipsubscript (string, i, 0);
+ if (string[ni] == ']')
+ i = ni;
+ }
+#endif
+ else if (MEMBER (c, charlist))
+ {
+ found = 1;
+ break;
+ }
+
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ /* If we had to have a matching delimiter and didn't find one, return an
+ error and let the caller deal with it. */
+ if ((flags & SX_REQMATCH) && found == 0)
+ {
+ *sindex = i;
+ return (&extract_string_error);
+ }
+
+ temp = (flags & SX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i);
+ *sindex = i;
+
+ return (temp);
+}
+
+/* Extract the contents of STRING as if it is enclosed in double quotes.
+ SINDEX, when passed in, is the offset of the character immediately
+ following the opening double quote; on exit, SINDEX is left pointing after
+ the closing double quote. If STRIPDQ is non-zero, unquoted double
+ quotes are stripped and the string is terminated by a null byte.
+ Backslashes between the embedded double quotes are processed. If STRIPDQ
+ is zero, an unquoted `"' terminates the string. */
+static char *
+string_extract_double_quoted (string, sindex, stripdq)
+ char *string;
+ int *sindex, stripdq;
+{
+ size_t slen;
+ char *send;
+ int j, i, t;
+ unsigned char c;
+ char *temp, *ret; /* The new string we return. */
+ int pass_next, backquote, si; /* State variables for the machine. */
+ int dquote;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string + *sindex) + *sindex;
+ send = string + slen;
+
+ pass_next = backquote = dquote = 0;
+ temp = (char *)xmalloc (1 + slen - *sindex);
+
+ j = 0;
+ i = *sindex;
+ while (c = string[i])
+ {
+ /* Process a character that was quoted by a backslash. */
+ if (pass_next)
+ {
+ /* Posix.2 sez:
+
+ ``The backslash shall retain its special meaning as an escape
+ character only when followed by one of the characters:
+ $ ` " \ <newline>''.
+
+ If STRIPDQ is zero, we handle the double quotes here and let
+ expand_word_internal handle the rest. If STRIPDQ is non-zero,
+ we have already been through one round of backslash stripping,
+ and want to strip these backslashes only if DQUOTE is non-zero,
+ indicating that we are inside an embedded double-quoted string. */
+
+ /* If we are in an embedded quoted string, then don't strip
+ backslashes before characters for which the backslash
+ retains its special meaning, but remove backslashes in
+ front of other characters. If we are not in an
+ embedded quoted string, don't strip backslashes at all.
+ This mess is necessary because the string was already
+ surrounded by double quotes (and sh has some really weird
+ quoting rules).
+ The returned string will be run through expansion as if
+ it were double-quoted. */
+ if ((stripdq == 0 && c != '"') ||
+ (stripdq && ((dquote && (sh_syntaxtab[c] & CBSDQUOTE)) || dquote == 0)))
+ temp[j++] = '\\';
+ pass_next = 0;
+
+add_one_character:
+ COPY_CHAR_I (temp, j, string, send, i);
+ continue;
+ }
+
+ /* A backslash protects the next character. The code just above
+ handles preserving the backslash in front of any character but
+ a double quote. */
+ if (c == '\\')
+ {
+ pass_next++;
+ i++;
+ continue;
+ }
+
+ /* Inside backquotes, ``the portion of the quoted string from the
+ initial backquote and the characters up to the next backquote
+ that is not preceded by a backslash, having escape characters
+ removed, defines that command''. */
+ if (backquote)
+ {
+ if (c == '`')
+ backquote = 0;
+ temp[j++] = c;
+ i++;
+ continue;
+ }
+
+ if (c == '`')
+ {
+ temp[j++] = c;
+ backquote++;
+ i++;
+ continue;
+ }
+
+ /* Pass everything between `$(' and the matching `)' or a quoted
+ ${ ... } pair through according to the Posix.2 specification. */
+ if (c == '$' && ((string[i + 1] == LPAREN) || (string[i + 1] == LBRACE)))
+ {
+ int free_ret = 1;
+
+ si = i + 2;
+ if (string[i + 1] == LPAREN)
+ ret = extract_command_subst (string, &si, 0);
+ else
+ ret = extract_dollar_brace_string (string, &si, 1, 0);
+
+ temp[j++] = '$';
+ temp[j++] = string[i + 1];
+
+ /* Just paranoia; ret will not be 0 unless no_longjmp_on_fatal_error
+ is set. */
+ if (ret == 0 && no_longjmp_on_fatal_error)
+ {
+ free_ret = 0;
+ ret = string + i + 2;
+ }
+
+ for (t = 0; ret[t]; t++, j++)
+ temp[j] = ret[t];
+ temp[j] = string[si];
+
+ if (string[si])
+ {
+ j++;
+ i = si + 1;
+ }
+ else
+ i = si;
+
+ if (free_ret)
+ free (ret);
+ continue;
+ }
+
+ /* Add any character but a double quote to the quoted string we're
+ accumulating. */
+ if (c != '"')
+ goto add_one_character;
+
+ /* c == '"' */
+ if (stripdq)
+ {
+ dquote ^= 1;
+ i++;
+ continue;
+ }
+
+ break;
+ }
+ temp[j] = '\0';
+
+ /* Point to after the closing quote. */
+ if (c)
+ i++;
+ *sindex = i;
+
+ return (temp);
+}
+
+/* This should really be another option to string_extract_double_quoted. */
+static int
+skip_double_quoted (string, slen, sind)
+ char *string;
+ size_t slen;
+ int sind;
+{
+ int c, i;
+ char *ret;
+ int pass_next, backquote, si;
+ DECLARE_MBSTATE;
+
+ pass_next = backquote = 0;
+ i = sind;
+ while (c = string[i])
+ {
+ if (pass_next)
+ {
+ pass_next = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (c == '\\')
+ {
+ pass_next++;
+ i++;
+ continue;
+ }
+ else if (backquote)
+ {
+ if (c == '`')
+ backquote = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (c == '`')
+ {
+ backquote++;
+ i++;
+ continue;
+ }
+ else if (c == '$' && ((string[i + 1] == LPAREN) || (string[i + 1] == LBRACE)))
+ {
+ si = i + 2;
+ if (string[i + 1] == LPAREN)
+ ret = extract_command_subst (string, &si, SX_NOALLOC);
+ else
+ ret = extract_dollar_brace_string (string, &si, 1, SX_NOALLOC);
+
+ i = si + 1;
+ continue;
+ }
+ else if (c != '"')
+ {
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else
+ break;
+ }
+
+ if (c)
+ i++;
+
+ return (i);
+}
+
+/* Extract the contents of STRING as if it is enclosed in single quotes.
+ SINDEX, when passed in, is the offset of the character immediately
+ following the opening single quote; on exit, SINDEX is left pointing after
+ the closing single quote. */
+static inline char *
+string_extract_single_quoted (string, sindex)
+ char *string;
+ int *sindex;
+{
+ register int i;
+ size_t slen;
+ char *t;
+ DECLARE_MBSTATE;
+
+ /* Don't need slen for ADVANCE_CHAR unless multibyte chars possible. */
+ slen = (MB_CUR_MAX > 1) ? strlen (string + *sindex) + *sindex : 0;
+ i = *sindex;
+ while (string[i] && string[i] != '\'')
+ ADVANCE_CHAR (string, slen, i);
+
+ t = substring (string, *sindex, i);
+
+ if (string[i])
+ i++;
+ *sindex = i;
+
+ return (t);
+}
+
+static inline int
+skip_single_quoted (string, slen, sind)
+ const char *string;
+ size_t slen;
+ int sind;
+{
+ register int c;
+ DECLARE_MBSTATE;
+
+ c = sind;
+ while (string[c] && string[c] != '\'')
+ ADVANCE_CHAR (string, slen, c);
+
+ if (string[c])
+ c++;
+ return c;
+}
+
+/* Just like string_extract, but doesn't hack backslashes or any of
+ that other stuff. Obeys CTLESC quoting. Used to do splitting on $IFS. */
+static char *
+string_extract_verbatim (string, slen, sindex, charlist, flags)
+ char *string;
+ size_t slen;
+ int *sindex;
+ char *charlist;
+ int flags;
+{
+ register int i;
+#if defined (HANDLE_MULTIBYTE)
+ size_t clen;
+ wchar_t *wcharlist;
+#endif
+ int c;
+ char *temp;
+ DECLARE_MBSTATE;
+
+ if (charlist[0] == '\'' && charlist[1] == '\0')
+ {
+ temp = string_extract_single_quoted (string, sindex);
+ --*sindex; /* leave *sindex at separator character */
+ return temp;
+ }
+
+ i = *sindex;
+#if 0
+ /* See how the MBLEN and ADVANCE_CHAR macros work to understand why we need
+ this only if MB_CUR_MAX > 1. */
+ slen = (MB_CUR_MAX > 1) ? strlen (string + *sindex) + *sindex : 1;
+#endif
+#if defined (HANDLE_MULTIBYTE)
+ clen = strlen (charlist);
+ wcharlist = 0;
+#endif
+ while (c = string[i])
+ {
+#if defined (HANDLE_MULTIBYTE)
+ size_t mblength;
+#endif
+ if ((flags & SX_NOCTLESC) == 0 && c == CTLESC)
+ {
+ i += 2;
+ continue;
+ }
+ /* Even if flags contains SX_NOCTLESC, we let CTLESC quoting CTLNUL
+ through, to protect the CTLNULs from later calls to
+ remove_quoted_nulls. */
+ else if ((flags & SX_NOESCCTLNUL) == 0 && c == CTLESC && string[i+1] == CTLNUL)
+ {
+ i += 2;
+ continue;
+ }
+
+#if defined (HANDLE_MULTIBYTE)
+ mblength = MBLEN (string + i, slen - i);
+ if (mblength > 1)
+ {
+ wchar_t wc;
+ mblength = mbtowc (&wc, string + i, slen - i);
+ if (MB_INVALIDCH (mblength))
+ {
+ if (MEMBER (c, charlist))
+ break;
+ }
+ else
+ {
+ if (wcharlist == 0)
+ {
+ size_t len;
+ len = mbstowcs (wcharlist, charlist, 0);
+ if (len == -1)
+ len = 0;
+ wcharlist = (wchar_t *)xmalloc (sizeof (wchar_t) * (len + 1));
+ mbstowcs (wcharlist, charlist, len + 1);
+ }
+
+ if (wcschr (wcharlist, wc))
+ break;
+ }
+ }
+ else
+#endif
+ if (MEMBER (c, charlist))
+ break;
+
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+#if defined (HANDLE_MULTIBYTE)
+ FREE (wcharlist);
+#endif
+
+ temp = substring (string, *sindex, i);
+ *sindex = i;
+
+ return (temp);
+}
+
+/* Extract the $( construct in STRING, and return a new string.
+ Start extracting at (SINDEX) as if we had just seen "$(".
+ Make (SINDEX) get the position of the matching ")". )
+ XFLAGS is additional flags to pass to other extraction functions, */
+char *
+extract_command_subst (string, sindex, xflags)
+ char *string;
+ int *sindex;
+ int xflags;
+{
+ if (string[*sindex] == LPAREN)
+ return (extract_delimited_string (string, sindex, "$(", "(", ")", xflags|SX_COMMAND)); /*)*/
+ else
+ {
+ xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0);
+ return (xparse_dolparen (string, string+*sindex, sindex, xflags));
+ }
+}
+
+/* Extract the $[ construct in STRING, and return a new string. (])
+ Start extracting at (SINDEX) as if we had just seen "$[".
+ Make (SINDEX) get the position of the matching "]". */
+char *
+extract_arithmetic_subst (string, sindex)
+ char *string;
+ int *sindex;
+{
+ return (extract_delimited_string (string, sindex, "$[", "[", "]", 0)); /*]*/
+}
+
+#if defined (PROCESS_SUBSTITUTION)
+/* Extract the <( or >( construct in STRING, and return a new string.
+ Start extracting at (SINDEX) as if we had just seen "<(".
+ Make (SINDEX) get the position of the matching ")". */ /*))*/
+char *
+extract_process_subst (string, starter, sindex)
+ char *string;
+ char *starter;
+ int *sindex;
+{
+ return (extract_delimited_string (string, sindex, starter, "(", ")", 0));
+}
+#endif /* PROCESS_SUBSTITUTION */
+
+#if defined (ARRAY_VARS)
+/* This can be fooled by unquoted right parens in the passed string. If
+ each caller verifies that the last character in STRING is a right paren,
+ we don't even need to call extract_delimited_string. */
+char *
+extract_array_assignment_list (string, sindex)
+ char *string;
+ int *sindex;
+{
+ int slen;
+ char *ret;
+
+ slen = strlen (string); /* ( */
+ if (string[slen - 1] == ')')
+ {
+ ret = substring (string, *sindex, slen - 1);
+ *sindex = slen - 1;
+ return ret;
+ }
+ return 0;
+}
+#endif
+
+/* Extract and create a new string from the contents of STRING, a
+ character string delimited with OPENER and CLOSER. SINDEX is
+ the address of an int describing the current offset in STRING;
+ it should point to just after the first OPENER found. On exit,
+ SINDEX gets the position of the last character of the matching CLOSER.
+ If OPENER is more than a single character, ALT_OPENER, if non-null,
+ contains a character string that can also match CLOSER and thus
+ needs to be skipped. */
+static char *
+extract_delimited_string (string, sindex, opener, alt_opener, closer, flags)
+ char *string;
+ int *sindex;
+ char *opener, *alt_opener, *closer;
+ int flags;
+{
+ int i, c, si;
+ size_t slen;
+ char *t, *result;
+ int pass_character, nesting_level, in_comment;
+ int len_closer, len_opener, len_alt_opener;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string + *sindex) + *sindex;
+ len_opener = STRLEN (opener);
+ len_alt_opener = STRLEN (alt_opener);
+ len_closer = STRLEN (closer);
+
+ pass_character = in_comment = 0;
+
+ nesting_level = 1;
+ i = *sindex;
+
+ while (nesting_level)
+ {
+ c = string[i];
+
+ if (c == 0)
+ break;
+
+ if (in_comment)
+ {
+ if (c == '\n')
+ in_comment = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+
+ if (pass_character) /* previous char was backslash */
+ {
+ pass_character = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+
+ /* Not exactly right yet; should handle shell metacharacters and
+ multibyte characters, too. See COMMENT_BEGIN define in parse.y */
+ if ((flags & SX_COMMAND) && c == '#' && (i == 0 || string[i - 1] == '\n' || shellblank (string[i - 1])))
+ {
+ in_comment = 1;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+
+ if (c == CTLESC || c == '\\')
+ {
+ pass_character++;
+ i++;
+ continue;
+ }
+
+ /* Process a nested OPENER. */
+ if (STREQN (string + i, opener, len_opener))
+ {
+ si = i + len_opener;
+ t = extract_delimited_string (string, &si, opener, alt_opener, closer, flags|SX_NOALLOC);
+ i = si + 1;
+ continue;
+ }
+
+ /* Process a nested ALT_OPENER */
+ if (len_alt_opener && STREQN (string + i, alt_opener, len_alt_opener))
+ {
+ si = i + len_alt_opener;
+ t = extract_delimited_string (string, &si, alt_opener, alt_opener, closer, flags|SX_NOALLOC);
+ i = si + 1;
+ continue;
+ }
+
+ /* If the current substring terminates the delimited string, decrement
+ the nesting level. */
+ if (STREQN (string + i, closer, len_closer))
+ {
+ i += len_closer - 1; /* move to last byte of the closer */
+ nesting_level--;
+ if (nesting_level == 0)
+ break;
+ }
+
+ /* Pass old-style command substitution through verbatim. */
+ if (c == '`')
+ {
+ si = i + 1;
+ t = string_extract (string, &si, "`", flags|SX_NOALLOC);
+ i = si + 1;
+ continue;
+ }
+
+ /* Pass single-quoted and double-quoted strings through verbatim. */
+ if (c == '\'' || c == '"')
+ {
+ si = i + 1;
+ i = (c == '\'') ? skip_single_quoted (string, slen, si)
+ : skip_double_quoted (string, slen, si);
+ continue;
+ }
+
+ /* move past this character, which was not special. */
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ if (c == 0 && nesting_level)
+ {
+ if (no_longjmp_on_fatal_error == 0)
+ {
+ report_error (_("bad substitution: no closing `%s' in %s"), closer, string);
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level (DISCARD);
+ }
+ else
+ {
+ *sindex = i;
+ return (char *)NULL;
+ }
+ }
+
+ si = i - *sindex - len_closer + 1;
+ if (flags & SX_NOALLOC)
+ result = (char *)NULL;
+ else
+ {
+ result = (char *)xmalloc (1 + si);
+ strncpy (result, string + *sindex, si);
+ result[si] = '\0';
+ }
+ *sindex = i;
+
+ return (result);
+}
+
+/* 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.
+ SINDEX is the address of an int describing the current offset in STRING;
+ it should point to just after the first `{' found. On exit, SINDEX
+ gets the position of the matching `}'. QUOTED is non-zero if this
+ occurs inside double quotes. */
+/* XXX -- this is very similar to extract_delimited_string -- XXX */
+static char *
+extract_dollar_brace_string (string, sindex, quoted, flags)
+ char *string;
+ int *sindex, quoted, flags;
+{
+ register int i, c;
+ size_t slen;
+ int pass_character, nesting_level, si;
+ char *result, *t;
+ DECLARE_MBSTATE;
+
+ pass_character = 0;
+ nesting_level = 1;
+ slen = strlen (string + *sindex) + *sindex;
+
+ i = *sindex;
+ while (c = string[i])
+ {
+ if (pass_character)
+ {
+ pass_character = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+
+ /* CTLESCs and backslashes quote the next character. */
+ if (c == CTLESC || c == '\\')
+ {
+ pass_character++;
+ i++;
+ continue;
+ }
+
+ if (string[i] == '$' && string[i+1] == LBRACE)
+ {
+ nesting_level++;
+ i += 2;
+ continue;
+ }
+
+ if (c == RBRACE)
+ {
+ nesting_level--;
+ if (nesting_level == 0)
+ break;
+ i++;
+ continue;
+ }
+
+ /* Pass the contents of old-style command substitutions through
+ verbatim. */
+ if (c == '`')
+ {
+ si = i + 1;
+ t = string_extract (string, &si, "`", flags|SX_NOALLOC);
+ i = si + 1;
+ continue;
+ }
+
+ /* Pass the contents of new-style command substitutions and
+ arithmetic substitutions through verbatim. */
+ if (string[i] == '$' && string[i+1] == LPAREN)
+ {
+ si = i + 2;
+ t = extract_command_subst (string, &si, flags|SX_NOALLOC);
+ i = si + 1;
+ continue;
+ }
+
+ /* Pass the contents of single-quoted and double-quoted strings
+ through verbatim. */
+ if (c == '\'' || c == '"')
+ {
+ si = i + 1;
+ i = (c == '\'') ? skip_single_quoted (string, slen, si)
+ : skip_double_quoted (string, slen, si);
+ /* skip_XXX_quoted leaves index one past close quote */
+ continue;
+ }
+
+ /* move past this character, which was not special. */
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ if (c == 0 && nesting_level)
+ {
+ if (no_longjmp_on_fatal_error == 0)
+ { /* { */
+ report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level (DISCARD);
+ }
+ else
+ {
+ *sindex = i;
+ return ((char *)NULL);
+ }
+ }
+
+ result = (flags & SX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i);
+ *sindex = i;
+
+ return (result);
+}
+
+/* Remove backslashes which are quoting backquotes from STRING. Modifies
+ STRING, and returns a pointer to it. */
+char *
+de_backslash (string)
+ char *string;
+{
+ register size_t slen;
+ register int i, j, prev_i;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+ i = j = 0;
+
+ /* Loop copying string[i] to string[j], i >= j. */
+ while (i < slen)
+ {
+ if (string[i] == '\\' && (string[i + 1] == '`' || string[i + 1] == '\\' ||
+ string[i + 1] == '$'))
+ i++;
+ prev_i = i;
+ ADVANCE_CHAR (string, slen, i);
+ if (j < prev_i)
+ do string[j++] = string[prev_i++]; while (prev_i < i);
+ else
+ j = i;
+ }
+ string[j] = '\0';
+
+ return (string);
+}
+
+#if 0
+/*UNUSED*/
+/* Replace instances of \! in a string with !. */
+void
+unquote_bang (string)
+ char *string;
+{
+ register int i, j;
+ register char *temp;
+
+ temp = (char *)xmalloc (1 + strlen (string));
+
+ for (i = 0, j = 0; (temp[j] = string[i]); i++, j++)
+ {
+ if (string[i] == '\\' && string[i + 1] == '!')
+ {
+ temp[j] = '!';
+ i++;
+ }
+ }
+ strcpy (string, temp);
+ free (temp);
+}
+#endif
+
+#define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0)
+
+/* This function assumes s[i] == open; returns with s[ret] == close; used to
+ parse array subscripts. FLAGS & 1 means to not attempt to skip over
+ matched pairs of quotes or backquotes, or skip word expansions; it is
+ intended to be used after expansion has been performed and during final
+ assignment parsing (see arrayfunc.c:assign_compound_array_list()). */
+static int
+skip_matched_pair (string, start, open, close, flags)
+ const char *string;
+ int start, open, close, flags;
+{
+ int i, pass_next, backq, si, c, count;
+ size_t slen;
+ char *temp, *ss;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string + start) + start;
+ no_longjmp_on_fatal_error = 1;
+
+ i = start + 1; /* skip over leading bracket */
+ count = 1;
+ pass_next = backq = 0;
+ ss = (char *)string;
+ while (c = string[i])
+ {
+ if (pass_next)
+ {
+ pass_next = 0;
+ if (c == 0)
+ CQ_RETURN(i);
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (c == '\\')
+ {
+ pass_next = 1;
+ i++;
+ continue;
+ }
+ else if (backq)
+ {
+ if (c == '`')
+ backq = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if ((flags & 1) == 0 && c == '`')
+ {
+ backq = 1;
+ i++;
+ continue;
+ }
+ else if ((flags & 1) == 0 && c == open)
+ {
+ count++;
+ i++;
+ continue;
+ }
+ else if (c == close)
+ {
+ count--;
+ if (count == 0)
+ break;
+ i++;
+ continue;
+ }
+ else if ((flags & 1) == 0 && (c == '\'' || c == '"'))
+ {
+ i = (c == '\'') ? skip_single_quoted (ss, slen, ++i)
+ : skip_double_quoted (ss, slen, ++i);
+ /* no increment, the skip functions increment past the closing quote. */
+ }
+ else if ((flags&1) == 0 && c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE))
+ {
+ si = i + 2;
+ if (string[si] == '\0')
+ CQ_RETURN(si);
+
+ if (string[i+1] == LPAREN)
+ temp = extract_delimited_string (ss, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */
+ else
+ temp = extract_dollar_brace_string (ss, &si, 0, SX_NOALLOC);
+ i = si;
+ if (string[i] == '\0') /* don't increment i past EOS in loop */
+ break;
+ i++;
+ continue;
+ }
+ else
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ CQ_RETURN(i);
+}
+
+#if defined (ARRAY_VARS)
+int
+skipsubscript (string, start, flags)
+ const char *string;
+ int start, flags;
+{
+ return (skip_matched_pair (string, start, '[', ']', flags));
+}
+#endif
+
+/* Skip characters in STRING until we find a character in DELIMS, and return
+ the index of that character. START is the index into string at which we
+ begin. This is similar in spirit to strpbrk, but it returns an index into
+ STRING and takes a starting index. This little piece of code knows quite
+ a lot of shell syntax. It's very similar to skip_double_quoted and other
+ functions of that ilk. */
+int
+skip_to_delim (string, start, delims, flags)
+ char *string;
+ int start;
+ char *delims;
+ int flags;
+{
+ int i, pass_next, backq, si, c, invert, skipquote, skipcmd;
+ size_t slen;
+ char *temp;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string + start) + start;
+ if (flags & SD_NOJMP)
+ no_longjmp_on_fatal_error = 1;
+ invert = (flags & SD_INVERT);
+ skipcmd = (flags & SD_NOSKIPCMD) == 0;
+
+ i = start;
+ pass_next = backq = 0;
+ while (c = string[i])
+ {
+ /* If this is non-zero, we should not let quote characters be delimiters
+ and the current character is a single or double quote. We should not
+ test whether or not it's a delimiter until after we skip single- or
+ double-quoted strings. */
+ skipquote = ((flags & SD_NOQUOTEDELIM) && (c == '\'' || c =='"'));
+ if (pass_next)
+ {
+ pass_next = 0;
+ if (c == 0)
+ CQ_RETURN(i);
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (c == '\\')
+ {
+ pass_next = 1;
+ i++;
+ continue;
+ }
+ else if (backq)
+ {
+ if (c == '`')
+ backq = 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (c == '`')
+ {
+ backq = 1;
+ i++;
+ continue;
+ }
+ else if (skipquote == 0 && invert == 0 && member (c, delims))
+ break;
+ else if (c == '\'' || c == '"')
+ {
+ i = (c == '\'') ? skip_single_quoted (string, slen, ++i)
+ : skip_double_quoted (string, slen, ++i);
+ /* no increment, the skip functions increment past the closing quote. */
+ }
+ else if (c == '$' && ((skipcmd && string[i+1] == LPAREN) || string[i+1] == LBRACE))
+ {
+ si = i + 2;
+ if (string[si] == '\0')
+ CQ_RETURN(si);
+
+ if (string[i+1] == LPAREN)
+ temp = extract_delimited_string (string, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */
+ else
+ temp = extract_dollar_brace_string (string, &si, 0, SX_NOALLOC);
+ i = si;
+ if (string[i] == '\0') /* don't increment i past EOS in loop */
+ break;
+ i++;
+ continue;
+ }
+#if defined (PROCESS_SUBSTITUTION)
+ else if (skipcmd && (c == '<' || c == '>') && string[i+1] == LPAREN)
+ {
+ si = i + 2;
+ if (string[si] == '\0')
+ CQ_RETURN(si);
+ temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si);
+ i = si;
+ if (string[i] == '\0')
+ break;
+ i++;
+ continue;
+ }
+#endif /* PROCESS_SUBSTITUTION */
+ else if ((skipquote || invert) && (member (c, delims) == 0))
+ break;
+ else
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ CQ_RETURN(i);
+}
+
+#if defined (READLINE)
+/* Return 1 if the portion of STRING ending at EINDEX is quoted (there is
+ an unclosed quoted string), or if the character at EINDEX is quoted
+ by a backslash. NO_LONGJMP_ON_FATAL_ERROR is used to flag that the various
+ single and double-quoted string parsing functions should not return an
+ error if there are unclosed quotes or braces. The characters that this
+ recognizes need to be the same as the contents of
+ rl_completer_quote_characters. */
+
+int
+char_is_quoted (string, eindex)
+ char *string;
+ int eindex;
+{
+ int i, pass_next, c;
+ size_t slen;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+ no_longjmp_on_fatal_error = 1;
+ i = pass_next = 0;
+ while (i <= eindex)
+ {
+ c = string[i];
+
+ if (pass_next)
+ {
+ pass_next = 0;
+ if (i >= eindex) /* XXX was if (i >= eindex - 1) */
+ CQ_RETURN(1);
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (c == '\\')
+ {
+ pass_next = 1;
+ i++;
+ continue;
+ }
+ else if (c == '\'' || c == '"')
+ {
+ i = (c == '\'') ? skip_single_quoted (string, slen, ++i)
+ : skip_double_quoted (string, slen, ++i);
+ if (i > eindex)
+ CQ_RETURN(1);
+ /* no increment, the skip_xxx functions go one past end */
+ }
+ else
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ CQ_RETURN(0);
+}
+
+int
+unclosed_pair (string, eindex, openstr)
+ char *string;
+ int eindex;
+ char *openstr;
+{
+ int i, pass_next, openc, olen;
+ size_t slen;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+ olen = strlen (openstr);
+ i = pass_next = openc = 0;
+ while (i <= eindex)
+ {
+ if (pass_next)
+ {
+ pass_next = 0;
+ if (i >= eindex) /* XXX was if (i >= eindex - 1) */
+ return 0;
+ ADVANCE_CHAR (string, slen, i);
+ continue;
+ }
+ else if (string[i] == '\\')
+ {
+ pass_next = 1;
+ i++;
+ continue;
+ }
+ else if (STREQN (string + i, openstr, olen))
+ {
+ openc = 1 - openc;
+ i += olen;
+ }
+ else if (string[i] == '\'' || string[i] == '"')
+ {
+ i = (string[i] == '\'') ? skip_single_quoted (string, slen, i)
+ : skip_double_quoted (string, slen, i);
+ if (i > eindex)
+ return 0;
+ }
+ else
+ ADVANCE_CHAR (string, slen, i);
+ }
+ return (openc);
+}
+
+/* Split STRING (length SLEN) at DELIMS, and return a WORD_LIST with the
+ individual words. If DELIMS is NULL, the current value of $IFS is used
+ to split the string, and the function follows the shell field splitting
+ rules. SENTINEL is an index to look for. NWP, if non-NULL,
+ gets the number of words in the returned list. CWP, if non-NULL, gets
+ the index of the word containing SENTINEL. Non-whitespace chars in
+ DELIMS delimit separate fields. */
+WORD_LIST *
+split_at_delims (string, slen, delims, sentinel, flags, nwp, cwp)
+ char *string;
+ int slen;
+ char *delims;
+ int sentinel, flags;
+ int *nwp, *cwp;
+{
+ int ts, te, i, nw, cw, ifs_split, dflags;
+ char *token, *d, *d2;
+ WORD_LIST *ret, *tl;
+
+ if (string == 0 || *string == '\0')
+ {
+ if (nwp)
+ *nwp = 0;
+ if (cwp)
+ *cwp = 0;
+ return ((WORD_LIST *)NULL);
+ }
+
+ d = (delims == 0) ? ifs_value : delims;
+ ifs_split = delims == 0;
+
+ /* Make d2 the non-whitespace characters in delims */
+ d2 = 0;
+ if (delims)
+ {
+ size_t slength;
+#if defined (HANDLE_MULTIBYTE)
+ size_t mblength = 1;
+#endif
+ DECLARE_MBSTATE;
+
+ slength = strlen (delims);
+ d2 = (char *)xmalloc (slength + 1);
+ i = ts = 0;
+ while (delims[i])
+ {
+#if defined (HANDLE_MULTIBYTE)
+ mbstate_t state_bak;
+ state_bak = state;
+ mblength = MBRLEN (delims + i, slength, &state);
+ if (MB_INVALIDCH (mblength))
+ state = state_bak;
+ else if (mblength > 1)
+ {
+ memcpy (d2 + ts, delims + i, mblength);
+ ts += mblength;
+ i += mblength;
+ slength -= mblength;
+ continue;
+ }
+#endif
+ if (whitespace (delims[i]) == 0)
+ d2[ts++] = delims[i];
+
+ i++;
+ slength--;
+ }
+ d2[ts] = '\0';
+ }
+
+ ret = (WORD_LIST *)NULL;
+
+ /* Remove sequences of whitespace characters at the start of the string, as
+ long as those characters are delimiters. */
+ for (i = 0; member (string[i], d) && spctabnl (string[i]); i++)
+ ;
+ if (string[i] == '\0')
+ return (ret);
+
+ ts = i;
+ nw = 0;
+ cw = -1;
+ dflags = flags|SD_NOJMP;
+ while (1)
+ {
+ te = skip_to_delim (string, ts, d, dflags);
+
+ /* If we have a non-whitespace delimiter character, use it to make a
+ separate field. This is just about what $IFS splitting does and
+ is closer to the behavior of the shell parser. */
+ if (ts == te && d2 && member (string[ts], d2))
+ {
+ te = ts + 1;
+ /* If we're using IFS splitting, the non-whitespace delimiter char
+ and any additional IFS whitespace delimits a field. */
+ if (ifs_split)
+ while (member (string[te], d) && spctabnl (string[te]))
+ te++;
+ else
+ while (member (string[te], d2))
+ te++;
+ }
+
+ token = substring (string, ts, te);
+
+ ret = add_string_to_list (token, ret);
+ free (token);
+ nw++;
+
+ if (sentinel >= ts && sentinel <= te)
+ cw = nw;
+
+ /* If the cursor is at whitespace just before word start, set the
+ sentinel word to the current word. */
+ if (cwp && cw == -1 && sentinel == ts-1)
+ cw = nw;
+
+ /* If the cursor is at whitespace between two words, make a new, empty
+ word, add it before (well, after, since the list is in reverse order)
+ the word we just added, and set the current word to that one. */
+ if (cwp && cw == -1 && sentinel < ts)
+ {
+ tl = make_word_list (make_word (""), ret->next);
+ ret->next = tl;
+ cw = nw;
+ nw++;
+ }
+
+ if (string[te] == 0)
+ break;
+
+ i = te;
+ while (member (string[i], d) && (ifs_split || spctabnl(string[i])))
+ i++;
+
+ if (string[i])
+ ts = i;
+ else
+ break;
+ }
+
+ /* Special case for SENTINEL at the end of STRING. If we haven't found
+ the word containing SENTINEL yet, and the index we're looking for is at
+ the end of STRING (or past the end of the previously-found token,
+ possible if the end of the line is composed solely of IFS whitespace)
+ add an additional null argument and set the current word pointer to that. */
+ if (cwp && cw == -1 && (sentinel >= slen || sentinel >= te))
+ {
+ if (whitespace (string[sentinel - 1]))
+ {
+ token = "";
+ ret = add_string_to_list (token, ret);
+ nw++;
+ }
+ cw = nw;
+ }
+
+ if (nwp)
+ *nwp = nw;
+ if (cwp)
+ *cwp = cw;
+
+ return (REVERSE_LIST (ret, WORD_LIST *));
+}
+#endif /* READLINE */
+
+#if 0
+/* UNUSED */
+/* Extract the name of the variable to bind to from the assignment string. */
+char *
+assignment_name (string)
+ char *string;
+{
+ int offset;
+ char *temp;
+
+ offset = assignment (string, 0);
+ if (offset == 0)
+ return (char *)NULL;
+ temp = substring (string, 0, offset);
+ return (temp);
+}
+#endif
+
+/* **************************************************************** */
+/* */
+/* Functions to convert strings to WORD_LISTs and vice versa */
+/* */
+/* **************************************************************** */
+
+/* Return a single string of all the words in LIST. SEP is the separator
+ to put between individual elements of LIST in the output string. */
+char *
+string_list_internal (list, sep)
+ WORD_LIST *list;
+ char *sep;
+{
+ register WORD_LIST *t;
+ char *result, *r;
+ int word_len, sep_len, result_size;
+
+ if (list == 0)
+ return ((char *)NULL);
+
+ /* Short-circuit quickly if we don't need to separate anything. */
+ if (list->next == 0)
+ return (savestring (list->word->word));
+
+ /* This is nearly always called with either sep[0] == 0 or sep[1] == 0. */
+ sep_len = STRLEN (sep);
+ result_size = 0;
+
+ for (t = list; t; t = t->next)
+ {
+ if (t != list)
+ result_size += sep_len;
+ result_size += strlen (t->word->word);
+ }
+
+ r = result = (char *)xmalloc (result_size + 1);
+
+ for (t = list; t; t = t->next)
+ {
+ if (t != list && sep_len)
+ {
+ if (sep_len > 1)
+ {
+ FASTCOPY (sep, r, sep_len);
+ r += sep_len;
+ }
+ else
+ *r++ = sep[0];
+ }
+
+ word_len = strlen (t->word->word);
+ FASTCOPY (t->word->word, r, word_len);
+ r += word_len;
+ }
+
+ *r = '\0';
+ return (result);
+}
+
+/* Return a single string of all the words present in LIST, separating
+ each word with a space. */
+char *
+string_list (list)
+ WORD_LIST *list;
+{
+ return (string_list_internal (list, " "));
+}
+
+/* An external interface that can be used by the rest of the shell to
+ obtain a string containing the first character in $IFS. Handles all
+ the multibyte complications. If LENP is non-null, it is set to the
+ length of the returned string. */
+char *
+ifs_firstchar (lenp)
+ int *lenp;
+{
+ char *ret;
+ int len;
+
+ ret = xmalloc (MB_LEN_MAX + 1);
+#if defined (HANDLE_MULTIBYTE)
+ if (ifs_firstc_len == 1)
+ {
+ ret[0] = ifs_firstc[0];
+ ret[1] = '\0';
+ len = ret[0] ? 1 : 0;
+ }
+ else
+ {
+ memcpy (ret, ifs_firstc, ifs_firstc_len);
+ ret[len = ifs_firstc_len] = '\0';
+ }
+#else
+ ret[0] = ifs_firstc;
+ ret[1] = '\0';
+ len = ret[0] ? 0 : 1;
+#endif
+
+ if (lenp)
+ *lenp = len;
+
+ return ret;
+}
+
+/* Return a single string of all the words present in LIST, obeying the
+ quoting rules for "$*", to wit: (P1003.2, draft 11, 3.5.2) "If the
+ expansion [of $*] appears within a double quoted string, it expands
+ to a single field with the value of each parameter separated by the
+ first character of the IFS variable, or by a <space> if IFS is unset." */
+char *
+string_list_dollar_star (list)
+ WORD_LIST *list;
+{
+ char *ret;
+#if defined (HANDLE_MULTIBYTE)
+# if defined (__GNUC__)
+ char sep[MB_CUR_MAX + 1];
+# else
+ char *sep = 0;
+# endif
+#else
+ char sep[2];
+#endif
+
+#if defined (HANDLE_MULTIBYTE)
+# if !defined (__GNUC__)
+ sep = (char *)xmalloc (MB_CUR_MAX + 1);
+# endif /* !__GNUC__ */
+ if (ifs_firstc_len == 1)
+ {
+ sep[0] = ifs_firstc[0];
+ sep[1] = '\0';
+ }
+ else
+ {
+ memcpy (sep, ifs_firstc, ifs_firstc_len);
+ sep[ifs_firstc_len] = '\0';
+ }
+#else
+ sep[0] = ifs_firstc;
+ sep[1] = '\0';
+#endif
+
+ ret = string_list_internal (list, sep);
+#if defined (HANDLE_MULTIBYTE) && !defined (__GNUC__)
+ free (sep);
+#endif
+ return ret;
+}
+
+/* Turn $@ into a string. If (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ is non-zero, the $@ appears within double quotes, and we should quote
+ the list before converting it into a string. If IFS is unset, and the
+ word is not quoted, we just need to quote CTLESC and CTLNUL characters
+ in the words in the list, because the default value of $IFS is
+ <space><tab><newline>, IFS characters in the words in the list should
+ also be split. If IFS is null, and the word is not quoted, we need
+ to quote the words in the list to preserve the positional parameters
+ exactly. */
+char *
+string_list_dollar_at (list, quoted)
+ WORD_LIST *list;
+ int quoted;
+{
+ char *ifs, *ret;
+#if defined (HANDLE_MULTIBYTE)
+# if defined (__GNUC__)
+ char sep[MB_CUR_MAX + 1];
+# else
+ char *sep = 0;
+# endif /* !__GNUC__ */
+#else
+ char sep[2];
+#endif
+ WORD_LIST *tlist;
+
+ /* XXX this could just be ifs = ifs_value; */
+ ifs = ifs_var ? value_cell (ifs_var) : (char *)0;
+
+#if defined (HANDLE_MULTIBYTE)
+# if !defined (__GNUC__)
+ sep = (char *)xmalloc (MB_CUR_MAX + 1);
+# endif /* !__GNUC__ */
+ if (ifs && *ifs)
+ {
+ if (ifs_firstc_len == 1)
+ {
+ sep[0] = ifs_firstc[0];
+ sep[1] = '\0';
+ }
+ else
+ {
+ memcpy (sep, ifs_firstc, ifs_firstc_len);
+ sep[ifs_firstc_len] = '\0';
+ }
+ }
+ else
+ {
+ sep[0] = ' ';
+ sep[1] = '\0';
+ }
+#else
+ sep[0] = (ifs == 0 || *ifs == 0) ? ' ' : *ifs;
+ sep[1] = '\0';
+#endif
+
+ /* XXX -- why call quote_list if ifs == 0? we can get away without doing
+ it now that quote_escapes quotes spaces */
+#if 0
+ tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0))
+#else
+ tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE))
+#endif
+ ? quote_list (list)
+ : list_quote_escapes (list);
+
+ ret = string_list_internal (tlist, sep);
+#if defined (HANDLE_MULTIBYTE) && !defined (__GNUC__)
+ free (sep);
+#endif
+ return ret;
+}
+
+/* Turn the positional paramters into a string, understanding quoting and
+ the various subtleties of using the first character of $IFS as the
+ separator. Calls string_list_dollar_at, string_list_dollar_star, and
+ string_list as appropriate. */
+char *
+string_list_pos_params (pchar, list, quoted)
+ int pchar;
+ WORD_LIST *list;
+ int quoted;
+{
+ char *ret;
+ WORD_LIST *tlist;
+
+ if (pchar == '*' && (quoted & Q_DOUBLE_QUOTES))
+ {
+ tlist = quote_list (list);
+ word_list_remove_quoted_nulls (tlist);
+ ret = string_list_dollar_star (tlist);
+ }
+ else if (pchar == '*' && (quoted & Q_HERE_DOCUMENT))
+ {
+ tlist = quote_list (list);
+ word_list_remove_quoted_nulls (tlist);
+ ret = string_list (tlist);
+ }
+ else if (pchar == '*')
+ {
+ /* Even when unquoted, string_list_dollar_star does the right thing
+ making sure that the first character of $IFS is used as the
+ separator. */
+ ret = string_list_dollar_star (list);
+ }
+ else if (pchar == '@' && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ /* We use string_list_dollar_at, but only if the string is quoted, since
+ that quotes the escapes if it's not, which we don't want. We could
+ use string_list (the old code did), but that doesn't do the right
+ thing if the first character of $IFS is not a space. We use
+ string_list_dollar_star if the string is unquoted so we make sure that
+ the elements of $@ are separated by the first character of $IFS for
+ later splitting. */
+ ret = string_list_dollar_at (list, quoted);
+ else if (pchar == '@')
+ ret = string_list_dollar_star (list);
+ else
+ ret = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (list) : list);
+
+ return ret;
+}
+
+/* Return the list of words present in STRING. Separate the string into
+ words at any of the characters found in SEPARATORS. If QUOTED is
+ non-zero then word in the list will have its quoted flag set, otherwise
+ the quoted flag is left as make_word () deemed fit.
+
+ This obeys the P1003.2 word splitting semantics. If `separators' is
+ exactly <space><tab><newline>, then the splitting algorithm is that of
+ the Bourne shell, which treats any sequence of characters from `separators'
+ as a delimiter. If IFS is unset, which results in `separators' being set
+ to "", no splitting occurs. If separators has some other value, the
+ following rules are applied (`IFS white space' means zero or more
+ occurrences of <space>, <tab>, or <newline>, as long as those characters
+ are in `separators'):
+
+ 1) IFS white space is ignored at the start and the end of the
+ string.
+ 2) Each occurrence of a character in `separators' that is not
+ IFS white space, along with any adjacent occurrences of
+ IFS white space delimits a field.
+ 3) Any nonzero-length sequence of IFS white space delimits a field.
+ */
+
+/* BEWARE! list_string strips null arguments. Don't call it twice and
+ expect to have "" preserved! */
+
+/* This performs word splitting and quoted null character removal on
+ STRING. */
+#define issep(c) \
+ (((separators)[0]) ? ((separators)[1] ? isifs(c) \
+ : (c) == (separators)[0]) \
+ : 0)
+
+WORD_LIST *
+list_string (string, separators, quoted)
+ register char *string, *separators;
+ int quoted;
+{
+ WORD_LIST *result;
+ WORD_DESC *t;
+ char *current_word, *s;
+ int sindex, sh_style_split, whitesep, xflags;
+ size_t slen;
+
+ if (!string || !*string)
+ return ((WORD_LIST *)NULL);
+
+ sh_style_split = separators && separators[0] == ' ' &&
+ separators[1] == '\t' &&
+ separators[2] == '\n' &&
+ separators[3] == '\0';
+ for (xflags = 0, s = ifs_value; s && *s; s++)
+ {
+ if (*s == CTLESC) xflags |= SX_NOCTLESC;
+ else if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL;
+ }
+
+ slen = 0;
+ /* Remove sequences of whitespace at the beginning of STRING, as
+ long as those characters appear in IFS. Do not do this if
+ STRING is quoted or if there are no separator characters. */
+ if (!quoted || !separators || !*separators)
+ {
+ for (s = string; *s && spctabnl (*s) && issep (*s); s++);
+
+ if (!*s)
+ return ((WORD_LIST *)NULL);
+
+ string = s;
+ }
+
+ /* OK, now STRING points to a word that does not begin with white space.
+ The splitting algorithm is:
+ extract a word, stopping at a separator
+ skip sequences of spc, tab, or nl as long as they are separators
+ This obeys the field splitting rules in Posix.2. */
+ slen = (MB_CUR_MAX > 1) ? strlen (string) : 1;
+ for (result = (WORD_LIST *)NULL, sindex = 0; string[sindex]; )
+ {
+ /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim
+ unless multibyte chars are possible. */
+ current_word = string_extract_verbatim (string, slen, &sindex, separators, xflags);
+ if (current_word == 0)
+ break;
+
+ /* If we have a quoted empty string, add a quoted null argument. We
+ want to preserve the quoted null character iff this is a quoted
+ empty string; otherwise the quoted null characters are removed
+ below. */
+ if (QUOTED_NULL (current_word))
+ {
+ t = alloc_word_desc ();
+ t->word = make_quoted_char ('\0');
+ t->flags |= W_QUOTED|W_HASQUOTEDNULL;
+ result = make_word_list (t, result);
+ }
+ else if (current_word[0] != '\0')
+ {
+ /* If we have something, then add it regardless. However,
+ perform quoted null character removal on the current word. */
+ remove_quoted_nulls (current_word);
+ result = add_string_to_list (current_word, result);
+ result->word->flags &= ~W_HASQUOTEDNULL; /* just to be sure */
+ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
+ result->word->flags |= W_QUOTED;
+ }
+
+ /* If we're not doing sequences of separators in the traditional
+ Bourne shell style, then add a quoted null argument. */
+ else if (!sh_style_split && !spctabnl (string[sindex]))
+ {
+ t = alloc_word_desc ();
+ t->word = make_quoted_char ('\0');
+ t->flags |= W_QUOTED|W_HASQUOTEDNULL;
+ result = make_word_list (t, result);
+ }
+
+ free (current_word);
+
+ /* Note whether or not the separator is IFS whitespace, used later. */
+ whitesep = string[sindex] && spctabnl (string[sindex]);
+
+ /* Move past the current separator character. */
+ if (string[sindex])
+ {
+ DECLARE_MBSTATE;
+ ADVANCE_CHAR (string, slen, sindex);
+ }
+
+ /* Now skip sequences of space, tab, or newline characters if they are
+ in the list of separators. */
+ while (string[sindex] && spctabnl (string[sindex]) && issep (string[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 (string[sindex] && whitesep && issep (string[sindex]) && !spctabnl (string[sindex]))
+ {
+ sindex++;
+ /* An IFS character that is not IFS white space, along with any
+ adjacent IFS white space, shall delimit a field. (SUSv3) */
+ while (string[sindex] && spctabnl (string[sindex]) && isifs (string[sindex]))
+ sindex++;
+ }
+ }
+ return (REVERSE_LIST (result, WORD_LIST *));
+}
+
+/* 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.
+
+ XXX - this function is very similar to list_string; they should be
+ combined - XXX */
+char *
+get_word_from_string (stringp, separators, endptr)
+ char **stringp, *separators, **endptr;
+{
+ register char *s;
+ char *current_word;
+ int sindex, sh_style_split, whitesep, xflags;
+ size_t slen;
+
+ if (!stringp || !*stringp || !**stringp)
+ return ((char *)NULL);
+
+ sh_style_split = separators && separators[0] == ' ' &&
+ separators[1] == '\t' &&
+ separators[2] == '\n' &&
+ separators[3] == '\0';
+ for (xflags = 0, s = ifs_value; s && *s; s++)
+ {
+ if (*s == CTLESC) xflags |= SX_NOCTLESC;
+ if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL;
+ }
+
+ 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)
+ {
+ for (; *s && spctabnl (*s) && isifs (*s); s++);
+
+ /* If the string is nothing but whitespace, update it and return. */
+ if (!*s)
+ {
+ *stringp = s;
+ if (endptr)
+ *endptr = s;
+ return ((char *)NULL);
+ }
+ }
+
+ /* OK, S points to a word that does not begin with white space.
+ Now extract a word, stopping at a separator, save a pointer to
+ the first character after the word, then skip sequences of spc,
+ tab, or nl as long as they are separators.
+
+ 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;
+ current_word = string_extract_verbatim (s, slen, &sindex, separators, xflags);
+
+ /* Set ENDPTR to the first character after the end of the word. */
+ if (endptr)
+ *endptr = s + sindex;
+
+ /* Note whether or not the separator is IFS whitespace, used later. */
+ whitesep = s[sindex] && spctabnl (s[sindex]);
+
+ /* Move past the current separator character. */
+ if (s[sindex])
+ {
+ DECLARE_MBSTATE;
+ ADVANCE_CHAR (s, slen, sindex);
+ }
+
+ /* 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]))
+ 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]))
+ {
+ 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]))
+ sindex++;
+ }
+
+ /* Update STRING to point to the next field. */
+ *stringp = s + sindex;
+ return (current_word);
+}
+
+/* Remove IFS white space at the end of STRING. Start at the end
+ of the string and walk backwards until the beginning of the string
+ or we find a character that's not IFS white space and not CTLESC.
+ Only let CTLESC escape a white space character if SAW_ESCAPE is
+ non-zero. */
+char *
+strip_trailing_ifs_whitespace (string, separators, saw_escape)
+ char *string, *separators;
+ int saw_escape;
+{
+ char *s;
+
+ s = string + STRLEN (string) - 1;
+ while (s > string && ((spctabnl (*s) && isifs (*s)) ||
+ (saw_escape && *s == CTLESC && spctabnl (s[1]))))
+ s--;
+ *++s = '\0';
+ return string;
+}
+
+#if 0
+/* UNUSED */
+/* Split STRING into words at whitespace. Obeys shell-style quoting with
+ backslashes, single and double quotes. */
+WORD_LIST *
+list_string_with_quotes (string)
+ char *string;
+{
+ WORD_LIST *list;
+ char *token, *s;
+ size_t s_len;
+ int c, i, tokstart, len;
+
+ for (s = string; s && *s && spctabnl (*s); s++)
+ ;
+ if (s == 0 || *s == 0)
+ return ((WORD_LIST *)NULL);
+
+ s_len = strlen (s);
+ tokstart = i = 0;
+ list = (WORD_LIST *)NULL;
+ while (1)
+ {
+ c = s[i];
+ if (c == '\\')
+ {
+ i++;
+ if (s[i])
+ i++;
+ }
+ else if (c == '\'')
+ i = skip_single_quoted (s, s_len, ++i);
+ else if (c == '"')
+ i = skip_double_quoted (s, s_len, ++i);
+ else if (c == 0 || spctabnl (c))
+ {
+ /* We have found the end of a token. Make a word out of it and
+ add it to the word list. */
+ token = substring (s, tokstart, i);
+ list = add_string_to_list (token, list);
+ free (token);
+ while (spctabnl (s[i]))
+ i++;
+ if (s[i])
+ tokstart = i;
+ else
+ break;
+ }
+ else
+ i++; /* normal character */
+ }
+ return (REVERSE_LIST (list, WORD_LIST *));
+}
+#endif
+
+/********************************************************/
+/* */
+/* Functions to perform assignment statements */
+/* */
+/********************************************************/
+
+#if defined (ARRAY_VARS)
+static SHELL_VAR *
+do_compound_assignment (name, value, flags)
+ char *name, *value;
+ int flags;
+{
+ SHELL_VAR *v;
+ int mklocal, mkassoc;
+ WORD_LIST *list;
+
+ mklocal = flags & ASS_MKLOCAL;
+ mkassoc = flags & ASS_MKASSOC;
+
+ if (mklocal && variable_context)
+ {
+ v = find_variable (name);
+ list = expand_compound_array_assignment (v, value, flags);
+ if (mkassoc)
+ v = make_local_assoc_variable (name);
+ else if (v == 0 || (array_p (v) == 0 && assoc_p (v) == 0) || v->context != variable_context)
+ v = make_local_array_variable (name);
+ assign_compound_array_list (v, list, flags);
+ }
+ else
+ v = assign_array_from_string (name, value, flags);
+
+ return (v);
+}
+#endif
+
+/* Given STRING, an assignment string, get the value of the right side
+ of the `=', and bind it to the left side. If EXPAND is true, then
+ perform parameter expansion, command substitution, and arithmetic
+ expansion on the right-hand side. Perform tilde expansion in any
+ case. Do not perform word splitting on the result of expansion. */
+static int
+do_assignment_internal (word, expand)
+ const WORD_DESC *word;
+ int expand;
+{
+ int offset, tlen, appendop, assign_list, aflags, retval;
+ char *name, *value;
+ SHELL_VAR *entry;
+#if defined (ARRAY_VARS)
+ char *t;
+ int ni;
+#endif
+ const char *string;
+
+ if (word == 0 || word->word == 0)
+ return 0;
+
+ appendop = assign_list = aflags = 0;
+ string = word->word;
+ offset = assignment (string, 0);
+ name = savestring (string);
+ value = (char *)NULL;
+
+ if (name[offset] == '=')
+ {
+ char *temp;
+
+ if (name[offset - 1] == '+')
+ {
+ appendop = 1;
+ name[offset - 1] = '\0';
+ }
+
+ name[offset] = 0; /* might need this set later */
+ temp = name + offset + 1;
+ tlen = STRLEN (temp);
+
+#if defined (ARRAY_VARS)
+ if (expand && (word->flags & W_COMPASSIGN))
+ {
+ assign_list = ni = 1;
+ value = extract_array_assignment_list (temp, &ni);
+ }
+ else
+#endif
+ if (expand && temp[0])
+ value = expand_string_if_necessary (temp, 0, expand_string_assignment);
+ else
+ value = savestring (temp);
+ }
+
+ if (value == 0)
+ {
+ value = (char *)xmalloc (1);
+ value[0] = '\0';
+ }
+
+ if (echo_command_at_execute)
+ {
+ if (appendop)
+ name[offset - 1] = '+';
+ xtrace_print_assignment (name, value, assign_list, 1);
+ if (appendop)
+ name[offset - 1] = '\0';
+ }
+
+#define ASSIGN_RETURN(r) do { FREE (value); free (name); return (r); } while (0)
+
+ if (appendop)
+ aflags |= ASS_APPEND;
+
+#if defined (ARRAY_VARS)
+ if (t = mbschr (name, '[')) /*]*/
+ {
+ if (assign_list)
+ {
+ report_error (_("%s: cannot assign list to array member"), name);
+ ASSIGN_RETURN (0);
+ }
+ entry = assign_array_element (name, value, aflags);
+ if (entry == 0)
+ ASSIGN_RETURN (0);
+ }
+ else if (assign_list)
+ {
+ if (word->flags & W_ASSIGNARG)
+ aflags |= ASS_MKLOCAL;
+ if (word->flags & W_ASSIGNASSOC)
+ aflags |= ASS_MKASSOC;
+ entry = do_compound_assignment (name, value, aflags);
+ }
+ else
+#endif /* ARRAY_VARS */
+ entry = bind_variable (name, value, aflags);
+
+ stupidly_hack_special_variables (name);
+
+#if 1
+ /* Return 1 if the assignment seems to have been performed correctly. */
+ if (entry == 0 || readonly_p (entry))
+ retval = 0; /* assignment failure */
+ else if (noassign_p (entry))
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ retval = 1; /* error status, but not assignment failure */
+ }
+ else
+ retval = 1;
+
+ if (entry && retval != 0 && noassign_p (entry) == 0)
+ VUNSETATTR (entry, att_invisible);
+
+ ASSIGN_RETURN (retval);
+#else
+ if (entry)
+ VUNSETATTR (entry, att_invisible);
+
+ ASSIGN_RETURN (entry ? ((readonly_p (entry) == 0) && noassign_p (entry) == 0) : 0);
+#endif
+}
+
+/* Perform the assignment statement in STRING, and expand the
+ right side by doing tilde, command and parameter expansion. */
+int
+do_assignment (string)
+ char *string;
+{
+ WORD_DESC td;
+
+ td.flags = W_ASSIGNMENT;
+ td.word = string;
+
+ return do_assignment_internal (&td, 1);
+}
+
+int
+do_word_assignment (word)
+ WORD_DESC *word;
+{
+ return do_assignment_internal (word, 1);
+}
+
+/* Given STRING, an assignment string, get the value of the right side
+ of the `=', and bind it to the left side. Do not perform any word
+ expansions on the right hand side. */
+int
+do_assignment_no_expand (string)
+ char *string;
+{
+ WORD_DESC td;
+
+ td.flags = W_ASSIGNMENT;
+ td.word = string;
+
+ return (do_assignment_internal (&td, 0));
+}
+
+/***************************************************
+ * *
+ * Functions to manage the positional parameters *
+ * *
+ ***************************************************/
+
+/* Return the word list that corresponds to `$*'. */
+WORD_LIST *
+list_rest_of_args ()
+{
+ register WORD_LIST *list, *args;
+ int i;
+
+ /* Break out of the loop as soon as one of the dollar variables is null. */
+ for (i = 1, list = (WORD_LIST *)NULL; i < 10 && dollar_vars[i]; i++)
+ list = make_word_list (make_bare_word (dollar_vars[i]), list);
+
+ for (args = rest_of_args; args; args = args->next)
+ list = make_word_list (make_bare_word (args->word->word), list);
+
+ return (REVERSE_LIST (list, WORD_LIST *));
+}
+
+int
+number_of_args ()
+{
+ register WORD_LIST *list;
+ int n;
+
+ for (n = 0; n < 9 && dollar_vars[n+1]; n++)
+ ;
+ for (list = rest_of_args; list; list = list->next)
+ n++;
+ return n;
+}
+
+/* Return the value of a positional parameter. This handles values > 10. */
+char *
+get_dollar_var_value (ind)
+ intmax_t ind;
+{
+ char *temp;
+ WORD_LIST *p;
+
+ if (ind < 10)
+ temp = dollar_vars[ind] ? savestring (dollar_vars[ind]) : (char *)NULL;
+ else /* We want something like ${11} */
+ {
+ ind -= 10;
+ for (p = rest_of_args; p && ind--; p = p->next)
+ ;
+ temp = p ? savestring (p->word->word) : (char *)NULL;
+ }
+ return (temp);
+}
+
+/* Make a single large string out of the dollar digit variables,
+ and the rest_of_args. If DOLLAR_STAR is 1, then obey the special
+ case of "$*" with respect to IFS. */
+char *
+string_rest_of_args (dollar_star)
+ int dollar_star;
+{
+ register WORD_LIST *list;
+ char *string;
+
+ list = list_rest_of_args ();
+ string = dollar_star ? string_list_dollar_star (list) : string_list (list);
+ dispose_words (list);
+ return (string);
+}
+
+/* Return a string containing the positional parameters from START to
+ END, inclusive. If STRING[0] == '*', we obey the rules for $*,
+ which only makes a difference if QUOTED is non-zero. If QUOTED includes
+ Q_HERE_DOCUMENT or Q_DOUBLE_QUOTES, this returns a quoted list, otherwise
+ no quoting chars are added. */
+static char *
+pos_params (string, start, end, quoted)
+ char *string;
+ int start, end, quoted;
+{
+ WORD_LIST *save, *params, *h, *t;
+ char *ret;
+ int i;
+
+ /* see if we can short-circuit. if start == end, we want 0 parameters. */
+ if (start == end)
+ return ((char *)NULL);
+
+ save = params = list_rest_of_args ();
+ if (save == 0)
+ return ((char *)NULL);
+
+ if (start == 0) /* handle ${@:0[:x]} specially */
+ {
+ t = make_word_list (make_word (dollar_vars[0]), params);
+ save = params = t;
+ }
+
+ for (i = start ? 1 : 0; params && i < start; i++)
+ params = params->next;
+ if (params == 0)
+ return ((char *)NULL);
+ for (h = t = params; params && i < end; i++)
+ {
+ t = params;
+ params = params->next;
+ }
+
+ t->next = (WORD_LIST *)NULL;
+
+ ret = string_list_pos_params (string[0], h, quoted);
+
+ if (t != params)
+ t->next = params;
+
+ dispose_words (save);
+ return (ret);
+}
+
+/******************************************************************/
+/* */
+/* Functions to expand strings to strings or WORD_LISTs */
+/* */
+/******************************************************************/
+
+#if defined (PROCESS_SUBSTITUTION)
+#define EXP_CHAR(s) (s == '$' || s == '`' || s == '<' || s == '>' || s == CTLESC || s == '~')
+#else
+#define EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~')
+#endif
+
+/* 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. */
+static char *
+expand_string_if_necessary (string, quoted, func)
+ char *string;
+ int quoted;
+ EXPFUNC *func;
+{
+ WORD_LIST *list;
+ size_t slen;
+ int i, saw_quote;
+ char *ret;
+ DECLARE_MBSTATE;
+
+ /* Don't need string length for ADVANCE_CHAR unless multibyte chars possible. */
+ slen = (MB_CUR_MAX > 1) ? strlen (string) : 0;
+ i = saw_quote = 0;
+ while (string[i])
+ {
+ if (EXP_CHAR (string[i]))
+ break;
+ else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"')
+ saw_quote = 1;
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ if (string[i])
+ {
+ list = (*func) (string, quoted);
+ if (list)
+ {
+ ret = string_list (list);
+ dispose_words (list);
+ }
+ else
+ ret = (char *)NULL;
+ }
+ else if (saw_quote && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
+ ret = string_quote_removal (string, quoted);
+ else
+ ret = savestring (string);
+
+ return ret;
+}
+
+static inline char *
+expand_string_to_string_internal (string, quoted, func)
+ char *string;
+ int quoted;
+ EXPFUNC *func;
+{
+ WORD_LIST *list;
+ char *ret;
+
+ if (string == 0 || *string == '\0')
+ return ((char *)NULL);
+
+ list = (*func) (string, quoted);
+ if (list)
+ {
+ ret = string_list (list);
+ dispose_words (list);
+ }
+ else
+ ret = (char *)NULL;
+
+ return (ret);
+}
+
+char *
+expand_string_to_string (string, quoted)
+ char *string;
+ int quoted;
+{
+ return (expand_string_to_string_internal (string, quoted, expand_string));
+}
+
+char *
+expand_string_unsplit_to_string (string, quoted)
+ char *string;
+ int quoted;
+{
+ return (expand_string_to_string_internal (string, quoted, expand_string_unsplit));
+}
+
+char *
+expand_assignment_string_to_string (string, quoted)
+ char *string;
+ int quoted;
+{
+ return (expand_string_to_string_internal (string, quoted, expand_string_assignment));
+}
+
+char *
+expand_arith_string (string, quoted)
+ char *string;
+ int quoted;
+{
+ return (expand_string_if_necessary (string, quoted, expand_string));
+}
+
+#if defined (COND_COMMAND)
+/* Just remove backslashes in STRING. Returns a new string. */
+char *
+remove_backslashes (string)
+ char *string;
+{
+ char *r, *ret, *s;
+
+ r = ret = (char *)xmalloc (strlen (string) + 1);
+ for (s = string; s && *s; )
+ {
+ if (*s == '\\')
+ s++;
+ if (*s == 0)
+ break;
+ *r++ = *s++;
+ }
+ *r = '\0';
+ return ret;
+}
+
+/* This needs better error handling. */
+/* Expand W for use as an argument to a unary or binary operator in a
+ [[...]] expression. If SPECIAL is 1, this is the rhs argument
+ to the != or == operator, and should be treated as a pattern. In
+ this case, we quote the string specially for the globbing code. If
+ SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+ be quoted appropriately for regcomp/regexec. The caller is responsible
+ for removing the backslashes if the unquoted word is needed later. */
+char *
+cond_expand_word (w, special)
+ WORD_DESC *w;
+ int special;
+{
+ char *r, *p;
+ WORD_LIST *l;
+ int qflags;
+
+ if (w->word == 0 || w->word[0] == '\0')
+ return ((char *)NULL);
+
+ l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
+ if (l)
+ {
+ if (special == 0)
+ {
+ dequote_list (l);
+ r = string_list (l);
+ }
+ else
+ {
+ qflags = QGLOB_CVTNULL;
+ if (special == 2)
+ qflags |= QGLOB_REGEXP;
+ p = string_list (l);
+ r = quote_string_for_globbing (p, qflags);
+ free (p);
+ }
+ dispose_words (l);
+ }
+ else
+ r = (char *)NULL;
+
+ return r;
+}
+#endif
+
+/* Call expand_word_internal to expand W and handle error returns.
+ A convenience function for functions that don't want to handle
+ any errors or free any memory before aborting. */
+static WORD_LIST *
+call_expand_word_internal (w, q, i, c, e)
+ WORD_DESC *w;
+ int q, i, *c, *e;
+{
+ WORD_LIST *result;
+
+ result = expand_word_internal (w, q, i, c, e);
+ if (result == &expand_word_error || result == &expand_word_fatal)
+ {
+ /* By convention, each time this error is returned, w->word has
+ already been freed (it sometimes may not be in the fatal case,
+ but that doesn't result in a memory leak because we're going
+ to exit in most cases). */
+ w->word = (char *)NULL;
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level ((result == &expand_word_error) ? DISCARD : FORCE_EOF);
+ /* NOTREACHED */
+ }
+ else
+ return (result);
+}
+
+/* Perform parameter expansion, command substitution, and arithmetic
+ expansion on STRING, as if it were a word. Leave the result quoted. */
+static WORD_LIST *
+expand_string_internal (string, quoted)
+ char *string;
+ int quoted;
+{
+ WORD_DESC td;
+ WORD_LIST *tresult;
+
+ if (string == 0 || *string == 0)
+ return ((WORD_LIST *)NULL);
+
+ td.flags = 0;
+ td.word = savestring (string);
+
+ tresult = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL);
+
+ FREE (td.word);
+ return (tresult);
+}
+
+/* Expand STRING by performing parameter expansion, command substitution,
+ and arithmetic expansion. Dequote the resulting WORD_LIST before
+ returning it, but do not perform word splitting. The call to
+ remove_quoted_nulls () is in here because word splitting normally
+ takes care of quote removal. */
+WORD_LIST *
+expand_string_unsplit (string, quoted)
+ char *string;
+ int quoted;
+{
+ WORD_LIST *value;
+
+ if (string == 0 || *string == '\0')
+ return ((WORD_LIST *)NULL);
+
+ expand_no_split_dollar_star = 1;
+ value = expand_string_internal (string, quoted);
+ expand_no_split_dollar_star = 0;
+
+ if (value)
+ {
+ if (value->word)
+ {
+ remove_quoted_nulls (value->word->word);
+ value->word->flags &= ~W_HASQUOTEDNULL;
+ }
+ dequote_list (value);
+ }
+ return (value);
+}
+
+/* Expand the rhs of an assignment statement */
+WORD_LIST *
+expand_string_assignment (string, quoted)
+ char *string;
+ int quoted;
+{
+ WORD_DESC td;
+ WORD_LIST *value;
+
+ if (string == 0 || *string == '\0')
+ return ((WORD_LIST *)NULL);
+
+ expand_no_split_dollar_star = 1;
+
+ td.flags = W_ASSIGNRHS;
+ td.word = savestring (string);
+ value = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL);
+ FREE (td.word);
+
+ expand_no_split_dollar_star = 0;
+
+ if (value)
+ {
+ if (value->word)
+ {
+ remove_quoted_nulls (value->word->word);
+ value->word->flags &= ~W_HASQUOTEDNULL;
+ }
+ dequote_list (value);
+ }
+ return (value);
+}
+
+
+/* Expand one of the PS? prompt strings. This is a sort of combination of
+ expand_string_unsplit and expand_string_internal, but returns the
+ passed string when an error occurs. Might want to trap other calls
+ to jump_to_top_level here so we don't endlessly loop. */
+WORD_LIST *
+expand_prompt_string (string, quoted, wflags)
+ char *string;
+ int quoted;
+ int wflags;
+{
+ WORD_LIST *value;
+ WORD_DESC td;
+
+ if (string == 0 || *string == 0)
+ return ((WORD_LIST *)NULL);
+
+ td.flags = wflags;
+ td.word = savestring (string);
+
+ no_longjmp_on_fatal_error = 1;
+ value = expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL);
+ no_longjmp_on_fatal_error = 0;
+
+ if (value == &expand_word_error || value == &expand_word_fatal)
+ {
+ value = make_word_list (make_bare_word (string), (WORD_LIST *)NULL);
+ return value;
+ }
+ FREE (td.word);
+ if (value)
+ {
+ if (value->word)
+ {
+ remove_quoted_nulls (value->word->word);
+ value->word->flags &= ~W_HASQUOTEDNULL;
+ }
+ dequote_list (value);
+ }
+ return (value);
+}
+
+/* Expand STRING just as if you were expanding a word, but do not dequote
+ the resultant WORD_LIST. This is called only from within this file,
+ and is used to correctly preserve quoted characters when expanding
+ things like ${1+"$@"}. This does parameter expansion, command
+ substitution, arithmetic expansion, and word splitting. */
+static WORD_LIST *
+expand_string_leave_quoted (string, quoted)
+ char *string;
+ int quoted;
+{
+ WORD_LIST *tlist;
+ WORD_LIST *tresult;
+
+ if (string == 0 || *string == '\0')
+ return ((WORD_LIST *)NULL);
+
+ tlist = expand_string_internal (string, quoted);
+
+ if (tlist)
+ {
+ tresult = word_list_split (tlist);
+ dispose_words (tlist);
+ return (tresult);
+ }
+ return ((WORD_LIST *)NULL);
+}
+
+/* This does not perform word splitting or dequote the WORD_LIST
+ it returns. */
+static WORD_LIST *
+expand_string_for_rhs (string, quoted, dollar_at_p, has_dollar_at)
+ char *string;
+ int quoted, *dollar_at_p, *has_dollar_at;
+{
+ WORD_DESC td;
+ WORD_LIST *tresult;
+
+ if (string == 0 || *string == '\0')
+ return (WORD_LIST *)NULL;
+
+ td.flags = 0;
+ td.word = string;
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
+ return (tresult);
+}
+
+/* Expand STRING just as if you were expanding a word. This also returns
+ a list of words. Note that filename globbing is *NOT* done for word
+ or string expansion, just when the shell is expanding a command. This
+ does parameter expansion, command substitution, arithmetic expansion,
+ and word splitting. Dequote the resultant WORD_LIST before returning. */
+WORD_LIST *
+expand_string (string, quoted)
+ char *string;
+ int quoted;
+{
+ WORD_LIST *result;
+
+ if (string == 0 || *string == '\0')
+ return ((WORD_LIST *)NULL);
+
+ result = expand_string_leave_quoted (string, quoted);
+ return (result ? dequote_list (result) : result);
+}
+
+/***************************************************
+ * *
+ * Functions to handle quoting chars *
+ * *
+ ***************************************************/
+
+/* Conventions:
+
+ A string with s[0] == CTLNUL && s[1] == 0 is a quoted null string.
+ The parser passes CTLNUL as CTLESC CTLNUL. */
+
+/* Quote escape characters in string s, but no other characters. This is
+ used to protect CTLESC and CTLNUL in variable values from the rest of
+ the word expansion process after the variable is expanded (word splitting
+ and filename generation). If IFS is null, we quote spaces as well, just
+ in case we split on spaces later (in the case of unquoted $@, we will
+ eventually attempt to split the entire word on spaces). Corresponding
+ code exists in dequote_escapes. Even if we don't end up splitting on
+ spaces, quoting spaces is not a problem. This should never be called on
+ a string that is quoted with single or double quotes or part of a here
+ document (effectively double-quoted). */
+char *
+quote_escapes (string)
+ char *string;
+{
+ register char *s, *t;
+ size_t slen;
+ char *result, *send;
+ int quote_spaces, skip_ctlesc, skip_ctlnul;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+ send = string + slen;
+
+ quote_spaces = (ifs_value && *ifs_value == 0);
+
+ for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++)
+ skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL;
+
+ t = result = (char *)xmalloc ((slen * 2) + 1);
+ s = string;
+
+ while (*s)
+ {
+ if ((skip_ctlesc == 0 && *s == CTLESC) || (skip_ctlnul == 0 && *s == CTLNUL) || (quote_spaces && *s == ' '))
+ *t++ = CTLESC;
+ COPY_CHAR_P (t, s, send);
+ }
+ *t = '\0';
+ return (result);
+}
+
+static WORD_LIST *
+list_quote_escapes (list)
+ WORD_LIST *list;
+{
+ register WORD_LIST *w;
+ char *t;
+
+ for (w = list; w; w = w->next)
+ {
+ t = w->word->word;
+ w->word->word = quote_escapes (t);
+ free (t);
+ }
+ return list;
+}
+
+/* Inverse of quote_escapes; remove CTLESC protecting CTLESC or CTLNUL.
+
+ The parser passes us CTLESC as CTLESC CTLESC and CTLNUL as CTLESC CTLNUL.
+ This is necessary to make unquoted CTLESC and CTLNUL characters in the
+ data stream pass through properly.
+
+ We need to remove doubled CTLESC characters inside quoted strings before
+ quoting the entire string, so we do not double the number of CTLESC
+ characters.
+
+ Also used by parts of the pattern substitution code. */
+char *
+dequote_escapes (string)
+ char *string;
+{
+ register char *s, *t, *s1;
+ size_t slen;
+ char *result, *send;
+ int quote_spaces;
+ DECLARE_MBSTATE;
+
+ if (string == 0)
+ return string;
+
+ slen = strlen (string);
+ send = string + slen;
+
+ t = result = (char *)xmalloc (slen + 1);
+
+ if (strchr (string, CTLESC) == 0)
+ return (strcpy (result, string));
+
+ quote_spaces = (ifs_value && *ifs_value == 0);
+
+ s = string;
+ while (*s)
+ {
+ if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' ')))
+ {
+ s++;
+ if (*s == '\0')
+ break;
+ }
+ COPY_CHAR_P (t, s, send);
+ }
+ *t = '\0';
+ return result;
+}
+
+/* Return a new string with the quoted representation of character C.
+ This turns "" into QUOTED_NULL, so the W_HASQUOTEDNULL flag needs to be
+ set in any resultant WORD_DESC where this value is the word. */
+static char *
+make_quoted_char (c)
+ int c;
+{
+ char *temp;
+
+ temp = (char *)xmalloc (3);
+ if (c == 0)
+ {
+ temp[0] = CTLNUL;
+ temp[1] = '\0';
+ }
+ else
+ {
+ temp[0] = CTLESC;
+ temp[1] = c;
+ temp[2] = '\0';
+ }
+ return (temp);
+}
+
+/* Quote STRING, returning a new string. This turns "" into QUOTED_NULL, so
+ the W_HASQUOTEDNULL flag needs to be set in any resultant WORD_DESC where
+ this value is the word. */
+char *
+quote_string (string)
+ char *string;
+{
+ register char *t;
+ size_t slen;
+ char *result, *send;
+
+ if (*string == 0)
+ {
+ result = (char *)xmalloc (2);
+ result[0] = CTLNUL;
+ result[1] = '\0';
+ }
+ else
+ {
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+ send = string + slen;
+
+ result = (char *)xmalloc ((slen * 2) + 1);
+
+ for (t = result; string < send; )
+ {
+ *t++ = CTLESC;
+ COPY_CHAR_P (t, string, send);
+ }
+ *t = '\0';
+ }
+ return (result);
+}
+
+/* De-quote quoted characters in STRING. */
+char *
+dequote_string (string)
+ char *string;
+{
+ register char *s, *t;
+ size_t slen;
+ char *result, *send;
+ DECLARE_MBSTATE;
+
+ slen = strlen (string);
+
+ t = result = (char *)xmalloc (slen + 1);
+
+ if (QUOTED_NULL (string))
+ {
+ result[0] = '\0';
+ return (result);
+ }
+
+ /* If no character in the string can be quoted, don't bother examining
+ each character. Just return a copy of the string passed to us. */
+ if (strchr (string, CTLESC) == NULL)
+ return (strcpy (result, string));
+
+ send = string + slen;
+ s = string;
+ while (*s)
+ {
+ if (*s == CTLESC)
+ {
+ s++;
+ if (*s == '\0')
+ break;
+ }
+ COPY_CHAR_P (t, s, send);
+ }
+
+ *t = '\0';
+ return (result);
+}
+
+/* Quote the entire WORD_LIST list. */
+static WORD_LIST *
+quote_list (list)
+ WORD_LIST *list;
+{
+ register WORD_LIST *w;
+ char *t;
+
+ for (w = list; w; w = w->next)
+ {
+ t = w->word->word;
+ w->word->word = quote_string (t);
+ if (*t == 0)
+ w->word->flags |= W_HASQUOTEDNULL; /* XXX - turn on W_HASQUOTEDNULL here? */
+ w->word->flags |= W_QUOTED;
+ free (t);
+ }
+ return list;
+}
+
+/* De-quote quoted characters in each word in LIST. */
+WORD_LIST *
+dequote_list (list)
+ WORD_LIST *list;
+{
+ register char *s;
+ register WORD_LIST *tlist;
+
+ for (tlist = list; tlist; tlist = tlist->next)
+ {
+ s = dequote_string (tlist->word->word);
+ if (QUOTED_NULL (tlist->word->word))
+ tlist->word->flags &= ~W_HASQUOTEDNULL;
+ free (tlist->word->word);
+ tlist->word->word = s;
+ }
+ return list;
+}
+
+/* Remove CTLESC protecting a CTLESC or CTLNUL in place. Return the passed
+ string. */
+char *
+remove_quoted_escapes (string)
+ char *string;
+{
+ char *t;
+
+ if (string)
+ {
+ t = dequote_escapes (string);
+ strcpy (string, t);
+ free (t);
+ }
+
+ return (string);
+}
+
+/* Perform quoted null character removal on STRING. We don't allow any
+ quoted null characters in the middle or at the ends of strings because
+ of how expand_word_internal works. remove_quoted_nulls () turns
+ STRING into an empty string iff it only consists of a quoted null,
+ and removes all unquoted CTLNUL characters. */
+char *
+remove_quoted_nulls (string)
+ char *string;
+{
+ register size_t slen;
+ register int i, j, prev_i;
+ DECLARE_MBSTATE;
+
+ if (strchr (string, CTLNUL) == 0) /* XXX */
+ return string; /* XXX */
+
+ slen = strlen (string);
+ i = j = 0;
+
+ while (i < slen)
+ {
+ if (string[i] == CTLESC)
+ {
+ /* Old code had j++, but we cannot assume that i == j at this
+ point -- what if a CTLNUL has already been removed from the
+ string? We don't want to drop the CTLESC or recopy characters
+ that we've already copied down. */
+ i++; string[j++] = CTLESC;
+ if (i == slen)
+ break;
+ }
+ else if (string[i] == CTLNUL)
+ i++;
+
+ prev_i = i;
+ ADVANCE_CHAR (string, slen, i);
+ if (j < prev_i)
+ {
+ do string[j++] = string[prev_i++]; while (prev_i < i);
+ }
+ else
+ j = i;
+ }
+ string[j] = '\0';
+
+ return (string);
+}
+
+/* Perform quoted null character removal on each element of LIST.
+ This modifies LIST. */
+void
+word_list_remove_quoted_nulls (list)
+ WORD_LIST *list;
+{
+ register WORD_LIST *t;
+
+ for (t = list; t; t = t->next)
+ {
+ remove_quoted_nulls (t->word->word);
+ t->word->flags &= ~W_HASQUOTEDNULL;
+ }
+}
+
+/* **************************************************************** */
+/* */
+/* Functions for Matching and Removing Patterns */
+/* */
+/* **************************************************************** */
+
+#if defined (HANDLE_MULTIBYTE)
+#if 0 /* Currently unused */
+static unsigned char *
+mb_getcharlens (string, len)
+ char *string;
+ int len;
+{
+ int i, offset, last;
+ unsigned char *ret;
+ char *p;
+ DECLARE_MBSTATE;
+
+ i = offset = 0;
+ last = 0;
+ ret = (unsigned char *)xmalloc (len);
+ memset (ret, 0, len);
+ while (string[last])
+ {
+ ADVANCE_CHAR (string, len, offset);
+ ret[last] = offset - last;
+ last = offset;
+ }
+ return ret;
+}
+#endif
+#endif
+
+/* Remove the portion of PARAM matched by PATTERN according to OP, where OP
+ can have one of 4 values:
+ RP_LONG_LEFT remove longest matching portion at start of PARAM
+ RP_SHORT_LEFT remove shortest matching portion at start of PARAM
+ RP_LONG_RIGHT remove longest matching portion at end of PARAM
+ RP_SHORT_RIGHT remove shortest matching portion at end of PARAM
+*/
+
+#define RP_LONG_LEFT 1
+#define RP_SHORT_LEFT 2
+#define RP_LONG_RIGHT 3
+#define RP_SHORT_RIGHT 4
+
+static char *
+remove_upattern (param, pattern, op)
+ char *param, *pattern;
+ int op;
+{
+ register int len;
+ register char *end;
+ register char *p, *ret, c;
+
+ len = STRLEN (param);
+ end = param + len;
+
+ switch (op)
+ {
+ case RP_LONG_LEFT: /* remove longest match at start */
+ for (p = end; p >= param; p--)
+ {
+ c = *p; *p = '\0';
+ if (strmatch (pattern, param, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ *p = c;
+ return (savestring (p));
+ }
+ *p = c;
+
+ }
+ break;
+
+ case RP_SHORT_LEFT: /* remove shortest match at start */
+ for (p = param; p <= end; p++)
+ {
+ c = *p; *p = '\0';
+ if (strmatch (pattern, param, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ *p = c;
+ return (savestring (p));
+ }
+ *p = c;
+ }
+ break;
+
+ case RP_LONG_RIGHT: /* remove longest match at end */
+ for (p = param; p <= end; p++)
+ {
+ if (strmatch (pattern, p, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ c = *p; *p = '\0';
+ ret = savestring (param);
+ *p = c;
+ return (ret);
+ }
+ }
+ break;
+
+ case RP_SHORT_RIGHT: /* remove shortest match at end */
+ for (p = end; p >= param; p--)
+ {
+ if (strmatch (pattern, p, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ c = *p; *p = '\0';
+ ret = savestring (param);
+ *p = c;
+ return (ret);
+ }
+ }
+ break;
+ }
+
+ return (savestring (param)); /* no match, return original string */
+}
+
+#if defined (HANDLE_MULTIBYTE)
+static wchar_t *
+remove_wpattern (wparam, wstrlen, wpattern, op)
+ wchar_t *wparam;
+ size_t wstrlen;
+ wchar_t *wpattern;
+ int op;
+{
+ wchar_t wc, *ret;
+ int n;
+
+ switch (op)
+ {
+ case RP_LONG_LEFT: /* remove longest match at start */
+ for (n = wstrlen; n >= 0; n--)
+ {
+ wc = wparam[n]; wparam[n] = L'\0';
+ if (wcsmatch (wpattern, wparam, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ wparam[n] = wc;
+ return (wcsdup (wparam + n));
+ }
+ wparam[n] = wc;
+ }
+ break;
+
+ case RP_SHORT_LEFT: /* remove shortest match at start */
+ for (n = 0; n <= wstrlen; n++)
+ {
+ wc = wparam[n]; wparam[n] = L'\0';
+ if (wcsmatch (wpattern, wparam, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ wparam[n] = wc;
+ return (wcsdup (wparam + n));
+ }
+ wparam[n] = wc;
+ }
+ break;
+
+ case RP_LONG_RIGHT: /* remove longest match at end */
+ for (n = 0; n <= wstrlen; n++)
+ {
+ if (wcsmatch (wpattern, wparam + n, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ wc = wparam[n]; wparam[n] = L'\0';
+ ret = wcsdup (wparam);
+ wparam[n] = wc;
+ return (ret);
+ }
+ }
+ break;
+
+ case RP_SHORT_RIGHT: /* remove shortest match at end */
+ for (n = wstrlen; n >= 0; n--)
+ {
+ if (wcsmatch (wpattern, wparam + n, FNMATCH_EXTFLAG) != FNM_NOMATCH)
+ {
+ wc = wparam[n]; wparam[n] = L'\0';
+ ret = wcsdup (wparam);
+ wparam[n] = wc;
+ return (ret);
+ }
+ }
+ break;
+ }
+
+ return (wcsdup (wparam)); /* no match, return original string */
+}
+#endif /* HANDLE_MULTIBYTE */
+
+static char *
+remove_pattern (param, pattern, op)
+ char *param, *pattern;
+ int op;
+{
+ if (param == NULL)
+ return (param);
+ if (*param == '\0' || pattern == NULL || *pattern == '\0') /* minor optimization */
+ return (savestring (param));
+
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1)
+ {
+ wchar_t *ret, *oret;
+ size_t n;
+ wchar_t *wparam, *wpattern;
+ mbstate_t ps;
+ char *xret;
+
+ n = xdupmbstowcs (&wpattern, NULL, pattern);
+ if (n == (size_t)-1)
+ return (remove_upattern (param, pattern, op));
+ n = xdupmbstowcs (&wparam, NULL, param);
+ if (n == (size_t)-1)
+ {
+ free (wpattern);
+ return (remove_upattern (param, pattern, op));
+ }
+ oret = ret = remove_wpattern (wparam, n, wpattern, op);
+
+ free (wparam);
+ free (wpattern);
+
+ n = strlen (param);
+ xret = (char *)xmalloc (n + 1);
+ memset (&ps, '\0', sizeof (mbstate_t));
+ n = wcsrtombs (xret, (const wchar_t **)&ret, n, &ps);
+ xret[n] = '\0'; /* just to make sure */
+ free (oret);
+ return xret;
+ }
+ else
+#endif
+ return (remove_upattern (param, pattern, op));
+}
+
+/* Return 1 of the first character of STRING could match the first
+ character of pattern PAT. Used to avoid n2 calls to strmatch(). */
+static int
+match_pattern_char (pat, string)
+ char *pat, *string;
+{
+ char c;
+
+ if (*string == 0)
+ return (0);
+
+ switch (c = *pat++)
+ {
+ default:
+ return (*string == c);
+ case '\\':
+ return (*string == *pat);
+ case '?':
+ return (*pat == LPAREN ? 1 : (*string != '\0'));
+ case '*':
+ return (1);
+ case '+':
+ case '!':
+ case '@':
+ return (*pat == LPAREN ? 1 : (*string == c));
+ case '[':
+ return (*string != '\0');
+ }
+}
+
+/* Match PAT anywhere in STRING and return the match boundaries.
+ This returns 1 in case of a successful match, 0 otherwise. SP
+ and EP are pointers into the string where the match begins and
+ ends, respectively. MTYPE controls what kind of match is attempted.
+ MATCH_BEG and MATCH_END anchor the match at the beginning and end
+ of the string, respectively. The longest match is returned. */
+static int
+match_upattern (string, pat, mtype, sp, ep)
+ char *string, *pat;
+ int mtype;
+ char **sp, **ep;
+{
+ int c, len;
+ register char *p, *p1, *npat;
+ char *end;
+
+ /* If the pattern doesn't match anywhere in the string, go ahead and
+ short-circuit right away. A minor optimization, saves a bunch of
+ unnecessary calls to strmatch (up to N calls for a string of N
+ characters) if the match is unsuccessful. To preserve the semantics
+ of the substring matches below, we make sure that the pattern has
+ `*' as first and last character, making a new pattern if necessary. */
+ /* XXX - check this later if I ever implement `**' with special meaning,
+ since this will potentially result in `**' at the beginning or end */
+ len = STRLEN (pat);
+ if (pat[0] != '*' || (pat[0] == '*' && pat[1] == LPAREN && extended_glob) || pat[len - 1] != '*')
+ {
+ p = npat = (char *)xmalloc (len + 3);
+ p1 = pat;
+ if (*p1 != '*' || (*p1 == '*' && p1[1] == LPAREN && extended_glob))
+ *p++ = '*';
+ while (*p1)
+ *p++ = *p1++;
+ if (p1[-1] != '*' || p[-2] == '\\')
+ *p++ = '*';
+ *p = '\0';
+ }
+ else
+ npat = pat;
+ c = strmatch (npat, string, FNMATCH_EXTFLAG);
+ if (npat != pat)
+ free (npat);
+ if (c == FNM_NOMATCH)
+ return (0);
+
+ len = STRLEN (string);
+ end = string + len;
+
+ switch (mtype)
+ {
+ case MATCH_ANY:
+ for (p = string; p <= end; p++)
+ {
+ if (match_pattern_char (pat, p))
+ {
+ for (p1 = end; p1 >= p; p1--)
+ {
+ c = *p1; *p1 = '\0';
+ if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0)
+ {
+ *p1 = c;
+ *sp = p;
+ *ep = p1;
+ return 1;
+ }
+ *p1 = c;
+ }
+ }
+ }
+
+ return (0);
+
+ case MATCH_BEG:
+ if (match_pattern_char (pat, string) == 0)
+ return (0);
+
+ for (p = end; p >= string; p--)
+ {
+ c = *p; *p = '\0';
+ if (strmatch (pat, string, FNMATCH_EXTFLAG) == 0)
+ {
+ *p = c;
+ *sp = string;
+ *ep = p;
+ return 1;
+ }
+ *p = c;
+ }
+
+ return (0);
+
+ case MATCH_END:
+ for (p = string; p <= end; p++)
+ {
+ if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0)
+ {
+ *sp = p;
+ *ep = end;
+ return 1;
+ }
+
+ }
+
+ return (0);
+ }
+
+ return (0);
+}
+
+#if defined (HANDLE_MULTIBYTE)
+/* Return 1 of the first character of WSTRING could match the first
+ character of pattern WPAT. Wide character version. */
+static int
+match_pattern_wchar (wpat, wstring)
+ wchar_t *wpat, *wstring;
+{
+ wchar_t wc;
+
+ if (*wstring == 0)
+ return (0);
+
+ switch (wc = *wpat++)
+ {
+ default:
+ return (*wstring == wc);
+ case L'\\':
+ return (*wstring == *wpat);
+ case L'?':
+ return (*wpat == LPAREN ? 1 : (*wstring != L'\0'));
+ case L'*':
+ return (1);
+ case L'+':
+ case L'!':
+ case L'@':
+ return (*wpat == LPAREN ? 1 : (*wstring == wc));
+ case L'[':
+ return (*wstring != L'\0');
+ }
+}
+
+/* Match WPAT anywhere in WSTRING and return the match boundaries.
+ This returns 1 in case of a successful match, 0 otherwise. Wide
+ character version. */
+static int
+match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep)
+ wchar_t *wstring;
+ char **indices;
+ size_t wstrlen;
+ wchar_t *wpat;
+ int mtype;
+ char **sp, **ep;
+{
+ wchar_t wc, *wp, *nwpat, *wp1;
+ int len;
+#if 0
+ size_t n, n1; /* Apple's gcc seems to miscompile this badly */
+#else
+ int n, n1;
+#endif
+
+ /* If the pattern doesn't match anywhere in the string, go ahead and
+ short-circuit right away. A minor optimization, saves a bunch of
+ unnecessary calls to strmatch (up to N calls for a string of N
+ characters) if the match is unsuccessful. To preserve the semantics
+ of the substring matches below, we make sure that the pattern has
+ `*' as first and last character, making a new pattern if necessary. */
+ /* XXX - check this later if I ever implement `**' with special meaning,
+ since this will potentially result in `**' at the beginning or end */
+ len = wcslen (wpat);
+ if (wpat[0] != L'*' || (wpat[0] == L'*' && wpat[1] == WLPAREN && extended_glob) || wpat[len - 1] != L'*')
+ {
+ wp = nwpat = (wchar_t *)xmalloc ((len + 3) * sizeof (wchar_t));
+ wp1 = wpat;
+ if (*wp1 != L'*' || (*wp1 == '*' && wp1[1] == WLPAREN && extended_glob))
+ *wp++ = L'*';
+ while (*wp1 != L'\0')
+ *wp++ = *wp1++;
+ if (wp1[-1] != L'*' || wp1[-2] == L'\\')
+ *wp++ = L'*';
+ *wp = '\0';
+ }
+ else
+ nwpat = wpat;
+ len = wcsmatch (nwpat, wstring, FNMATCH_EXTFLAG);
+ if (nwpat != wpat)
+ free (nwpat);
+ if (len == FNM_NOMATCH)
+ return (0);
+
+ switch (mtype)
+ {
+ case MATCH_ANY:
+ for (n = 0; n <= wstrlen; n++)
+ {
+ if (match_pattern_wchar (wpat, wstring + n))
+ {
+ for (n1 = wstrlen; n1 >= n; n1--)
+ {
+ wc = wstring[n1]; wstring[n1] = L'\0';
+ if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0)
+ {
+ wstring[n1] = wc;
+ *sp = indices[n];
+ *ep = indices[n1];
+ return 1;
+ }
+ wstring[n1] = wc;
+ }
+ }
+ }
+
+ return (0);
+
+ case MATCH_BEG:
+ if (match_pattern_wchar (wpat, wstring) == 0)
+ return (0);
+
+ for (n = wstrlen; n >= 0; n--)
+ {
+ wc = wstring[n]; wstring[n] = L'\0';
+ if (wcsmatch (wpat, wstring, FNMATCH_EXTFLAG) == 0)
+ {
+ wstring[n] = wc;
+ *sp = indices[0];
+ *ep = indices[n];
+ return 1;
+ }
+ wstring[n] = wc;
+ }
+
+ return (0);
+
+ case MATCH_END:
+ for (n = 0; n <= wstrlen; n++)
+ {
+ if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0)
+ {
+ *sp = indices[n];
+ *ep = indices[wstrlen];
+ return 1;
+ }
+ }
+
+ return (0);
+ }
+
+ return (0);
+}
+#endif /* HANDLE_MULTIBYTE */
+
+static int
+match_pattern (string, pat, mtype, sp, ep)
+ char *string, *pat;
+ int mtype;
+ char **sp, **ep;
+{
+#if defined (HANDLE_MULTIBYTE)
+ int ret;
+ size_t n;
+ wchar_t *wstring, *wpat;
+ char **indices;
+#endif
+
+ if (string == 0 || *string == 0 || pat == 0 || *pat == 0)
+ return (0);
+
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1)
+ {
+ n = xdupmbstowcs (&wpat, NULL, pat);
+ if (n == (size_t)-1)
+ return (match_upattern (string, pat, mtype, sp, ep));
+ n = xdupmbstowcs (&wstring, &indices, string);
+ if (n == (size_t)-1)
+ {
+ free (wpat);
+ return (match_upattern (string, pat, mtype, sp, ep));
+ }
+ ret = match_wpattern (wstring, indices, n, wpat, mtype, sp, ep);
+
+ free (wpat);
+ free (wstring);
+ free (indices);
+
+ return (ret);
+ }
+ else
+#endif
+ return (match_upattern (string, pat, mtype, sp, ep));
+}
+
+static int
+getpatspec (c, value)
+ int c;
+ char *value;
+{
+ if (c == '#')
+ return ((*value == '#') ? RP_LONG_LEFT : RP_SHORT_LEFT);
+ else /* c == '%' */
+ return ((*value == '%') ? RP_LONG_RIGHT : RP_SHORT_RIGHT);
+}
+
+/* Posix.2 says that the WORD should be run through tilde expansion,
+ parameter expansion, command substitution and arithmetic expansion.
+ This leaves the result quoted, so quote_string_for_globbing () has
+ to be called to fix it up for strmatch (). If QUOTED is non-zero,
+ it means that the entire expression was enclosed in double quotes.
+ This means that quoting characters in the pattern do not make any
+ special pattern characters quoted. For example, the `*' in the
+ following retains its special meaning: "${foo#'*'}". */
+static char *
+getpattern (value, quoted, expandpat)
+ char *value;
+ int quoted, expandpat;
+{
+ char *pat, *tword;
+ WORD_LIST *l;
+#if 0
+ int i;
+#endif
+ /* There is a problem here: how to handle single or double quotes in the
+ pattern string when the whole expression is between double quotes?
+ POSIX.2 says that enclosing double quotes do not cause the pattern to
+ be quoted, but does that leave us a problem with @ and array[@] and their
+ expansions inside a pattern? */
+#if 0
+ if (expandpat && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *tword)
+ {
+ i = 0;
+ pat = string_extract_double_quoted (tword, &i, 1);
+ free (tword);
+ tword = pat;
+ }
+#endif
+
+ /* expand_string_for_rhs () leaves WORD quoted and does not perform
+ word splitting. */
+ l = *value ? expand_string_for_rhs (value,
+ (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? Q_PATQUOTE : quoted,
+ (int *)NULL, (int *)NULL)
+ : (WORD_LIST *)0;
+ pat = string_list (l);
+ dispose_words (l);
+ if (pat)
+ {
+ tword = quote_string_for_globbing (pat, QGLOB_CVTNULL);
+ free (pat);
+ pat = tword;
+ }
+ return (pat);
+}
+
+#if 0
+/* Handle removing a pattern from a string as a result of ${name%[%]value}
+ or ${name#[#]value}. */
+static char *
+variable_remove_pattern (value, pattern, patspec, quoted)
+ char *value, *pattern;
+ int patspec, quoted;
+{
+ char *tword;
+
+ tword = remove_pattern (value, pattern, patspec);
+
+ return (tword);
+}
+#endif
+
+static char *
+list_remove_pattern (list, pattern, patspec, itype, quoted)
+ WORD_LIST *list;
+ char *pattern;
+ int patspec, itype, quoted;
+{
+ WORD_LIST *new, *l;
+ WORD_DESC *w;
+ char *tword;
+
+ for (new = (WORD_LIST *)NULL, l = list; l; l = l->next)
+ {
+ tword = remove_pattern (l->word->word, pattern, patspec);
+ w = alloc_word_desc ();
+ w->word = tword ? tword : savestring ("");
+ new = make_word_list (w, new);
+ }
+
+ l = REVERSE_LIST (new, WORD_LIST *);
+ tword = string_list_pos_params (itype, l, quoted);
+ dispose_words (l);
+
+ return (tword);
+}
+
+static char *
+parameter_list_remove_pattern (itype, pattern, patspec, quoted)
+ int itype;
+ char *pattern;
+ int patspec, quoted;
+{
+ char *ret;
+ WORD_LIST *list;
+
+ list = list_rest_of_args ();
+ if (list == 0)
+ return ((char *)NULL);
+ ret = list_remove_pattern (list, pattern, patspec, itype, quoted);
+ dispose_words (list);
+ return (ret);
+}
+
+#if defined (ARRAY_VARS)
+static char *
+array_remove_pattern (var, pattern, patspec, varname, quoted)
+ SHELL_VAR *var;
+ char *pattern;
+ int patspec;
+ char *varname; /* so we can figure out how it's indexed */
+ int quoted;
+{
+ ARRAY *a;
+ HASH_TABLE *h;
+ int itype;
+ char *ret;
+ WORD_LIST *list;
+ SHELL_VAR *v;
+
+ /* compute itype from varname here */
+ v = array_variable_part (varname, &ret, 0);
+ itype = ret[0];
+
+ a = (v && array_p (v)) ? array_cell (v) : 0;
+ h = (v && assoc_p (v)) ? assoc_cell (v) : 0;
+
+ list = a ? array_to_word_list (a) : (h ? assoc_to_word_list (h) : 0);
+ if (list == 0)
+ return ((char *)NULL);
+ ret = list_remove_pattern (list, pattern, patspec, itype, quoted);
+ dispose_words (list);
+
+ return ret;
+}
+#endif /* ARRAY_VARS */
+
+static char *
+parameter_brace_remove_pattern (varname, value, patstr, rtype, quoted)
+ char *varname, *value, *patstr;
+ int rtype, quoted;
+{
+ int vtype, patspec, starsub;
+ char *temp1, *val, *pattern;
+ SHELL_VAR *v;
+
+ if (value == 0)
+ return ((char *)NULL);
+
+ this_command_name = varname;
+
+ vtype = get_var_and_type (varname, value, quoted, &v, &val);
+ if (vtype == -1)
+ return ((char *)NULL);
+
+ starsub = vtype & VT_STARSUB;
+ vtype &= ~VT_STARSUB;
+
+ patspec = getpatspec (rtype, patstr);
+ if (patspec == RP_LONG_LEFT || patspec == RP_LONG_RIGHT)
+ patstr++;
+
+ /* Need to pass getpattern newly-allocated memory in case of expansion --
+ the expansion code will free the passed string on an error. */
+ temp1 = savestring (patstr);
+ pattern = getpattern (temp1, quoted, 1);
+ free (temp1);
+
+ temp1 = (char *)NULL; /* shut up gcc */
+ switch (vtype)
+ {
+ case VT_VARIABLE:
+ case VT_ARRAYMEMBER:
+ temp1 = remove_pattern (val, pattern, patspec);
+ if (vtype == VT_VARIABLE)
+ FREE (val);
+ if (temp1)
+ {
+ val = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ ? quote_string (temp1)
+ : quote_escapes (temp1);
+ free (temp1);
+ temp1 = val;
+ }
+ break;
+#if defined (ARRAY_VARS)
+ case VT_ARRAYVAR:
+ temp1 = array_remove_pattern (v, pattern, patspec, varname, quoted);
+ if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
+ {
+ val = quote_escapes (temp1);
+ free (temp1);
+ temp1 = val;
+ }
+ break;
+#endif
+ case VT_POSPARMS:
+ temp1 = parameter_list_remove_pattern (varname[0], pattern, patspec, quoted);
+ if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
+ {
+ val = quote_escapes (temp1);
+ free (temp1);
+ temp1 = val;
+ }
+ break;
+ }
+
+ FREE (pattern);
+ return temp1;
+}
+
+/*******************************************
+ * *
+ * Functions to expand WORD_DESCs *
+ * *
+ *******************************************/
+
+/* Expand WORD, performing word splitting on the result. This does
+ parameter expansion, command substitution, arithmetic expansion,
+ word splitting, and quote removal. */
+
+WORD_LIST *
+expand_word (word, quoted)
+ WORD_DESC *word;
+ int quoted;
+{
+ WORD_LIST *result, *tresult;
+
+ tresult = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
+ result = word_list_split (tresult);
+ dispose_words (tresult);
+ return (result ? dequote_list (result) : result);
+}
+
+/* Expand WORD, but do not perform word splitting on the result. This
+ does parameter expansion, command substitution, arithmetic expansion,
+ and quote removal. */
+WORD_LIST *
+expand_word_unsplit (word, quoted)
+ WORD_DESC *word;
+ int quoted;
+{
+ WORD_LIST *result;
+
+ expand_no_split_dollar_star = 1;
+#if defined (HANDLE_MULTIBYTE)
+ if (ifs_firstc[0] == 0)
+#else
+ if (ifs_firstc == 0)
+#endif
+ word->flags |= W_NOSPLIT;
+ result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
+ expand_no_split_dollar_star = 0;
+
+ return (result ? dequote_list (result) : result);
+}
+
+/* Perform shell expansions on WORD, but do not perform word splitting or
+ quote removal on the result. Virtually identical to expand_word_unsplit;
+ could be combined if implementations don't diverge. */
+WORD_LIST *
+expand_word_leave_quoted (word, quoted)
+ WORD_DESC *word;
+ int quoted;
+{
+ WORD_LIST *result;
+
+ expand_no_split_dollar_star = 1;
+#if defined (HANDLE_MULTIBYTE)
+ if (ifs_firstc[0] == 0)
+#else
+ if (ifs_firstc == 0)
+#endif
+ word->flags |= W_NOSPLIT;
+ result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
+ expand_no_split_dollar_star = 0;
+
+ return result;
+}
+
+#if defined (PROCESS_SUBSTITUTION)
+
+/*****************************************************************/
+/* */
+/* Hacking Process Substitution */
+/* */
+/*****************************************************************/
+
+#if !defined (HAVE_DEV_FD)
+/* Named pipes must be removed explicitly with `unlink'. This keeps a list
+ of FIFOs the shell has open. unlink_fifo_list will walk the list and
+ unlink all of them. add_fifo_list adds the name of an open FIFO to the
+ list. NFIFO is a count of the number of FIFOs in the list. */
+#define FIFO_INCR 20
+
+struct temp_fifo {
+ char *file;
+ pid_t proc;
+};
+
+static struct temp_fifo *fifo_list = (struct temp_fifo *)NULL;
+static int nfifo;
+static int fifo_list_size;
+
+static void
+add_fifo_list (pathname)
+ char *pathname;
+{
+ if (nfifo >= fifo_list_size - 1)
+ {
+ fifo_list_size += FIFO_INCR;
+ fifo_list = (struct temp_fifo *)xrealloc (fifo_list,
+ fifo_list_size * sizeof (struct temp_fifo));
+ }
+
+ fifo_list[nfifo].file = savestring (pathname);
+ nfifo++;
+}
+
+void
+unlink_fifo_list ()
+{
+ int saved, i, j;
+
+ if (nfifo == 0)
+ return;
+
+ for (i = saved = 0; i < nfifo; i++)
+ {
+ if ((fifo_list[i].proc == -1) || (kill(fifo_list[i].proc, 0) == -1))
+ {
+ unlink (fifo_list[i].file);
+ free (fifo_list[i].file);
+ fifo_list[i].file = (char *)NULL;
+ fifo_list[i].proc = -1;
+ }
+ else
+ saved++;
+ }
+
+ /* If we didn't remove some of the FIFOs, compact the list. */
+ if (saved)
+ {
+ for (i = j = 0; i < nfifo; i++)
+ if (fifo_list[i].file)
+ {
+ fifo_list[j].file = fifo_list[i].file;
+ fifo_list[j].proc = fifo_list[i].proc;
+ j++;
+ }
+ nfifo = j;
+ }
+ else
+ nfifo = 0;
+}
+
+int
+fifos_pending ()
+{
+ return nfifo;
+}
+
+static char *
+make_named_pipe ()
+{
+ char *tname;
+
+ tname = sh_mktmpname ("sh-np", MT_USERANDOM|MT_USETMPDIR);
+ if (mkfifo (tname, 0600) < 0)
+ {
+ free (tname);
+ return ((char *)NULL);
+ }
+
+ add_fifo_list (tname);
+ return (tname);
+}
+
+#else /* HAVE_DEV_FD */
+
+/* DEV_FD_LIST is a bitmap of file descriptors attached to pipes the shell
+ has open to children. NFDS is a count of the number of bits currently
+ set in DEV_FD_LIST. TOTFDS is a count of the highest possible number
+ of open files. */
+static char *dev_fd_list = (char *)NULL;
+static int nfds;
+static int totfds; /* The highest possible number of open files. */
+
+static void
+add_fifo_list (fd)
+ int fd;
+{
+ if (!dev_fd_list || fd >= totfds)
+ {
+ int ofds;
+
+ ofds = totfds;
+ totfds = getdtablesize ();
+ if (totfds < 0 || totfds > 256)
+ totfds = 256;
+ if (fd >= totfds)
+ totfds = fd + 2;
+
+ dev_fd_list = (char *)xrealloc (dev_fd_list, totfds);
+ memset (dev_fd_list + ofds, '\0', totfds - ofds);
+ }
+
+ dev_fd_list[fd] = 1;
+ nfds++;
+}
+
+int
+fifos_pending ()
+{
+ return 0; /* used for cleanup; not needed with /dev/fd */
+}
+
+void
+unlink_fifo_list ()
+{
+ register int i;
+
+ if (nfds == 0)
+ return;
+
+ for (i = 0; nfds && i < totfds; i++)
+ if (dev_fd_list[i])
+ {
+ close (i);
+ dev_fd_list[i] = 0;
+ nfds--;
+ }
+
+ nfds = 0;
+}
+
+#if defined (NOTDEF)
+print_dev_fd_list ()
+{
+ register int i;
+
+ fprintf (stderr, "pid %ld: dev_fd_list:", (long)getpid ());
+ fflush (stderr);
+
+ for (i = 0; i < totfds; i++)
+ {
+ if (dev_fd_list[i])
+ fprintf (stderr, " %d", i);
+ }
+ fprintf (stderr, "\n");
+}
+#endif /* NOTDEF */
+
+static char *
+make_dev_fd_filename (fd)
+ int fd;
+{
+ char *ret, intbuf[INT_STRLEN_BOUND (int) + 1], *p;
+
+ ret = (char *)xmalloc (sizeof (DEV_FD_PREFIX) + 8);
+
+ strcpy (ret, DEV_FD_PREFIX);
+ p = inttostr (fd, intbuf, sizeof (intbuf));
+ strcpy (ret + sizeof (DEV_FD_PREFIX) - 1, p);
+
+ add_fifo_list (fd);
+ return (ret);
+}
+
+#endif /* HAVE_DEV_FD */
+
+/* Return a filename that will open a connection to the process defined by
+ executing STRING. HAVE_DEV_FD, if defined, means open a pipe and return
+ a filename in /dev/fd corresponding to a descriptor that is one of the
+ ends of the pipe. If not defined, we use named pipes on systems that have
+ them. Systems without /dev/fd and named pipes are out of luck.
+
+ OPEN_FOR_READ_IN_CHILD, if 1, means open the named pipe for reading or
+ use the read end of the pipe and dup that file descriptor to fd 0 in
+ the child. If OPEN_FOR_READ_IN_CHILD is 0, we open the named pipe for
+ writing or use the write end of the pipe in the child, and dup that
+ file descriptor to fd 1 in the child. The parent does the opposite. */
+
+static char *
+process_substitute (string, open_for_read_in_child)
+ char *string;
+ int open_for_read_in_child;
+{
+ char *pathname;
+ int fd, result;
+ pid_t old_pid, pid;
+#if defined (HAVE_DEV_FD)
+ int parent_pipe_fd, child_pipe_fd;
+ int fildes[2];
+#endif /* HAVE_DEV_FD */
+#if defined (JOB_CONTROL)
+ pid_t old_pipeline_pgrp;
+#endif
+
+ if (!string || !*string || wordexp_only)
+ return ((char *)NULL);
+
+#if !defined (HAVE_DEV_FD)
+ pathname = make_named_pipe ();
+#else /* HAVE_DEV_FD */
+ if (pipe (fildes) < 0)
+ {
+ sys_error (_("cannot make pipe for process substitution"));
+ return ((char *)NULL);
+ }
+ /* If OPEN_FOR_READ_IN_CHILD == 1, we want to use the write end of
+ the pipe in the parent, otherwise the read end. */
+ parent_pipe_fd = fildes[open_for_read_in_child];
+ child_pipe_fd = fildes[1 - open_for_read_in_child];
+ /* Move the parent end of the pipe to some high file descriptor, to
+ avoid clashes with FDs used by the script. */
+ parent_pipe_fd = move_to_high_fd (parent_pipe_fd, 1, 64);
+
+ pathname = make_dev_fd_filename (parent_pipe_fd);
+#endif /* HAVE_DEV_FD */
+
+ if (pathname == 0)
+ {
+ sys_error (_("cannot make pipe for process substitution"));
+ return ((char *)NULL);
+ }
+
+ old_pid = last_made_pid;
+
+#if defined (JOB_CONTROL)
+ old_pipeline_pgrp = pipeline_pgrp;
+ pipeline_pgrp = shell_pgrp;
+ save_pipeline (1);
+#endif /* JOB_CONTROL */
+
+ pid = make_child ((char *)NULL, 1);
+ if (pid == 0)
+ {
+ reset_terminating_signals (); /* XXX */
+ free_pushed_string_input ();
+ /* Cancel traps, in trap.c. */
+ restore_original_signals ();
+ setup_async_signals ();
+ subshell_environment |= SUBSHELL_COMSUB|SUBSHELL_PROCSUB;
+ }
+
+#if defined (JOB_CONTROL)
+ set_sigchld_handler ();
+ stop_making_children ();
+ /* XXX - should we only do this in the parent? (as in command subst) */
+ pipeline_pgrp = old_pipeline_pgrp;
+#endif /* JOB_CONTROL */
+
+ if (pid < 0)
+ {
+ sys_error (_("cannot make child for process substitution"));
+ free (pathname);
+#if defined (HAVE_DEV_FD)
+ close (parent_pipe_fd);
+ close (child_pipe_fd);
+#endif /* HAVE_DEV_FD */
+ return ((char *)NULL);
+ }
+
+ if (pid > 0)
+ {
+#if defined (JOB_CONTROL)
+ restore_pipeline (1);
+#endif
+
+#if !defined (HAVE_DEV_FD)
+ fifo_list[nfifo-1].proc = pid;
+#endif
+
+ last_made_pid = old_pid;
+
+#if defined (JOB_CONTROL) && defined (PGRP_PIPE)
+ close_pgrp_pipe ();
+#endif /* JOB_CONTROL && PGRP_PIPE */
+
+#if defined (HAVE_DEV_FD)
+ close (child_pipe_fd);
+#endif /* HAVE_DEV_FD */
+
+ return (pathname);
+ }
+
+ set_sigint_handler ();
+
+#if defined (JOB_CONTROL)
+ set_job_control (0);
+#endif /* JOB_CONTROL */
+
+#if !defined (HAVE_DEV_FD)
+ /* Open the named pipe in the child. */
+ fd = open (pathname, open_for_read_in_child ? O_RDONLY|O_NONBLOCK : O_WRONLY);
+ if (fd < 0)
+ {
+ /* Two separate strings for ease of translation. */
+ if (open_for_read_in_child)
+ sys_error (_("cannot open named pipe %s for reading"), pathname);
+ else
+ sys_error (_("cannot open named pipe %s for writing"), pathname);
+
+ exit (127);
+ }
+ if (open_for_read_in_child)
+ {
+ if (sh_unset_nodelay_mode (fd) < 0)
+ {
+ sys_error (_("cannot reset nodelay mode for fd %d"), fd);
+ exit (127);
+ }
+ }
+#else /* HAVE_DEV_FD */
+ fd = child_pipe_fd;
+#endif /* HAVE_DEV_FD */
+
+ if (dup2 (fd, open_for_read_in_child ? 0 : 1) < 0)
+ {
+ sys_error (_("cannot duplicate named pipe %s as fd %d"), pathname,
+ open_for_read_in_child ? 0 : 1);
+ exit (127);
+ }
+
+ if (fd != (open_for_read_in_child ? 0 : 1))
+ close (fd);
+
+ /* Need to close any files that this process has open to pipes inherited
+ from its parent. */
+ if (current_fds_to_close)
+ {
+ close_fd_bitmap (current_fds_to_close);
+ current_fds_to_close = (struct fd_bitmap *)NULL;
+ }
+
+#if defined (HAVE_DEV_FD)
+ /* Make sure we close the parent's end of the pipe and clear the slot
+ in the fd list so it is not closed later, if reallocated by, for
+ instance, pipe(2). */
+ close (parent_pipe_fd);
+ dev_fd_list[parent_pipe_fd] = 0;
+#endif /* HAVE_DEV_FD */
+
+ result = parse_and_execute (string, "process substitution", (SEVAL_NONINT|SEVAL_NOHIST));
+
+#if !defined (HAVE_DEV_FD)
+ /* Make sure we close the named pipe in the child before we exit. */
+ close (open_for_read_in_child ? 0 : 1);
+#endif /* !HAVE_DEV_FD */
+
+ exit (result);
+ /*NOTREACHED*/
+}
+#endif /* PROCESS_SUBSTITUTION */
+
+/***********************************/
+/* */
+/* Command Substitution */
+/* */
+/***********************************/
+
+static char *
+read_comsub (fd, quoted, rflag)
+ int fd, quoted;
+ int *rflag;
+{
+ char *istring, buf[128], *bufp, *s;
+ int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul;
+ ssize_t bufn;
+
+ istring = (char *)NULL;
+ istring_index = istring_size = bufn = tflag = 0;
+
+ for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++)
+ skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL;
+
+#ifdef __CYGWIN__
+ setmode (fd, O_TEXT); /* we don't want CR/LF, we want Unix-style */
+#endif
+
+ /* Read the output of the command through the pipe. This may need to be
+ changed to understand multibyte characters in the future. */
+ while (1)
+ {
+ if (fd < 0)
+ break;
+ if (--bufn <= 0)
+ {
+ bufn = zread (fd, buf, sizeof (buf));
+ if (bufn <= 0)
+ break;
+ bufp = buf;
+ }
+ c = *bufp++;
+
+ if (c == 0)
+ {
+#if 0
+ internal_warning ("read_comsub: ignored null byte in input");
+#endif
+ continue;
+ }
+
+ /* Add the character to ISTRING, possibly after resizing it. */
+ RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
+
+ /* This is essentially quote_string inline */
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */)
+ istring[istring_index++] = CTLESC;
+ /* Escape CTLESC and CTLNUL in the output to protect those characters
+ from the rest of the word expansions (word splitting and globbing.)
+ This is essentially quote_escapes inline. */
+ else if (skip_ctlesc == 0 && c == CTLESC)
+ {
+ tflag |= W_HASCTLESC;
+ istring[istring_index++] = CTLESC;
+ }
+ else if ((skip_ctlnul == 0 && c == CTLNUL) || (c == ' ' && (ifs_value && *ifs_value == 0)))
+ istring[istring_index++] = CTLESC;
+
+ istring[istring_index++] = c;
+
+#if 0
+#if defined (__CYGWIN__)
+ if (c == '\n' && istring_index > 1 && istring[istring_index - 2] == '\r')
+ {
+ istring_index--;
+ istring[istring_index - 1] = '\n';
+ }
+#endif
+#endif
+ }
+
+ if (istring)
+ istring[istring_index] = '\0';
+
+ /* If we read no output, just return now and save ourselves some
+ trouble. */
+ if (istring_index == 0)
+ {
+ FREE (istring);
+ if (rflag)
+ *rflag = tflag;
+ return (char *)NULL;
+ }
+
+ /* Strip trailing newlines from the output of the command. */
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ {
+ while (istring_index > 0)
+ {
+ if (istring[istring_index - 1] == '\n')
+ {
+ --istring_index;
+
+ /* If the newline was quoted, remove the quoting char. */
+ if (istring[istring_index - 1] == CTLESC)
+ --istring_index;
+ }
+ else
+ break;
+ }
+ istring[istring_index] = '\0';
+ }
+ else
+ strip_trailing (istring, istring_index - 1, 1);
+
+ if (rflag)
+ *rflag = tflag;
+ return istring;
+}
+
+/* Perform command substitution on STRING. This returns a WORD_DESC * with the
+ contained string possibly quoted. */
+WORD_DESC *
+command_substitute (string, quoted)
+ char *string;
+ int quoted;
+{
+ pid_t pid, old_pid, old_pipeline_pgrp, old_async_pid;
+ char *istring;
+ int result, fildes[2], function_value, pflags, rc, tflag;
+ WORD_DESC *ret;
+
+ istring = (char *)NULL;
+
+ /* Don't fork () if there is no need to. In the case of no command to
+ run, just return NULL. */
+ if (!string || !*string || (string[0] == '\n' && !string[1]))
+ return ((WORD_DESC *)NULL);
+
+ if (wordexp_only && read_but_dont_execute)
+ {
+ last_command_exit_value = EX_WEXPCOMSUB;
+ jump_to_top_level (EXITPROG);
+ }
+
+ /* We're making the assumption here that the command substitution will
+ eventually run a command from the file system. Since we'll run
+ maybe_make_export_env in this subshell before executing that command,
+ the parent shell and any other shells it starts will have to remake
+ the environment. If we make it before we fork, other shells won't
+ have to. Don't bother if we have any temporary variable assignments,
+ though, because the export environment will be remade after this
+ command completes anyway, but do it if all the words to be expanded
+ are variable assignments. */
+ if (subst_assign_varlist == 0 || garglist == 0)
+ maybe_make_export_env (); /* XXX */
+
+ /* Flags to pass to parse_and_execute() */
+ pflags = interactive ? SEVAL_RESETLINE : 0;
+
+ /* Pipe the output of executing STRING into the current shell. */
+ if (pipe (fildes) < 0)
+ {
+ sys_error (_("cannot make pipe for command substitution"));
+ goto error_exit;
+ }
+
+ old_pid = last_made_pid;
+#if defined (JOB_CONTROL)
+ old_pipeline_pgrp = pipeline_pgrp;
+ /* Don't reset the pipeline pgrp if we're already a subshell in a pipeline. */
+ if ((subshell_environment & SUBSHELL_PIPE) == 0)
+ pipeline_pgrp = shell_pgrp;
+ cleanup_the_pipeline ();
+#endif /* JOB_CONTROL */
+
+ old_async_pid = last_asynchronous_pid;
+ pid = make_child ((char *)NULL, subshell_environment&SUBSHELL_ASYNC);
+ last_asynchronous_pid = old_async_pid;
+
+ if (pid == 0)
+ /* Reset the signal handlers in the child, but don't free the
+ trap strings. */
+ reset_signal_handlers ();
+
+#if defined (JOB_CONTROL)
+ /* XXX DO THIS ONLY IN PARENT ? XXX */
+ set_sigchld_handler ();
+ stop_making_children ();
+ if (pid != 0)
+ pipeline_pgrp = old_pipeline_pgrp;
+#else
+ stop_making_children ();
+#endif /* JOB_CONTROL */
+
+ if (pid < 0)
+ {
+ sys_error (_("cannot make child for command substitution"));
+ error_exit:
+
+ FREE (istring);
+ close (fildes[0]);
+ close (fildes[1]);
+ return ((WORD_DESC *)NULL);
+ }
+
+ if (pid == 0)
+ {
+ set_sigint_handler (); /* XXX */
+
+ free_pushed_string_input ();
+
+ if (dup2 (fildes[1], 1) < 0)
+ {
+ sys_error (_("command_substitute: cannot duplicate pipe as fd 1"));
+ exit (EXECUTION_FAILURE);
+ }
+
+ /* If standard output is closed in the parent shell
+ (such as after `exec >&-'), file descriptor 1 will be
+ the lowest available file descriptor, and end up in
+ fildes[0]. This can happen for stdin and stderr as well,
+ but stdout is more important -- it will cause no output
+ to be generated from this command. */
+ if ((fildes[1] != fileno (stdin)) &&
+ (fildes[1] != fileno (stdout)) &&
+ (fildes[1] != fileno (stderr)))
+ close (fildes[1]);
+
+ if ((fildes[0] != fileno (stdin)) &&
+ (fildes[0] != fileno (stdout)) &&
+ (fildes[0] != fileno (stderr)))
+ close (fildes[0]);
+
+ /* The currently executing shell is not interactive. */
+ interactive = 0;
+
+ /* This is a subshell environment. */
+ subshell_environment |= SUBSHELL_COMSUB;
+
+ /* When not in POSIX mode, command substitution does not inherit
+ the -e flag. */
+ if (posixly_correct == 0)
+ exit_immediately_on_error = 0;
+
+ remove_quoted_escapes (string);
+
+ startup_state = 2; /* see if we can avoid a fork */
+ /* Give command substitution a place to jump back to on failure,
+ so we don't go back up to main (). */
+ result = setjmp (top_level);
+
+ /* If we're running a command substitution inside a shell function,
+ trap `return' so we don't return from the function in the subshell
+ and go off to never-never land. */
+ if (result == 0 && return_catch_flag)
+ function_value = setjmp (return_catch);
+ else
+ function_value = 0;
+
+ if (result == ERREXIT)
+ rc = last_command_exit_value;
+ else if (result == EXITPROG)
+ rc = last_command_exit_value;
+ else if (result)
+ rc = EXECUTION_FAILURE;
+ else if (function_value)
+ rc = return_catch_value;
+ else
+ {
+ subshell_level++;
+ rc = parse_and_execute (string, "command substitution", pflags|SEVAL_NOHIST);
+ subshell_level--;
+ }
+
+ last_command_exit_value = rc;
+ rc = run_exit_trap ();
+#if defined (PROCESS_SUBSTITUTION)
+ unlink_fifo_list ();
+#endif
+ exit (rc);
+ }
+ else
+ {
+#if defined (JOB_CONTROL) && defined (PGRP_PIPE)
+ close_pgrp_pipe ();
+#endif /* JOB_CONTROL && PGRP_PIPE */
+
+ close (fildes[1]);
+
+ tflag = 0;
+ istring = read_comsub (fildes[0], quoted, &tflag);
+
+ close (fildes[0]);
+
+ current_command_subst_pid = pid;
+ last_command_exit_value = wait_for (pid);
+ last_command_subst_pid = pid;
+ last_made_pid = old_pid;
+
+#if defined (JOB_CONTROL)
+ /* If last_command_exit_value > 128, then the substituted command
+ was terminated by a signal. If that signal was SIGINT, then send
+ SIGINT to ourselves. This will break out of loops, for instance. */
+ if (last_command_exit_value == (128 + SIGINT) && last_command_exit_signal == SIGINT)
+ kill (getpid (), SIGINT);
+
+ /* wait_for gives the terminal back to shell_pgrp. If some other
+ process group should have it, give it away to that group here.
+ pipeline_pgrp is non-zero only while we are constructing a
+ pipline, so what we are concerned about is whether or not that
+ pipeline was started in the background. A pipeline started in
+ the background should never get the tty back here. */
+#if 0
+ if (interactive && pipeline_pgrp != (pid_t)0 && pipeline_pgrp != last_asynchronous_pid)
+#else
+ if (interactive && pipeline_pgrp != (pid_t)0 && (subshell_environment & SUBSHELL_ASYNC) == 0)
+#endif
+ give_terminal_to (pipeline_pgrp, 0);
+#endif /* JOB_CONTROL */
+
+ ret = alloc_word_desc ();
+ ret->word = istring;
+ ret->flags = tflag;
+
+ return ret;
+ }
+}
+
+/********************************************************
+ * *
+ * Utility functions for parameter expansion *
+ * *
+ ********************************************************/
+
+#if defined (ARRAY_VARS)
+
+static arrayind_t
+array_length_reference (s)
+ char *s;
+{
+ int len;
+ arrayind_t ind;
+ char *akey;
+ char *t, c;
+ ARRAY *array;
+ SHELL_VAR *var;
+
+ var = array_variable_part (s, &t, &len);
+
+ /* If unbound variables should generate an error, report one and return
+ failure. */
+ if ((var == 0 || (assoc_p (var) == 0 && array_p (var) == 0)) && unbound_vars_is_error)
+ {
+ c = *--t;
+ *t = '\0';
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (s);
+ *t = c;
+ return (-1);
+ }
+ else if (var == 0)
+ return 0;
+
+ /* We support a couple of expansions for variables that are not arrays.
+ We'll return the length of the value for v[0], and 1 for v[@] or
+ v[*]. Return 0 for everything else. */
+
+ array = array_p (var) ? array_cell (var) : (ARRAY *)NULL;
+
+ if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']')
+ {
+ if (assoc_p (var))
+ return (assoc_num_elements (assoc_cell (var)));
+ else if (array_p (var))
+ return (array_num_elements (array));
+ else
+ return 1;
+ }
+
+ if (assoc_p (var))
+ {
+ t[len - 1] = '\0';
+ akey = expand_assignment_string_to_string (t, 0); /* [ */
+ t[len - 1] = ']';
+ if (akey == 0 || *akey == 0)
+ {
+ err_badarraysub (t);
+ return (-1);
+ }
+ t = assoc_reference (assoc_cell (var), akey);
+ }
+ else
+ {
+ ind = array_expand_index (t, len);
+ if (ind < 0)
+ {
+ err_badarraysub (t);
+ return (-1);
+ }
+ if (array_p (var))
+ t = array_reference (array, ind);
+ else
+ t = (ind == 0) ? value_cell (var) : (char *)NULL;
+ }
+
+ len = MB_STRLEN (t);
+ return (len);
+}
+#endif /* ARRAY_VARS */
+
+static int
+valid_brace_expansion_word (name, var_is_special)
+ char *name;
+ int var_is_special;
+{
+ if (DIGIT (*name) && all_digits (name))
+ return 1;
+ else if (var_is_special)
+ return 1;
+#if defined (ARRAY_VARS)
+ else if (valid_array_reference (name))
+ return 1;
+#endif /* ARRAY_VARS */
+ else if (legal_identifier (name))
+ return 1;
+ else
+ return 0;
+}
+
+static int
+chk_atstar (name, quoted, quoted_dollar_atp, contains_dollar_at)
+ char *name;
+ int quoted;
+ int *quoted_dollar_atp, *contains_dollar_at;
+{
+ char *temp1;
+
+ if (name == 0)
+ {
+ if (quoted_dollar_atp)
+ *quoted_dollar_atp = 0;
+ if (contains_dollar_at)
+ *contains_dollar_at = 0;
+ return 0;
+ }
+
+ /* check for $@ and $* */
+ if (name[0] == '@' && name[1] == 0)
+ {
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 1;
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ return 1;
+ }
+ else if (name[0] == '*' && name[1] == '\0' && quoted == 0)
+ {
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ return 1;
+ }
+
+ /* Now check for ${array[@]} and ${array[*]} */
+#if defined (ARRAY_VARS)
+ else if (valid_array_reference (name))
+ {
+ temp1 = mbschr (name, '[');
+ if (temp1 && temp1[1] == '@' && temp1[2] == ']')
+ {
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 1;
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ return 1;
+ } /* [ */
+ /* ${array[*]}, when unquoted, should be treated like ${array[@]},
+ which should result in separate words even when IFS is unset. */
+ if (temp1 && temp1[1] == '*' && temp1[2] == ']' && quoted == 0)
+ {
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ return 1;
+ }
+ }
+#endif
+ return 0;
+}
+
+/* Parameter expand NAME, and return a new string which is the expansion,
+ or NULL if there was no expansion.
+ VAR_IS_SPECIAL is non-zero if NAME is one of the special variables in
+ the shell, e.g., "@", "$", "*", etc. QUOTED, if non-zero, means that
+ NAME was found inside of a double-quoted expression. */
+static WORD_DESC *
+parameter_brace_expand_word (name, var_is_special, quoted, pflags)
+ char *name;
+ int var_is_special, quoted, pflags;
+{
+ WORD_DESC *ret;
+ char *temp, *tt;
+ intmax_t arg_index;
+ SHELL_VAR *var;
+ int atype, rflags;
+
+ ret = 0;
+ temp = 0;
+ rflags = 0;
+
+ /* Handle multiple digit arguments, as in ${11}. */
+ if (legal_number (name, &arg_index))
+ {
+ tt = get_dollar_var_value (arg_index);
+ if (tt)
+ temp = (*tt && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+ ? quote_string (tt)
+ : quote_escapes (tt);
+ else
+ temp = (char *)NULL;
+ FREE (tt);
+ }
+ else if (var_is_special) /* ${@} */
+ {
+ int sindex;
+ tt = (char *)xmalloc (2 + strlen (name));
+ tt[sindex = 0] = '$';
+ strcpy (tt + 1, name);
+
+ ret = param_expand (tt, &sindex, quoted, (int *)NULL, (int *)NULL,
+ (int *)NULL, (int *)NULL, pflags);
+ free (tt);
+ }
+#if defined (ARRAY_VARS)
+ else if (valid_array_reference (name))
+ {
+ temp = array_value (name, quoted, &atype);
+ if (atype == 0 && temp)
+ temp = (*temp && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+ ? quote_string (temp)
+ : quote_escapes (temp);
+ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+ rflags |= W_HASQUOTEDNULL;
+ }
+#endif
+ else if (var = find_variable (name))
+ {
+ if (var_isset (var) && invisible_p (var) == 0)
+ {
+#if defined (ARRAY_VARS)
+ if (assoc_p (var))
+ temp = assoc_reference (assoc_cell (var), "0");
+ else if (array_p (var))
+ temp = array_reference (array_cell (var), 0);
+ else
+ temp = value_cell (var);
+#else
+ temp = value_cell (var);
+#endif
+
+ if (temp)
+ temp = (*temp && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+ ? quote_string (temp)
+ : quote_escapes (temp);
+ }
+ else
+ temp = (char *)NULL;
+ }
+ else
+ temp = (char *)NULL;
+
+ if (ret == 0)
+ {
+ ret = alloc_word_desc ();
+ ret->word = temp;
+ ret->flags |= rflags;
+ }
+ return ret;
+}
+
+/* Expand an indirect reference to a variable: ${!NAME} expands to the
+ value of the variable whose name is the value of NAME. */
+static WORD_DESC *
+parameter_brace_expand_indir (name, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at)
+ char *name;
+ int var_is_special, quoted;
+ int *quoted_dollar_atp, *contains_dollar_at;
+{
+ char *temp, *t;
+ WORD_DESC *w;
+
+ w = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND);
+ t = w->word;
+ /* Have to dequote here if necessary */
+ if (t)
+ {
+ temp = (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
+ ? dequote_string (t)
+ : dequote_escapes (t);
+ free (t);
+ t = temp;
+ }
+ dispose_word_desc (w);
+
+ chk_atstar (t, quoted, quoted_dollar_atp, contains_dollar_at);
+ if (t == 0)
+ return (WORD_DESC *)NULL;
+
+ w = parameter_brace_expand_word (t, SPECIAL_VAR(t, 0), quoted, 0);
+ free (t);
+
+ return w;
+}
+
+/* Expand the right side of a parameter expansion of the form ${NAMEcVALUE},
+ depending on the value of C, the separating character. C can be one of
+ "-", "+", or "=". QUOTED is true if the entire brace expression occurs
+ between double quotes. */
+static WORD_DESC *
+parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat)
+ char *name, *value;
+ int c, quoted, *qdollaratp, *hasdollarat;
+{
+ WORD_DESC *w;
+ WORD_LIST *l;
+ char *t, *t1, *temp;
+ int hasdol;
+
+ /* If the entire expression is between double quotes, we want to treat
+ the value as a double-quoted string, with the exception that we strip
+ embedded unescaped double quotes (for sh backwards compatibility). */
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *value)
+ {
+ hasdol = 0;
+ temp = string_extract_double_quoted (value, &hasdol, 1);
+ }
+ else
+ temp = value;
+
+ w = alloc_word_desc ();
+ hasdol = 0;
+ /* XXX was 0 not quoted */
+ l = *temp ? expand_string_for_rhs (temp, quoted, &hasdol, (int *)NULL)
+ : (WORD_LIST *)0;
+ if (hasdollarat)
+ *hasdollarat = hasdol || (l && l->next);
+ if (temp != value)
+ free (temp);
+ if (l)
+ {
+ /* The expansion of TEMP returned something. We need to treat things
+ slightly differently if HASDOL is non-zero. If we have "$@", the
+ individual words have already been quoted. We need to turn them
+ into a string with the words separated by the first character of
+ $IFS without any additional quoting, so string_list_dollar_at won't
+ do the right thing. We use string_list_dollar_star instead. */
+ temp = (hasdol || l->next) ? string_list_dollar_star (l) : string_list (l);
+
+ /* If l->next is not null, we know that TEMP contained "$@", since that
+ is the only expansion that creates more than one word. */
+ if (qdollaratp && ((hasdol && quoted) || l->next))
+ *qdollaratp = 1;
+ dispose_words (l);
+ }
+ else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && hasdol)
+ {
+ /* The brace expansion occurred between double quotes and there was
+ a $@ in TEMP. It does not matter if the $@ is quoted, as long as
+ it does not expand to anything. In this case, we want to return
+ a quoted empty string. */
+ temp = make_quoted_char ('\0');
+ w->flags |= W_HASQUOTEDNULL;
+ }
+ else
+ temp = (char *)NULL;
+
+ if (c == '-' || c == '+')
+ {
+ w->word = temp;
+ return w;
+ }
+
+ /* c == '=' */
+ t = temp ? savestring (temp) : savestring ("");
+ t1 = dequote_string (t);
+ free (t);
+#if defined (ARRAY_VARS)
+ if (valid_array_reference (name))
+ assign_array_element (name, t1, 0);
+ else
+#endif /* ARRAY_VARS */
+ bind_variable (name, t1, 0);
+ free (t1);
+
+ w->word = temp;
+ return w;
+}
+
+/* Deal with the right hand side of a ${name:?value} expansion in the case
+ that NAME is null or not set. If VALUE is non-null it is expanded and
+ used as the error message to print, otherwise a standard message is
+ printed. */
+static void
+parameter_brace_expand_error (name, value)
+ char *name, *value;
+{
+ WORD_LIST *l;
+ char *temp;
+
+ if (value && *value)
+ {
+ l = expand_string (value, 0);
+ temp = string_list (l);
+ report_error ("%s: %s", name, temp ? temp : ""); /* XXX was value not "" */
+ FREE (temp);
+ dispose_words (l);
+ }
+ else
+ report_error (_("%s: parameter null or not set"), name);
+
+ /* Free the data we have allocated during this expansion, since we
+ are about to longjmp out. */
+ free (name);
+ FREE (value);
+}
+
+/* Return 1 if NAME is something for which parameter_brace_expand_length is
+ OK to do. */
+static int
+valid_length_expression (name)
+ char *name;
+{
+ return (name[1] == '\0' || /* ${#} */
+ ((sh_syntaxtab[(unsigned char) name[1]] & CSPECVAR) && name[2] == '\0') || /* special param */
+ (DIGIT (name[1]) && all_digits (name + 1)) || /* ${#11} */
+#if defined (ARRAY_VARS)
+ valid_array_reference (name + 1) || /* ${#a[7]} */
+#endif
+ legal_identifier (name + 1)); /* ${#PS1} */
+}
+
+#if defined (HANDLE_MULTIBYTE)
+size_t
+mbstrlen (s)
+ const char *s;
+{
+ size_t clen, nc;
+ mbstate_t mbs, mbsbak;
+
+ nc = 0;
+ memset (&mbs, 0, sizeof (mbs));
+ mbsbak = mbs;
+ while ((clen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0)
+ {
+ if (MB_INVALIDCH(clen))
+ {
+ clen = 1; /* assume single byte */
+ mbs = mbsbak;
+ }
+
+ s += clen;
+ nc++;
+ mbsbak = mbs;
+ }
+ return nc;
+}
+#endif
+
+
+/* Handle the parameter brace expansion that requires us to return the
+ length of a parameter. */
+static intmax_t
+parameter_brace_expand_length (name)
+ char *name;
+{
+ char *t, *newname;
+ intmax_t number, arg_index;
+ WORD_LIST *list;
+#if defined (ARRAY_VARS)
+ SHELL_VAR *var;
+#endif
+
+ if (name[1] == '\0') /* ${#} */
+ number = number_of_args ();
+ else if ((name[1] == '@' || name[1] == '*') && name[2] == '\0') /* ${#@}, ${#*} */
+ number = number_of_args ();
+ else if ((sh_syntaxtab[(unsigned char) name[1]] & CSPECVAR) && name[2] == '\0')
+ {
+ /* Take the lengths of some of the shell's special parameters. */
+ switch (name[1])
+ {
+ case '-':
+ t = which_set_flags ();
+ break;
+ case '?':
+ t = itos (last_command_exit_value);
+ break;
+ case '$':
+ t = itos (dollar_dollar_pid);
+ break;
+ case '!':
+ if (last_asynchronous_pid == NO_PID)
+ t = (char *)NULL;
+ else
+ t = itos (last_asynchronous_pid);
+ break;
+ case '#':
+ t = itos (number_of_args ());
+ break;
+ }
+ number = STRLEN (t);
+ FREE (t);
+ }
+#if defined (ARRAY_VARS)
+ else if (valid_array_reference (name + 1))
+ number = array_length_reference (name + 1);
+#endif /* ARRAY_VARS */
+ else
+ {
+ number = 0;
+
+ if (legal_number (name + 1, &arg_index)) /* ${#1} */
+ {
+ t = get_dollar_var_value (arg_index);
+ number = MB_STRLEN (t);
+ FREE (t);
+ }
+#if defined (ARRAY_VARS)
+ else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && (array_p (var) || assoc_p (var)))
+ {
+ if (assoc_p (var))
+ t = assoc_reference (assoc_cell (var), "0");
+ else
+ t = array_reference (array_cell (var), 0);
+ number = MB_STRLEN (t);
+ }
+#endif
+ else /* ${#PS1} */
+ {
+ newname = savestring (name);
+ newname[0] = '$';
+ list = expand_string (newname, Q_DOUBLE_QUOTES);
+ t = list ? string_list (list) : (char *)NULL;
+ free (newname);
+ if (list)
+ dispose_words (list);
+
+ number = MB_STRLEN (t);
+ FREE (t);
+ }
+ }
+
+ return (number);
+}
+
+/* Skip characters in SUBSTR until DELIM. SUBSTR is an arithmetic expression,
+ so we do some ad-hoc parsing of an arithmetic expression to find
+ the first DELIM, instead of using strchr(3). Two rules:
+ 1. If the substring contains a `(', read until closing `)'.
+ 2. If the substring contains a `?', read past one `:' for each `?'.
+*/
+
+static char *
+skiparith (substr, delim)
+ char *substr;
+ int delim;
+{
+ size_t sublen;
+ int skipcol, pcount, i;
+ DECLARE_MBSTATE;
+
+ sublen = strlen (substr);
+ i = skipcol = pcount = 0;
+ while (substr[i])
+ {
+ /* Balance parens */
+ if (substr[i] == LPAREN)
+ {
+ pcount++;
+ i++;
+ continue;
+ }
+ if (substr[i] == RPAREN && pcount)
+ {
+ pcount--;
+ i++;
+ continue;
+ }
+ if (pcount)
+ {
+ ADVANCE_CHAR (substr, sublen, i);
+ continue;
+ }
+
+ /* Skip one `:' for each `?' */
+ if (substr[i] == ':' && skipcol)
+ {
+ skipcol--;
+ i++;
+ continue;
+ }
+ if (substr[i] == delim)
+ break;
+ if (substr[i] == '?')
+ {
+ skipcol++;
+ i++;
+ continue;
+ }
+ ADVANCE_CHAR (substr, sublen, i);
+ }
+
+ return (substr + i);
+}
+
+/* Verify and limit the start and end of the desired substring. If
+ VTYPE == 0, a regular shell variable is being used; if it is 1,
+ then the positional parameters are being used; if it is 2, then
+ VALUE is really a pointer to an array variable that should be used.
+ Return value is 1 if both values were OK, 0 if there was a problem
+ with an invalid expression, or -1 if the values were out of range. */
+static int
+verify_substring_values (v, value, substr, vtype, e1p, e2p)
+ SHELL_VAR *v;
+ char *value, *substr;
+ int vtype;
+ intmax_t *e1p, *e2p;
+{
+ char *t, *temp1, *temp2;
+ arrayind_t len;
+ int expok;
+#if defined (ARRAY_VARS)
+ ARRAY *a;
+ HASH_TABLE *h;
+#endif
+
+ /* duplicate behavior of strchr(3) */
+ t = skiparith (substr, ':');
+ if (*t && *t == ':')
+ *t = '\0';
+ else
+ t = (char *)0;
+
+ temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
+ *e1p = evalexp (temp1, &expok);
+ free (temp1);
+ if (expok == 0)
+ return (0);
+
+ len = -1; /* paranoia */
+ switch (vtype)
+ {
+ case VT_VARIABLE:
+ case VT_ARRAYMEMBER:
+ len = MB_STRLEN (value);
+ break;
+ case VT_POSPARMS:
+ len = number_of_args () + 1;
+ if (*e1p == 0)
+ len++; /* add one arg if counting from $0 */
+ break;
+#if defined (ARRAY_VARS)
+ case VT_ARRAYVAR:
+ /* For arrays, the first value deals with array indices. Negative
+ offsets count from one past the array's maximum index. Associative
+ arrays treat the number of elements as the maximum index. */
+ if (assoc_p (v))
+ {
+ h = assoc_cell (v);
+ len = assoc_num_elements (h) + (*e1p < 0);
+ }
+ else
+ {
+ a = (ARRAY *)value;
+ len = array_max_index (a) + (*e1p < 0); /* arrays index from 0 to n - 1 */
+ }
+ break;
+#endif
+ }
+
+ if (len == -1) /* paranoia */
+ return -1;
+
+ if (*e1p < 0) /* negative offsets count from end */
+ *e1p += len;
+
+ if (*e1p > len || *e1p < 0)
+ return (-1);
+
+#if defined (ARRAY_VARS)
+ /* For arrays, the second offset deals with the number of elements. */
+ if (vtype == VT_ARRAYVAR)
+ len = assoc_p (v) ? assoc_num_elements (h) : array_num_elements (a);
+#endif
+
+ if (t)
+ {
+ t++;
+ temp2 = savestring (t);
+ temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
+ free (temp2);
+ t[-1] = ':';
+ *e2p = evalexp (temp1, &expok);
+ free (temp1);
+ if (expok == 0)
+ return (0);
+ if (*e2p < 0)
+ {
+ internal_error (_("%s: substring expression < 0"), t);
+ return (0);
+ }
+#if defined (ARRAY_VARS)
+ /* In order to deal with sparse arrays, push the intelligence about how
+ to deal with the number of elements desired down to the array-
+ specific functions. */
+ if (vtype != VT_ARRAYVAR)
+#endif
+ {
+ *e2p += *e1p; /* want E2 chars starting at E1 */
+ if (*e2p > len)
+ *e2p = len;
+ }
+ }
+ else
+ *e2p = len;
+
+ return (1);
+}
+
+/* Return the type of variable specified by VARNAME (simple variable,
+ positional param, or array variable). Also return the value specified
+ by VARNAME (value of a variable or a reference to an array element).
+ If this returns VT_VARIABLE, the caller assumes that CTLESC and CTLNUL
+ characters in the value are quoted with CTLESC and takes appropriate
+ steps. For convenience, *VALP is set to the dequoted VALUE. */
+static int
+get_var_and_type (varname, value, quoted, varp, valp)
+ char *varname, *value;
+ int quoted;
+ SHELL_VAR **varp;
+ char **valp;
+{
+ int vtype;
+ char *temp;
+#if defined (ARRAY_VARS)
+ SHELL_VAR *v;
+#endif
+
+ /* This sets vtype to VT_VARIABLE or VT_POSPARMS */
+ vtype = (varname[0] == '@' || varname[0] == '*') && varname[1] == '\0';
+ if (vtype == VT_POSPARMS && varname[0] == '*')
+ vtype |= VT_STARSUB;
+ *varp = (SHELL_VAR *)NULL;
+
+#if defined (ARRAY_VARS)
+ if (valid_array_reference (varname))
+ {
+ v = array_variable_part (varname, &temp, (int *)0);
+ if (v && (array_p (v) || assoc_p (v)))
+ { /* [ */
+ if (ALL_ELEMENT_SUB (temp[0]) && temp[1] == ']')
+ {
+ /* Callers have to differentiate betwen indexed and associative */
+ vtype = VT_ARRAYVAR;
+ if (temp[0] == '*')
+ vtype |= VT_STARSUB;
+ *valp = array_p (v) ? (char *)array_cell (v) : (char *)assoc_cell (v);
+ }
+ else
+ {
+ vtype = VT_ARRAYMEMBER;
+ *valp = array_value (varname, 1, (int *)NULL);
+ }
+ *varp = v;
+ }
+ else if (v && (ALL_ELEMENT_SUB (temp[0]) && temp[1] == ']'))
+ {
+ vtype = VT_VARIABLE;
+ *varp = v;
+ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
+ *valp = dequote_string (value);
+ else
+ *valp = dequote_escapes (value);
+ }
+ else
+ {
+ vtype = VT_ARRAYMEMBER;
+ *varp = v;
+ *valp = array_value (varname, 1, (int *)NULL);
+ }
+ }
+ else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && (assoc_p (v) || array_p (v)))
+ {
+ vtype = VT_ARRAYMEMBER;
+ *varp = v;
+ *valp = assoc_p (v) ? assoc_reference (assoc_cell (v), "0") : array_reference (array_cell (v), 0);
+ }
+ else
+#endif
+ {
+ if (value && vtype == VT_VARIABLE)
+ {
+ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
+ *valp = dequote_string (value);
+ else
+ *valp = dequote_escapes (value);
+ }
+ else
+ *valp = value;
+ }
+
+ return vtype;
+}
+
+/******************************************************/
+/* */
+/* Functions to extract substrings of variable values */
+/* */
+/******************************************************/
+
+#if defined (HANDLE_MULTIBYTE)
+/* Character-oriented rather than strictly byte-oriented substrings. S and
+ E, rather being strict indices into STRING, indicate character (possibly
+ multibyte character) positions that require calculation.
+ Used by the ${param:offset[:length]} expansion. */
+static char *
+mb_substring (string, s, e)
+ char *string;
+ int s, e;
+{
+ char *tt;
+ int start, stop, i, slen;
+ DECLARE_MBSTATE;
+
+ start = 0;
+ /* Don't need string length in ADVANCE_CHAR unless multibyte chars possible. */
+ slen = (MB_CUR_MAX > 1) ? STRLEN (string) : 0;
+
+ i = s;
+ while (string[start] && i--)
+ ADVANCE_CHAR (string, slen, start);
+ stop = start;
+ i = e - s;
+ while (string[stop] && i--)
+ ADVANCE_CHAR (string, slen, stop);
+ tt = substring (string, start, stop);
+ return tt;
+}
+#endif
+
+/* Process a variable substring expansion: ${name:e1[:e2]}. If VARNAME
+ is `@', use the positional parameters; otherwise, use the value of
+ VARNAME. If VARNAME is an array variable, use the array elements. */
+
+static char *
+parameter_brace_substring (varname, value, substr, quoted)
+ char *varname, *value, *substr;
+ int quoted;
+{
+ intmax_t e1, e2;
+ int vtype, r, starsub;
+ char *temp, *val, *tt, *oname;
+ SHELL_VAR *v;
+
+ if (value == 0)
+ return ((char *)NULL);
+
+ oname = this_command_name;
+ this_command_name = varname;
+
+ vtype = get_var_and_type (varname, value, quoted, &v, &val);
+ if (vtype == -1)
+ {
+ this_command_name = oname;
+ return ((char *)NULL);
+ }
+
+ starsub = vtype & VT_STARSUB;
+ vtype &= ~VT_STARSUB;
+
+ r = verify_substring_values (v, val, substr, vtype, &e1, &e2);
+ this_command_name = oname;
+ if (r <= 0)
+ return ((r == 0) ? &expand_param_error : (char *)NULL);
+
+ switch (vtype)
+ {
+ case VT_VARIABLE:
+ case VT_ARRAYMEMBER:
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1)
+ tt = mb_substring (val, e1, e2);
+ else
+#endif
+ tt = substring (val, e1, e2);
+
+ if (vtype == VT_VARIABLE)
+ FREE (val);
+ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
+ temp = quote_string (tt);
+ else
+ temp = tt ? quote_escapes (tt) : (char *)NULL;
+ FREE (tt);
+ break;
+ case VT_POSPARMS:
+ tt = pos_params (varname, e1, e2, quoted);
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+ {
+ temp = tt ? quote_escapes (tt) : (char *)NULL;
+ FREE (tt);
+ }
+ else
+ temp = tt;
+ break;
+#if defined (ARRAY_VARS)
+ case VT_ARRAYVAR:
+ if (assoc_p (v))
+ /* we convert to list and take first e2 elements starting at e1th
+ element -- officially undefined for now */
+ temp = assoc_subrange (assoc_cell (v), e1, e2, starsub, quoted);
+ else
+ /* We want E2 to be the number of elements desired (arrays can be sparse,
+ so verify_substring_values just returns the numbers specified and we
+ rely on array_subrange to understand how to deal with them). */
+ temp = array_subrange (array_cell (v), e1, e2, starsub, quoted);
+ /* array_subrange now calls array_quote_escapes as appropriate, so the
+ caller no longer needs to. */
+ break;
+#endif
+ default:
+ temp = (char *)NULL;
+ }
+
+ return temp;
+}
+
+/****************************************************************/
+/* */
+/* Functions to perform pattern substitution on variable values */
+/* */
+/****************************************************************/
+
+char *
+pat_subst (string, pat, rep, mflags)
+ char *string, *pat, *rep;
+ int mflags;
+{
+ char *ret, *s, *e, *str;
+ int rsize, rptr, l, replen, mtype;
+
+ mtype = mflags & MATCH_TYPEMASK;
+
+ /* Special cases:
+ * 1. A null pattern with mtype == MATCH_BEG means to prefix STRING
+ * with REP and return the result.
+ * 2. A null pattern with mtype == MATCH_END means to append REP to
+ * STRING and return the result.
+ */
+ if ((pat == 0 || *pat == 0) && (mtype == MATCH_BEG || mtype == MATCH_END))
+ {
+ replen = STRLEN (rep);
+ l = strlen (string);
+ ret = (char *)xmalloc (replen + l + 2);
+ if (replen == 0)
+ strcpy (ret, string);
+ else if (mtype == MATCH_BEG)
+ {
+ strcpy (ret, rep);
+ strcpy (ret + replen, string);
+ }
+ else
+ {
+ strcpy (ret, string);
+ strcpy (ret + l, rep);
+ }
+ return (ret);
+ }
+
+ ret = (char *)xmalloc (rsize = 64);
+ ret[0] = '\0';
+
+ for (replen = STRLEN (rep), rptr = 0, str = string;;)
+ {
+ if (match_pattern (str, pat, mtype, &s, &e) == 0)
+ break;
+ l = s - str;
+ RESIZE_MALLOCED_BUFFER (ret, rptr, (l + replen), rsize, 64);
+
+ /* OK, now copy the leading unmatched portion of the string (from
+ str to s) to ret starting at rptr (the current offset). Then copy
+ the replacement string at ret + rptr + (s - str). Increment
+ rptr (if necessary) and str and go on. */
+ if (l)
+ {
+ strncpy (ret + rptr, str, l);
+ rptr += l;
+ }
+ if (replen)
+ {
+ strncpy (ret + rptr, rep, replen);
+ rptr += replen;
+ }
+ str = e; /* e == end of match */
+
+ if (((mflags & MATCH_GLOBREP) == 0) || mtype != MATCH_ANY)
+ break;
+
+ if (s == e)
+ {
+ /* On a zero-length match, make sure we copy one character, since
+ we increment one character to avoid infinite recursion. */
+ RESIZE_MALLOCED_BUFFER (ret, rptr, 1, rsize, 64);
+ ret[rptr++] = *str++;
+ e++; /* avoid infinite recursion on zero-length match */
+ }
+ }
+
+ /* Now copy the unmatched portion of the input string */
+ if (*str)
+ {
+ RESIZE_MALLOCED_BUFFER (ret, rptr, STRLEN(str) + 1, rsize, 64);
+ strcpy (ret + rptr, str);
+ }
+ else
+ ret[rptr] = '\0';
+
+ return ret;
+}
+
+/* Do pattern match and replacement on the positional parameters. */
+static char *
+pos_params_pat_subst (string, pat, rep, mflags)
+ char *string, *pat, *rep;
+ int mflags;
+{
+ WORD_LIST *save, *params;
+ WORD_DESC *w;
+ char *ret;
+ int pchar, qflags;
+
+ save = params = list_rest_of_args ();
+ if (save == 0)
+ return ((char *)NULL);
+
+ for ( ; params; params = params->next)
+ {
+ ret = pat_subst (params->word->word, pat, rep, mflags);
+ w = alloc_word_desc ();
+ w->word = ret ? ret : savestring ("");
+ dispose_word (params->word);
+ params->word = w;
+ }
+
+ pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@';
+ qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
+
+#if 0
+ if ((mflags & (MATCH_QUOTED|MATCH_STARSUB)) == (MATCH_QUOTED|MATCH_STARSUB))
+ ret = string_list_dollar_star (quote_list (save));
+ else if ((mflags & MATCH_STARSUB) == MATCH_STARSUB)
+ ret = string_list_dollar_star (save);
+ else if ((mflags & MATCH_QUOTED) == MATCH_QUOTED)
+ ret = string_list_dollar_at (save, qflags);
+ else
+ ret = string_list_dollar_star (save);
+#else
+ ret = string_list_pos_params (pchar, save, qflags);
+#endif
+
+ dispose_words (save);
+
+ return (ret);
+}
+
+/* Perform pattern substitution on VALUE, which is the expansion of
+ VARNAME. PATSUB is an expression supplying the pattern to match
+ and the string to substitute. QUOTED is a flags word containing
+ the type of quoting currently in effect. */
+static char *
+parameter_brace_patsub (varname, value, patsub, quoted)
+ char *varname, *value, *patsub;
+ int quoted;
+{
+ int vtype, mflags, starsub, delim;
+ char *val, *temp, *pat, *rep, *p, *lpatsub, *tt;
+ SHELL_VAR *v;
+
+ if (value == 0)
+ return ((char *)NULL);
+
+ this_command_name = varname;
+
+ vtype = get_var_and_type (varname, value, quoted, &v, &val);
+ if (vtype == -1)
+ return ((char *)NULL);
+
+ starsub = vtype & VT_STARSUB;
+ vtype &= ~VT_STARSUB;
+
+ mflags = 0;
+ if (patsub && *patsub == '/')
+ {
+ mflags |= MATCH_GLOBREP;
+ patsub++;
+ }
+
+ /* Malloc this because expand_string_if_necessary or one of the expansion
+ functions in its call chain may free it on a substitution error. */
+ lpatsub = savestring (patsub);
+
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ mflags |= MATCH_QUOTED;
+
+ if (starsub)
+ mflags |= MATCH_STARSUB;
+
+ /* If the pattern starts with a `/', make sure we skip over it when looking
+ for the replacement delimiter. */
+#if 0
+ if (rep = quoted_strchr ((*patsub == '/') ? lpatsub+1 : lpatsub, '/', ST_BACKSL))
+ *rep++ = '\0';
+ else
+ rep = (char *)NULL;
+#else
+ delim = skip_to_delim (lpatsub, ((*patsub == '/') ? 1 : 0), "/", 0);
+ if (lpatsub[delim] == '/')
+ {
+ lpatsub[delim] = 0;
+ rep = lpatsub + delim + 1;
+ }
+ else
+ rep = (char *)NULL;
+#endif
+
+ if (rep && *rep == '\0')
+ rep = (char *)NULL;
+
+ /* Perform the same expansions on the pattern as performed by the
+ pattern removal expansions. */
+ pat = getpattern (lpatsub, quoted, 1);
+
+ if (rep)
+ {
+ if ((mflags & MATCH_QUOTED) == 0)
+ rep = expand_string_if_necessary (rep, quoted, expand_string_unsplit);
+ else
+ rep = expand_string_to_string_internal (rep, quoted, expand_string_unsplit);
+ }
+
+ /* ksh93 doesn't allow the match specifier to be a part of the expanded
+ pattern. This is an extension. Make sure we don't anchor the pattern
+ at the beginning or end of the string if we're doing global replacement,
+ though. */
+ p = pat;
+ if (mflags & MATCH_GLOBREP)
+ mflags |= MATCH_ANY;
+ else if (pat && pat[0] == '#')
+ {
+ mflags |= MATCH_BEG;
+ p++;
+ }
+ else if (pat && pat[0] == '%')
+ {
+ mflags |= MATCH_END;
+ p++;
+ }
+ else
+ mflags |= MATCH_ANY;
+
+ /* OK, we now want to substitute REP for PAT in VAL. If
+ flags & MATCH_GLOBREP is non-zero, the substitution is done
+ everywhere, otherwise only the first occurrence of PAT is
+ replaced. The pattern matching code doesn't understand
+ CTLESC quoting CTLESC and CTLNUL so we use the dequoted variable
+ values passed in (VT_VARIABLE) so the pattern substitution
+ code works right. We need to requote special chars after
+ we're done for VT_VARIABLE and VT_ARRAYMEMBER, and for the
+ other cases if QUOTED == 0, since the posparams and arrays
+ indexed by * or @ do special things when QUOTED != 0. */
+
+ switch (vtype)
+ {
+ case VT_VARIABLE:
+ case VT_ARRAYMEMBER:
+ temp = pat_subst (val, p, rep, mflags);
+ if (vtype == VT_VARIABLE)
+ FREE (val);
+ if (temp)
+ {
+ tt = (mflags & MATCH_QUOTED) ? quote_string (temp) : quote_escapes (temp);
+ free (temp);
+ temp = tt;
+ }
+ break;
+ case VT_POSPARMS:
+ temp = pos_params_pat_subst (val, p, rep, mflags);
+ if (temp && (mflags & MATCH_QUOTED) == 0)
+ {
+ tt = quote_escapes (temp);
+ free (temp);
+ temp = tt;
+ }
+ break;
+#if defined (ARRAY_VARS)
+ case VT_ARRAYVAR:
+ temp = assoc_p (v) ? assoc_patsub (assoc_cell (v), p, rep, mflags)
+ : array_patsub (array_cell (v), p, rep, mflags);
+ /* Don't call quote_escapes anymore; array_patsub calls
+ array_quote_escapes as appropriate before adding the
+ space separators; ditto for assoc_patsub. */
+ break;
+#endif
+ }
+
+ FREE (pat);
+ FREE (rep);
+ free (lpatsub);
+
+ return temp;
+}
+
+/****************************************************************/
+/* */
+/* Functions to perform case modification on variable values */
+/* */
+/****************************************************************/
+
+/* Do case modification on the positional parameters. */
+
+static char *
+pos_params_modcase (string, pat, modop, mflags)
+ char *string, *pat;
+ int modop;
+ int mflags;
+{
+ WORD_LIST *save, *params;
+ WORD_DESC *w;
+ char *ret;
+ int pchar, qflags;
+
+ save = params = list_rest_of_args ();
+ if (save == 0)
+ return ((char *)NULL);
+
+ for ( ; params; params = params->next)
+ {
+ ret = sh_modcase (params->word->word, pat, modop);
+ w = alloc_word_desc ();
+ w->word = ret ? ret : savestring ("");
+ dispose_word (params->word);
+ params->word = w;
+ }
+
+ pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@';
+ qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
+
+ ret = string_list_pos_params (pchar, save, qflags);
+ dispose_words (save);
+
+ return (ret);
+}
+
+/* Perform case modification on VALUE, which is the expansion of
+ VARNAME. MODSPEC is an expression supplying the type of modification
+ to perform. QUOTED is a flags word containing the type of quoting
+ currently in effect. */
+static char *
+parameter_brace_casemod (varname, value, modspec, patspec, quoted)
+ char *varname, *value;
+ int modspec;
+ char *patspec;
+ int quoted;
+{
+ int vtype, starsub, modop, mflags, x;
+ char *val, *temp, *pat, *p, *lpat, *tt;
+ SHELL_VAR *v;
+
+ if (value == 0)
+ return ((char *)NULL);
+
+ this_command_name = varname;
+
+ vtype = get_var_and_type (varname, value, quoted, &v, &val);
+ if (vtype == -1)
+ return ((char *)NULL);
+
+ starsub = vtype & VT_STARSUB;
+ vtype &= ~VT_STARSUB;
+
+ modop = 0;
+ mflags = 0;
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ mflags |= MATCH_QUOTED;
+ if (starsub)
+ mflags |= MATCH_STARSUB;
+
+ p = patspec;
+ if (modspec == '^')
+ {
+ x = p && p[0] == modspec;
+ modop = x ? CASE_UPPER : CASE_UPFIRST;
+ p += x;
+ }
+ else if (modspec == ',')
+ {
+ x = p && p[0] == modspec;
+ modop = x ? CASE_LOWER : CASE_LOWFIRST;
+ p += x;
+ }
+ else if (modspec == '~')
+ {
+ x = p && p[0] == modspec;
+ modop = x ? CASE_TOGGLEALL : CASE_TOGGLE;
+ p += x;
+ }
+
+ lpat = p ? savestring (p) : 0;
+ /* Perform the same expansions on the pattern as performed by the
+ pattern removal expansions. FOR LATER */
+ pat = lpat ? getpattern (lpat, quoted, 1) : 0;
+
+ /* OK, now we do the case modification. */
+ switch (vtype)
+ {
+ case VT_VARIABLE:
+ case VT_ARRAYMEMBER:
+ temp = sh_modcase (val, pat, modop);
+ if (vtype == VT_VARIABLE)
+ FREE (val);
+ if (temp)
+ {
+ tt = (mflags & MATCH_QUOTED) ? quote_string (temp) : quote_escapes (temp);
+ free (temp);
+ temp = tt;
+ }
+ break;
+
+ case VT_POSPARMS:
+ temp = pos_params_modcase (val, pat, modop, mflags);
+ if (temp && (mflags & MATCH_QUOTED) == 0)
+ {
+ tt = quote_escapes (temp);
+ free (temp);
+ temp = tt;
+ }
+ break;
+
+#if defined (ARRAY_VARS)
+ case VT_ARRAYVAR:
+ temp = assoc_p (v) ? assoc_modcase (assoc_cell (v), pat, modop, mflags)
+ : array_modcase (array_cell (v), pat, modop, mflags);
+ /* Don't call quote_escapes; array_modcase calls array_quote_escapes
+ as appropriate before adding the space separators; ditto for
+ assoc_modcase. */
+ break;
+#endif
+ }
+
+ FREE (pat);
+ free (lpat);
+
+ return temp;
+}
+
+/* Check for unbalanced parens in S, which is the contents of $(( ... )). If
+ any occur, this must be a nested command substitution, so return 0.
+ Otherwise, return 1. A valid arithmetic expression must always have a
+ ( before a matching ), so any cases where there are more right parens
+ means that this must not be an arithmetic expression, though the parser
+ will not accept it without a balanced total number of parens. */
+static int
+chk_arithsub (s, len)
+ const char *s;
+ int len;
+{
+ int i, count;
+ DECLARE_MBSTATE;
+
+ i = count = 0;
+ while (i < len)
+ {
+ if (s[i] == LPAREN)
+ count++;
+ else if (s[i] == RPAREN)
+ {
+ count--;
+ if (count < 0)
+ return 0;
+ }
+
+ switch (s[i])
+ {
+ default:
+ ADVANCE_CHAR (s, len, i);
+ break;
+
+ case '\\':
+ i++;
+ if (s[i])
+ ADVANCE_CHAR (s, len, i);
+ break;
+
+ case '\'':
+ i = skip_single_quoted (s, len, ++i);
+ break;
+
+ case '"':
+ i = skip_double_quoted ((char *)s, len, ++i);
+ break;
+ }
+ }
+
+ return (count == 0);
+}
+
+/****************************************************************/
+/* */
+/* Functions to perform parameter expansion on a string */
+/* */
+/****************************************************************/
+
+/* ${[#][!]name[[:][^[^]][,[,]]#[#]%[%]-=?+[word][:e1[:e2]]]} */
+static WORD_DESC *
+parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_dollar_at)
+ char *string;
+ int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at;
+{
+ int check_nullness, var_is_set, var_is_null, var_is_special;
+ int want_substring, want_indir, want_patsub, want_casemod;
+ char *name, *value, *temp, *temp1;
+ WORD_DESC *tdesc, *ret;
+ int t_index, sindex, c, tflag, modspec;
+ intmax_t number;
+
+ temp = temp1 = value = (char *)NULL;
+ var_is_set = var_is_null = var_is_special = check_nullness = 0;
+ want_substring = want_indir = want_patsub = want_casemod = 0;
+
+ sindex = *indexp;
+ t_index = ++sindex;
+ /* ${#var} doesn't have any of the other parameter expansions on it. */
+ if (string[t_index] == '#' && legal_variable_starter (string[t_index+1])) /* {{ */
+ name = string_extract (string, &t_index, "}", SX_VARNAME);
+ else
+#if defined (CASEMOD_EXPANSIONS)
+ /* To enable case-toggling expansions using the `~' operator character
+ change the 1 to 0. */
+# if defined (CASEMOD_CAPCASE)
+ name = string_extract (string, &t_index, "#%^,~:-=?+/}", SX_VARNAME);
+# else
+ name = string_extract (string, &t_index, "#%^,:-=?+/}", SX_VARNAME);
+# endif /* CASEMOD_CAPCASE */
+#else
+ name = string_extract (string, &t_index, "#%:-=?+/}", SX_VARNAME);
+#endif /* CASEMOD_EXPANSIONS */
+
+ ret = 0;
+ tflag = 0;
+
+ /* If the name really consists of a special variable, then make sure
+ that we have the entire name. We don't allow indirect references
+ to special variables except `#', `?', `@' and `*'. */
+ if ((sindex == t_index &&
+ (string[t_index] == '-' ||
+ string[t_index] == '?' ||
+ string[t_index] == '#')) ||
+ (sindex == t_index - 1 && string[sindex] == '!' &&
+ (string[t_index] == '#' ||
+ string[t_index] == '?' ||
+ string[t_index] == '@' ||
+ string[t_index] == '*')))
+ {
+ t_index++;
+ free (name);
+ temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0);
+ name = (char *)xmalloc (3 + (strlen (temp1)));
+ *name = string[sindex];
+ if (string[sindex] == '!')
+ {
+ /* indirect reference of $#, $?, $@, or $* */
+ name[1] = string[sindex + 1];
+ strcpy (name + 2, temp1);
+ }
+ else
+ strcpy (name + 1, temp1);
+ free (temp1);
+ }
+ sindex = t_index;
+
+ /* Find out what character ended the variable name. Then
+ do the appropriate thing. */
+ if (c = string[sindex])
+ sindex++;
+
+ /* If c is followed by one of the valid parameter expansion
+ characters, move past it as normal. If not, assume that
+ a substring specification is being given, and do not move
+ past it. */
+ if (c == ':' && VALID_PARAM_EXPAND_CHAR (string[sindex]))
+ {
+ check_nullness++;
+ if (c = string[sindex])
+ sindex++;
+ }
+ else if (c == ':' && string[sindex] != RBRACE)
+ want_substring = 1;
+ else if (c == '/' && string[sindex] != RBRACE)
+ want_patsub = 1;
+#if defined (CASEMOD_EXPANSIONS)
+ else if (c == '^' || c == ',' || c == '~')
+ {
+ modspec = c;
+ want_casemod = 1;
+ }
+#endif
+
+ /* Catch the valid and invalid brace expressions that made it through the
+ tests above. */
+ /* ${#-} is a valid expansion and means to take the length of $-.
+ Similarly for ${#?} and ${##}... */
+ if (name[0] == '#' && name[1] == '\0' && check_nullness == 0 &&
+ VALID_SPECIAL_LENGTH_PARAM (c) && string[sindex] == RBRACE)
+ {
+ name = (char *)xrealloc (name, 3);
+ name[1] = c;
+ name[2] = '\0';
+ c = string[sindex++];
+ }
+
+ /* ...but ${#%}, ${#:}, ${#=}, ${#+}, and ${#/} are errors. */
+ if (name[0] == '#' && name[1] == '\0' && check_nullness == 0 &&
+ member (c, "%:=+/") && string[sindex] == RBRACE)
+ {
+ temp = (char *)NULL;
+ goto bad_substitution;
+ }
+
+ /* Indirect expansion begins with a `!'. A valid indirect expansion is
+ either a variable name, one of the positional parameters or a special
+ variable that expands to one of the positional parameters. */
+ want_indir = *name == '!' &&
+ (legal_variable_starter ((unsigned char)name[1]) || DIGIT (name[1])
+ || VALID_INDIR_PARAM (name[1]));
+
+ /* Determine the value of this variable. */
+
+ /* Check for special variables, directly referenced. */
+ if (SPECIAL_VAR (name, want_indir))
+ var_is_special++;
+
+ /* Check for special expansion things, like the length of a parameter */
+ if (*name == '#' && name[1])
+ {
+ /* If we are not pointing at the character just after the
+ closing brace, then we haven't gotten all of the name.
+ Since it begins with a special character, this is a bad
+ substitution. Also check NAME for validity before trying
+ to go on. */
+ if (string[sindex - 1] != RBRACE || (valid_length_expression (name) == 0))
+ {
+ temp = (char *)NULL;
+ goto bad_substitution;
+ }
+
+ number = parameter_brace_expand_length (name);
+ free (name);
+
+ *indexp = sindex;
+ if (number < 0)
+ return (&expand_wdesc_error);
+ else
+ {
+ ret = alloc_word_desc ();
+ ret->word = itos (number);
+ return ret;
+ }
+ }
+
+ /* ${@} is identical to $@. */
+ if (name[0] == '@' && name[1] == '\0')
+ {
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 1;
+
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ }
+
+ /* Process ${!PREFIX*} expansion. */
+ if (want_indir && string[sindex - 1] == RBRACE &&
+ (string[sindex - 2] == '*' || string[sindex - 2] == '@') &&
+ legal_variable_starter ((unsigned char) name[1]))
+ {
+ char **x;
+ WORD_LIST *xlist;
+
+ temp1 = savestring (name + 1);
+ number = strlen (temp1);
+ temp1[number - 1] = '\0';
+ x = all_variables_matching_prefix (temp1);
+ xlist = strvec_to_word_list (x, 0, 0);
+ if (string[sindex - 2] == '*')
+ temp = string_list_dollar_star (xlist);
+ else
+ {
+ temp = string_list_dollar_at (xlist, quoted);
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 1;
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ }
+ free (x);
+ dispose_words (xlist);
+ free (temp1);
+ *indexp = sindex;
+
+ ret = alloc_word_desc ();
+ ret->word = temp;
+ return ret;
+ }
+
+#if defined (ARRAY_VARS)
+ /* Process ${!ARRAY[@]} and ${!ARRAY[*]} expansion. */ /* [ */
+ if (want_indir && string[sindex - 1] == RBRACE &&
+ string[sindex - 2] == ']' && valid_array_reference (name+1))
+ {
+ char *x, *x1;
+
+ temp1 = savestring (name + 1);
+ x = array_variable_name (temp1, &x1, (int *)0); /* [ */
+ FREE (x);
+ if (ALL_ELEMENT_SUB (x1[0]) && x1[1] == ']')
+ {
+ temp = array_keys (temp1, quoted); /* handles assoc vars too */
+ if (x1[0] == '@')
+ {
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 1;
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ }
+
+ free (temp1);
+ *indexp = sindex;
+
+ ret = alloc_word_desc ();
+ ret->word = temp;
+ return ret;
+ }
+
+ free (temp1);
+ }
+#endif /* ARRAY_VARS */
+
+ /* Make sure that NAME is valid before trying to go on. */
+ if (valid_brace_expansion_word (want_indir ? name + 1 : name,
+ var_is_special) == 0)
+ {
+ temp = (char *)NULL;
+ goto bad_substitution;
+ }
+
+ if (want_indir)
+ tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
+ else
+ tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND);
+
+ if (tdesc)
+ {
+ temp = tdesc->word;
+ tflag = tdesc->flags;
+ dispose_word_desc (tdesc);
+ }
+ else
+ temp = (char *)0;
+
+#if defined (ARRAY_VARS)
+ if (valid_array_reference (name))
+ chk_atstar (name, quoted, quoted_dollar_atp, contains_dollar_at);
+#endif
+
+ var_is_set = temp != (char *)0;
+ var_is_null = check_nullness && (var_is_set == 0 || *temp == 0);
+
+ /* Get the rest of the stuff inside the braces. */
+ if (c && c != RBRACE)
+ {
+ /* Extract the contents of the ${ ... } expansion
+ according to the Posix.2 rules. */
+ value = extract_dollar_brace_string (string, &sindex, quoted, 0);
+ if (string[sindex] == RBRACE)
+ sindex++;
+ else
+ goto bad_substitution;
+ }
+ else
+ value = (char *)NULL;
+
+ *indexp = sindex;
+
+ /* If this is a substring spec, process it and add the result. */
+ if (want_substring)
+ {
+ temp1 = parameter_brace_substring (name, temp, value, quoted);
+ FREE (name);
+ FREE (value);
+ FREE (temp);
+
+ if (temp1 == &expand_param_error)
+ return (&expand_wdesc_error);
+ else if (temp1 == &expand_param_fatal)
+ return (&expand_wdesc_fatal);
+
+ ret = alloc_word_desc ();
+ ret->word = temp1;
+ if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
+ return ret;
+ }
+ else if (want_patsub)
+ {
+ temp1 = parameter_brace_patsub (name, temp, value, quoted);
+ FREE (name);
+ FREE (value);
+ FREE (temp);
+
+ if (temp1 == &expand_param_error)
+ return (&expand_wdesc_error);
+ else if (temp1 == &expand_param_fatal)
+ return (&expand_wdesc_fatal);
+
+ ret = alloc_word_desc ();
+ ret->word = temp1;
+ ret = alloc_word_desc ();
+ ret->word = temp1;
+ if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
+ return ret;
+ }
+#if defined (CASEMOD_EXPANSIONS)
+ else if (want_casemod)
+ {
+ temp1 = parameter_brace_casemod (name, temp, modspec, value, quoted);
+ FREE (name);
+ FREE (value);
+ FREE (temp);
+
+ if (temp1 == &expand_param_error)
+ return (&expand_wdesc_error);
+ else if (temp1 == &expand_param_fatal)
+ return (&expand_wdesc_fatal);
+
+ ret = alloc_word_desc ();
+ ret->word = temp1;
+ if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
+ return ret;
+ }
+#endif
+
+ /* Do the right thing based on which character ended the variable name. */
+ switch (c)
+ {
+ default:
+ case '\0':
+ bad_substitution:
+ report_error (_("%s: bad substitution"), string ? string : "??");
+ FREE (value);
+ FREE (temp);
+ free (name);
+ return &expand_wdesc_error;
+
+ case RBRACE:
+ if (var_is_set == 0 && unbound_vars_is_error && ((name[0] != '@' && name[0] != '*') || name[1]))
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (name);
+ FREE (value);
+ FREE (temp);
+ free (name);
+ return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+ break;
+
+ case '#': /* ${param#[#]pattern} */
+ case '%': /* ${param%[%]pattern} */
+ if (value == 0 || *value == '\0' || temp == 0 || *temp == '\0')
+ {
+ FREE (value);
+ break;
+ }
+ temp1 = parameter_brace_remove_pattern (name, temp, value, c, quoted);
+ free (temp);
+ free (value);
+
+ ret = alloc_word_desc ();
+ ret->word = temp1;
+ if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
+ return ret;
+
+ case '-':
+ case '=':
+ case '?':
+ case '+':
+ if (var_is_set && var_is_null == 0)
+ {
+ /* If the operator is `+', we don't want the value of the named
+ variable for anything, just the value of the right hand side. */
+
+ if (c == '+')
+ {
+ /* XXX -- if we're double-quoted and the named variable is "$@",
+ we want to turn off any special handling of "$@" --
+ we're not using it, so whatever is on the rhs applies. */
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 0;
+ if (contains_dollar_at)
+ *contains_dollar_at = 0;
+
+ FREE (temp);
+ if (value)
+ {
+ ret = parameter_brace_expand_rhs (name, value, c,
+ quoted,
+ quoted_dollar_atp,
+ contains_dollar_at);
+ /* XXX - fix up later, esp. noting presence of
+ W_HASQUOTEDNULL in ret->flags */
+ free (value);
+ }
+ else
+ temp = (char *)NULL;
+ }
+ else
+ {
+ FREE (value);
+ }
+ /* Otherwise do nothing; just use the value in TEMP. */
+ }
+ else /* VAR not set or VAR is NULL. */
+ {
+ FREE (temp);
+ temp = (char *)NULL;
+ if (c == '=' && var_is_special)
+ {
+ report_error (_("$%s: cannot assign in this way"), name);
+ free (name);
+ free (value);
+ return &expand_wdesc_error;
+ }
+ else if (c == '?')
+ {
+ parameter_brace_expand_error (name, value);
+ return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+ else if (c != '+')
+ {
+ /* XXX -- if we're double-quoted and the named variable is "$@",
+ we want to turn off any special handling of "$@" --
+ we're not using it, so whatever is on the rhs applies. */
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp)
+ *quoted_dollar_atp = 0;
+ if (contains_dollar_at)
+ *contains_dollar_at = 0;
+
+ ret = parameter_brace_expand_rhs (name, value, c, quoted,
+ quoted_dollar_atp,
+ contains_dollar_at);
+ /* XXX - fix up later, esp. noting presence of
+ W_HASQUOTEDNULL in tdesc->flags */
+ }
+ free (value);
+ }
+
+ break;
+ }
+ free (name);
+
+ if (ret == 0)
+ {
+ ret = alloc_word_desc ();
+ ret->flags = tflag;
+ ret->word = temp;
+ }
+ return (ret);
+}
+
+/* Expand a single ${xxx} expansion. The braces are optional. When
+ the braces are used, parameter_brace_expand() does the work,
+ possibly calling param_expand recursively. */
+static WORD_DESC *
+param_expand (string, sindex, quoted, expanded_something,
+ contains_dollar_at, quoted_dollar_at_p, had_quoted_null_p,
+ pflags)
+ char *string;
+ int *sindex, quoted, *expanded_something, *contains_dollar_at;
+ int *quoted_dollar_at_p, *had_quoted_null_p, pflags;
+{
+ char *temp, *temp1, uerror[3];
+ int zindex, t_index, expok;
+ unsigned char c;
+ intmax_t number;
+ SHELL_VAR *var;
+ WORD_LIST *list;
+ WORD_DESC *tdesc, *ret;
+ int tflag;
+
+ zindex = *sindex;
+ c = string[++zindex];
+
+ temp = (char *)NULL;
+ ret = tdesc = (WORD_DESC *)NULL;
+ tflag = 0;
+
+ /* Do simple cases first. Switch on what follows '$'. */
+ switch (c)
+ {
+ /* $0 .. $9? */
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ temp1 = dollar_vars[TODIGIT (c)];
+ if (unbound_vars_is_error && temp1 == (char *)NULL)
+ {
+ uerror[0] = '$';
+ uerror[1] = c;
+ uerror[2] = '\0';
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (uerror);
+ return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+ if (temp1)
+ temp = (*temp1 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ? quote_string (temp1)
+ : quote_escapes (temp1);
+ else
+ temp = (char *)NULL;
+
+ break;
+
+ /* $$ -- pid of the invoking shell. */
+ case '$':
+ temp = itos (dollar_dollar_pid);
+ break;
+
+ /* $# -- number of positional parameters. */
+ case '#':
+ temp = itos (number_of_args ());
+ break;
+
+ /* $? -- return value of the last synchronous command. */
+ case '?':
+ temp = itos (last_command_exit_value);
+ break;
+
+ /* $- -- flags supplied to the shell on invocation or by `set'. */
+ case '-':
+ temp = which_set_flags ();
+ break;
+
+ /* $! -- Pid of the last asynchronous command. */
+ case '!':
+ /* If no asynchronous pids have been created, expand to nothing.
+ If `set -u' has been executed, and no async processes have
+ been created, this is an expansion error. */
+ if (last_asynchronous_pid == NO_PID)
+ {
+ if (expanded_something)
+ *expanded_something = 0;
+ temp = (char *)NULL;
+ if (unbound_vars_is_error)
+ {
+ uerror[0] = '$';
+ uerror[1] = c;
+ uerror[2] = '\0';
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (uerror);
+ return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+ }
+ else
+ temp = itos (last_asynchronous_pid);
+ break;
+
+ /* The only difference between this and $@ is when the arg is quoted. */
+ case '*': /* `$*' */
+ list = list_rest_of_args ();
+
+#if 0
+ /* According to austin-group posix proposal by Geoff Clare in
+ <20090505091501.GA10097@squonk.masqnet> of 5 May 2009:
+
+ "The shell shall write a message to standard error and
+ immediately exit when it tries to expand an unset parameter
+ other than the '@' and '*' special parameters."
+ */
+
+ if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0)
+ {
+ uerror[0] = '$';
+ uerror[1] = '*';
+ uerror[2] = '\0';
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (uerror);
+ return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+#endif
+
+ /* If there are no command-line arguments, this should just
+ disappear if there are other characters in the expansion,
+ even if it's quoted. */
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && list == 0)
+ temp = (char *)NULL;
+ else if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE))
+ {
+ /* If we have "$*" we want to make a string of the positional
+ parameters, separated by the first character of $IFS, and
+ quote the whole string, including the separators. If IFS
+ is unset, the parameters are separated by ' '; if $IFS is
+ null, the parameters are concatenated. */
+ temp = (quoted & (Q_DOUBLE_QUOTES|Q_PATQUOTE)) ? string_list_dollar_star (list) : string_list (list);
+ temp1 = quote_string (temp);
+ if (*temp == 0)
+ tflag |= W_HASQUOTEDNULL;
+ free (temp);
+ temp = temp1;
+ }
+ else
+ {
+ /* We check whether or not we're eventually going to split $* here,
+ for example when IFS is empty and we are processing the rhs of
+ an assignment statement. In that case, we don't separate the
+ arguments at all. Otherwise, if the $* is not quoted it is
+ identical to $@ */
+#if 1
+# if defined (HANDLE_MULTIBYTE)
+ if (expand_no_split_dollar_star && ifs_firstc[0] == 0)
+# else
+ if (expand_no_split_dollar_star && ifs_firstc == 0)
+# endif
+ temp = string_list_dollar_star (list);
+ else
+ temp = string_list_dollar_at (list, quoted);
+#else
+ temp = string_list_dollar_at (list, quoted);
+#endif
+ if (expand_no_split_dollar_star == 0 && contains_dollar_at)
+ *contains_dollar_at = 1;
+ }
+
+ dispose_words (list);
+ break;
+
+ /* When we have "$@" what we want is "$1" "$2" "$3" ... This
+ means that we have to turn quoting off after we split into
+ the individually quoted arguments so that the final split
+ on the first character of $IFS is still done. */
+ case '@': /* `$@' */
+ list = list_rest_of_args ();
+
+#if 0
+ /* According to austin-group posix proposal by Geoff Clare in
+ <20090505091501.GA10097@squonk.masqnet> of 5 May 2009:
+
+ "The shell shall write a message to standard error and
+ immediately exit when it tries to expand an unset parameter
+ other than the '@' and '*' special parameters."
+ */
+
+ if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0)
+ {
+ uerror[0] = '$';
+ uerror[1] = '@';
+ uerror[2] = '\0';
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (uerror);
+ return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+#endif
+
+ /* We want to flag the fact that we saw this. We can't turn
+ off quoting entirely, because other characters in the
+ string might need it (consider "\"$@\""), but we need some
+ way to signal that the final split on the first character
+ of $IFS should be done, even though QUOTED is 1. */
+ /* XXX - should this test include Q_PATQUOTE? */
+ if (quoted_dollar_at_p && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ *quoted_dollar_at_p = 1;
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+
+ /* We want to separate the positional parameters with the first
+ character of $IFS in case $IFS is something other than a space.
+ We also want to make sure that splitting is done no matter what --
+ according to POSIX.2, this expands to a list of the positional
+ parameters no matter what IFS is set to. */
+ temp = string_list_dollar_at (list, quoted);
+
+ dispose_words (list);
+ break;
+
+ case LBRACE:
+ tdesc = parameter_brace_expand (string, &zindex, quoted,
+ quoted_dollar_at_p,
+ contains_dollar_at);
+
+ if (tdesc == &expand_wdesc_error || tdesc == &expand_wdesc_fatal)
+ return (tdesc);
+ temp = tdesc ? tdesc->word : (char *)0;
+
+ /* XXX */
+ /* Quoted nulls should be removed if there is anything else
+ in the string. */
+ /* Note that we saw the quoted null so we can add one back at
+ the end of this function if there are no other characters
+ in the string, discard TEMP, and go on. The exception to
+ this is when we have "${@}" and $1 is '', since $@ needs
+ special handling. */
+ if (tdesc && tdesc->word && (tdesc->flags & W_HASQUOTEDNULL) && QUOTED_NULL (temp))
+ {
+ if (had_quoted_null_p)
+ *had_quoted_null_p = 1;
+ if (*quoted_dollar_at_p == 0)
+ {
+ free (temp);
+ tdesc->word = temp = (char *)NULL;
+ }
+
+ }
+
+ ret = tdesc;
+ goto return0;
+
+ /* Do command or arithmetic substitution. */
+ case LPAREN:
+ /* We have to extract the contents of this paren substitution. */
+ t_index = zindex + 1;
+ temp = extract_command_subst (string, &t_index, 0);
+ zindex = t_index;
+
+ /* For Posix.2-style `$(( ))' arithmetic substitution,
+ extract the expression and pass it to the evaluator. */
+ if (temp && *temp == LPAREN)
+ {
+ char *temp2;
+ temp1 = temp + 1;
+ temp2 = savestring (temp1);
+ t_index = strlen (temp2) - 1;
+
+ if (temp2[t_index] != RPAREN)
+ {
+ free (temp2);
+ goto comsub;
+ }
+
+ /* Cut off ending `)' */
+ temp2[t_index] = '\0';
+
+ if (chk_arithsub (temp2, t_index) == 0)
+ {
+ free (temp2);
+ goto comsub;
+ }
+
+ /* Expand variables found inside the expression. */
+ temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
+ free (temp2);
+
+arithsub:
+ /* No error messages. */
+ this_command_name = (char *)NULL;
+ number = evalexp (temp1, &expok);
+ free (temp);
+ free (temp1);
+ if (expok == 0)
+ {
+ if (interactive_shell == 0 && posixly_correct)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ return (&expand_wdesc_fatal);
+ }
+ else
+ return (&expand_wdesc_error);
+ }
+ temp = itos (number);
+ break;
+ }
+
+comsub:
+ if (pflags & PF_NOCOMSUB)
+ /* we need zindex+1 because string[zindex] == RPAREN */
+ temp1 = substring (string, *sindex, zindex+1);
+ else
+ {
+ tdesc = command_substitute (temp, quoted);
+ temp1 = tdesc ? tdesc->word : (char *)NULL;
+ if (tdesc)
+ dispose_word_desc (tdesc);
+ }
+ FREE (temp);
+ temp = temp1;
+ break;
+
+ /* Do POSIX.2d9-style arithmetic substitution. This will probably go
+ away in a future bash release. */
+ case '[':
+ /* Extract the contents of this arithmetic substitution. */
+ t_index = zindex + 1;
+ temp = extract_arithmetic_subst (string, &t_index);
+ zindex = t_index;
+ if (temp == 0)
+ {
+ temp = savestring (string);
+ if (expanded_something)
+ *expanded_something = 0;
+ goto return0;
+ }
+
+ /* Do initial variable expansion. */
+ temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
+
+ goto arithsub;
+
+ default:
+ /* Find the variable in VARIABLE_LIST. */
+ temp = (char *)NULL;
+
+ for (t_index = zindex; (c = string[zindex]) && legal_variable_char (c); zindex++)
+ ;
+ temp1 = (zindex > t_index) ? substring (string, t_index, zindex) : (char *)NULL;
+
+ /* If this isn't a variable name, then just output the `$'. */
+ if (temp1 == 0 || *temp1 == '\0')
+ {
+ FREE (temp1);
+ temp = (char *)xmalloc (2);
+ temp[0] = '$';
+ temp[1] = '\0';
+ if (expanded_something)
+ *expanded_something = 0;
+ goto return0;
+ }
+
+ /* If the variable exists, return its value cell. */
+ var = find_variable (temp1);
+
+ if (var && invisible_p (var) == 0 && var_isset (var))
+ {
+#if defined (ARRAY_VARS)
+ if (assoc_p (var) || array_p (var))
+ {
+ temp = array_p (var) ? array_reference (array_cell (var), 0)
+ : assoc_reference (assoc_cell (var), "0");
+ if (temp)
+ temp = (*temp && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ? quote_string (temp)
+ : quote_escapes (temp);
+ else if (unbound_vars_is_error)
+ goto unbound_variable;
+ }
+ else
+#endif
+ {
+ temp = value_cell (var);
+
+ temp = (*temp && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ ? quote_string (temp)
+ : quote_escapes (temp);
+ }
+
+ free (temp1);
+
+ goto return0;
+ }
+
+ temp = (char *)NULL;
+
+unbound_variable:
+ if (unbound_vars_is_error)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ err_unboundvar (temp1);
+ }
+ else
+ {
+ free (temp1);
+ goto return0;
+ }
+
+ free (temp1);
+ last_command_exit_value = EXECUTION_FAILURE;
+ return ((unbound_vars_is_error && interactive_shell == 0)
+ ? &expand_wdesc_fatal
+ : &expand_wdesc_error);
+ }
+
+ if (string[zindex])
+ zindex++;
+
+return0:
+ *sindex = zindex;
+
+ if (ret == 0)
+ {
+ ret = alloc_word_desc ();
+ ret->flags = tflag; /* XXX */
+ ret->word = temp;
+ }
+ return ret;
+}
+
+/* Make a word list which is the result of parameter and variable
+ expansion, command substitution, arithmetic substitution, and
+ quote removal of WORD. Return a pointer to a WORD_LIST which is
+ the result of the expansion. If WORD contains a null word, the
+ word list returned is also null.
+
+ QUOTED contains flag values defined in shell.h.
+
+ ISEXP is used to tell expand_word_internal that the word should be
+ treated as the result of an expansion. This has implications for
+ how IFS characters in the word are treated.
+
+ CONTAINS_DOLLAR_AT and EXPANDED_SOMETHING are return values; when non-null
+ they point to an integer value which receives information about expansion.
+ CONTAINS_DOLLAR_AT gets non-zero if WORD contained "$@", else zero.
+ EXPANDED_SOMETHING get non-zero if WORD contained any parameter expansions,
+ else zero.
+
+ This only does word splitting in the case of $@ expansion. In that
+ case, we split on ' '. */
+
+/* Values for the local variable quoted_state. */
+#define UNQUOTED 0
+#define PARTIALLY_QUOTED 1
+#define WHOLLY_QUOTED 2
+
+static WORD_LIST *
+expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_something)
+ WORD_DESC *word;
+ int quoted, isexp;
+ int *contains_dollar_at;
+ int *expanded_something;
+{
+ WORD_LIST *list;
+ WORD_DESC *tword;
+
+ /* The intermediate string that we build while expanding. */
+ char *istring;
+
+ /* The current size of the above object. */
+ int istring_size;
+
+ /* Index into ISTRING. */
+ int istring_index;
+
+ /* Temporary string storage. */
+ char *temp, *temp1;
+
+ /* The text of WORD. */
+ register char *string;
+
+ /* The size of STRING. */
+ size_t string_size;
+
+ /* The index into STRING. */
+ int sindex;
+
+ /* This gets 1 if we see a $@ while quoted. */
+ int quoted_dollar_at;
+
+ /* One of UNQUOTED, PARTIALLY_QUOTED, or WHOLLY_QUOTED, depending on
+ whether WORD contains no quoting characters, a partially quoted
+ string (e.g., "xx"ab), or is fully quoted (e.g., "xxab"). */
+ int quoted_state;
+
+ /* State flags */
+ int had_quoted_null;
+ int has_dollar_at;
+ int tflag;
+
+ int assignoff; /* If assignment, offset of `=' */
+
+ register unsigned char c; /* Current character. */
+ int t_index; /* For calls to string_extract_xxx. */
+
+ char twochars[2];
+
+ DECLARE_MBSTATE;
+
+ istring = (char *)xmalloc (istring_size = DEFAULT_INITIAL_ARRAY_SIZE);
+ istring[istring_index = 0] = '\0';
+ quoted_dollar_at = had_quoted_null = has_dollar_at = 0;
+ quoted_state = UNQUOTED;
+
+ string = word->word;
+ if (string == 0)
+ goto finished_with_string;
+ /* Don't need the string length for the SADD... and COPY_ macros unless
+ multibyte characters are possible. */
+ string_size = (MB_CUR_MAX > 1) ? strlen (string) : 1;
+
+ if (contains_dollar_at)
+ *contains_dollar_at = 0;
+
+ assignoff = -1;
+
+ /* Begin the expansion. */
+
+ for (sindex = 0; ;)
+ {
+ c = string[sindex];
+
+ /* Case on toplevel character. */
+ switch (c)
+ {
+ case '\0':
+ goto finished_with_string;
+
+ case CTLESC:
+ sindex++;
+#if HANDLE_MULTIBYTE
+ if (MB_CUR_MAX > 1 && string[sindex])
+ {
+ SADD_MBQCHAR_BODY(temp, string, sindex, string_size);
+ }
+ else
+#endif
+ {
+ temp = (char *)xmalloc (3);
+ temp[0] = CTLESC;
+ temp[1] = c = string[sindex];
+ temp[2] = '\0';
+ }
+
+dollar_add_string:
+ if (string[sindex])
+ sindex++;
+
+add_string:
+ if (temp)
+ {
+ istring = sub_append_string (temp, istring, &istring_index, &istring_size);
+ temp = (char *)0;
+ }
+
+ break;
+
+#if defined (PROCESS_SUBSTITUTION)
+ /* Process substitution. */
+ case '<':
+ case '>':
+ {
+ if (string[++sindex] != LPAREN || (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (word->flags & (W_DQUOTE|W_NOPROCSUB)) || posixly_correct)
+ {
+ sindex--; /* add_character: label increments sindex */
+ goto add_character;
+ }
+ else
+ t_index = sindex + 1; /* skip past both '<' and LPAREN */
+
+ temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/
+ sindex = t_index;
+
+ /* If the process substitution specification is `<()', we want to
+ open the pipe for writing in the child and produce output; if
+ it is `>()', we want to open the pipe for reading in the child
+ and consume input. */
+ temp = temp1 ? process_substitute (temp1, (c == '>')) : (char *)0;
+
+ FREE (temp1);
+
+ goto dollar_add_string;
+ }
+#endif /* PROCESS_SUBSTITUTION */
+
+ case '=':
+ /* Posix.2 section 3.6.1 says that tildes following `=' in words
+ which are not assignment statements are not expanded. If the
+ shell isn't in posix mode, though, we perform tilde expansion
+ on `likely candidate' unquoted assignment statements (flags
+ include W_ASSIGNMENT but not W_QUOTED). A likely candidate
+ contains an unquoted :~ or =~. Something to think about: we
+ now have a flag that says to perform tilde expansion on arguments
+ to `assignment builtins' like declare and export that look like
+ assignment statements. We now do tilde expansion on such words
+ even in POSIX mode. */
+ if (word->flags & (W_ASSIGNRHS|W_NOTILDE))
+ {
+ if (isexp == 0 && isifs (c))
+ goto add_ifs_character;
+ else
+ goto add_character;
+ }
+ /* If we're not in posix mode or forcing assignment-statement tilde
+ expansion, note where the `=' appears in the word and prepare to
+ do tilde expansion following the first `='. */
+ if ((word->flags & W_ASSIGNMENT) &&
+ (posixly_correct == 0 || (word->flags & W_TILDEEXP)) &&
+ assignoff == -1 && sindex > 0)
+ assignoff = sindex;
+ if (sindex == assignoff && string[sindex+1] == '~') /* XXX */
+ word->flags |= W_ITILDE;
+#if 0
+ else if ((word->flags & W_ASSIGNMENT) &&
+ (posixly_correct == 0 || (word->flags & W_TILDEEXP)) &&
+ string[sindex+1] == '~')
+ word->flags |= W_ITILDE;
+#endif
+ if (isexp == 0 && isifs (c))
+ goto add_ifs_character;
+ else
+ goto add_character;
+
+ case ':':
+ if (word->flags & W_NOTILDE)
+ {
+ if (isexp == 0 && isifs (c))
+ goto add_ifs_character;
+ else
+ goto add_character;
+ }
+
+ if ((word->flags & (W_ASSIGNMENT|W_ASSIGNRHS|W_TILDEEXP)) &&
+ string[sindex+1] == '~')
+ word->flags |= W_ITILDE;
+
+ if (isexp == 0 && isifs (c))
+ goto add_ifs_character;
+ else
+ goto add_character;
+
+ case '~':
+ /* If the word isn't supposed to be tilde expanded, or we're not
+ at the start of a word or after an unquoted : or = in an
+ assignment statement, we don't do tilde expansion. */
+ if ((word->flags & (W_NOTILDE|W_DQUOTE)) ||
+ (sindex > 0 && ((word->flags & W_ITILDE) == 0)) ||
+ (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+ {
+ word->flags &= ~W_ITILDE;
+ if (isexp == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+ goto add_ifs_character;
+ else
+ goto add_character;
+ }
+
+ if (word->flags & W_ASSIGNRHS)
+ tflag = 2;
+ else if (word->flags & (W_ASSIGNMENT|W_TILDEEXP))
+ tflag = 1;
+ else
+ tflag = 0;
+
+ temp = bash_tilde_find_word (string + sindex, tflag, &t_index);
+
+ word->flags &= ~W_ITILDE;
+
+ if (temp && *temp && t_index > 0)
+ {
+ temp1 = bash_tilde_expand (temp, tflag);
+ if (temp1 && *temp1 == '~' && STREQ (temp, temp1))
+ {
+ FREE (temp);
+ FREE (temp1);
+ goto add_character; /* tilde expansion failed */
+ }
+ free (temp);
+ temp = temp1;
+ sindex += t_index;
+ goto add_quoted_string; /* XXX was add_string */
+ }
+ else
+ {
+ FREE (temp);
+ goto add_character;
+ }
+
+ case '$':
+ if (expanded_something)
+ *expanded_something = 1;
+
+ has_dollar_at = 0;
+ tword = param_expand (string, &sindex, quoted, expanded_something,
+ &has_dollar_at, &quoted_dollar_at,
+ &had_quoted_null,
+ (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0);
+
+ if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
+ {
+ free (string);
+ free (istring);
+ return ((tword == &expand_wdesc_error) ? &expand_word_error
+ : &expand_word_fatal);
+ }
+ if (contains_dollar_at && has_dollar_at)
+ *contains_dollar_at = 1;
+
+ if (tword && (tword->flags & W_HASQUOTEDNULL))
+ had_quoted_null = 1;
+
+ temp = tword->word;
+ dispose_word_desc (tword);
+
+ goto add_string;
+ break;
+
+ case '`': /* Backquoted command substitution. */
+ {
+ t_index = sindex++;
+
+ temp = string_extract (string, &sindex, "`", SX_REQMATCH);
+ /* The test of sindex against t_index is to allow bare instances of
+ ` to pass through, for backwards compatibility. */
+ if (temp == &extract_string_error || temp == &extract_string_fatal)
+ {
+ if (sindex - 1 == t_index)
+ {
+ sindex = t_index;
+ goto add_character;
+ }
+ report_error (_("bad substitution: no closing \"`\" in %s") , string+t_index);
+ free (string);
+ free (istring);
+ return ((temp == &extract_string_error) ? &expand_word_error
+ : &expand_word_fatal);
+ }
+
+ if (expanded_something)
+ *expanded_something = 1;
+
+ if (word->flags & W_NOCOMSUB)
+ /* sindex + 1 because string[sindex] == '`' */
+ temp1 = substring (string, t_index, sindex + 1);
+ else
+ {
+ de_backslash (temp);
+ tword = command_substitute (temp, quoted);
+ temp1 = tword ? tword->word : (char *)NULL;
+ if (tword)
+ dispose_word_desc (tword);
+ }
+ FREE (temp);
+ temp = temp1;
+ goto dollar_add_string;
+ }
+
+ case '\\':
+ if (string[sindex + 1] == '\n')
+ {
+ sindex += 2;
+ continue;
+ }
+
+ c = string[++sindex];
+
+ if (quoted & Q_HERE_DOCUMENT)
+ tflag = CBSHDOC;
+ else if (quoted & Q_DOUBLE_QUOTES)
+ tflag = CBSDQUOTE;
+ else
+ tflag = 0;
+
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0))
+ {
+ SCOPY_CHAR_I (twochars, '\\', c, string, sindex, string_size);
+ }
+ else if (c == 0)
+ {
+ c = CTLNUL;
+ sindex--; /* add_character: label increments sindex */
+ goto add_character;
+ }
+ else
+ {
+ SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size);
+ }
+
+ sindex++;
+add_twochars:
+ /* BEFORE jumping here, we need to increment sindex if appropriate */
+ RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size,
+ DEFAULT_ARRAY_SIZE);
+ istring[istring_index++] = twochars[0];
+ istring[istring_index++] = twochars[1];
+ istring[istring_index] = '\0';
+
+ break;
+
+ case '"':
+#if 0
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (word->flags & W_DQUOTE))
+#else
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+#endif
+ goto add_character;
+
+ t_index = ++sindex;
+ temp = string_extract_double_quoted (string, &sindex, 0);
+
+ /* If the quotes surrounded the entire string, then the
+ whole word was quoted. */
+ quoted_state = (t_index == 1 && string[sindex] == '\0')
+ ? WHOLLY_QUOTED
+ : PARTIALLY_QUOTED;
+
+ if (temp && *temp)
+ {
+ tword = alloc_word_desc ();
+ tword->word = temp;
+
+ temp = (char *)NULL;
+
+ has_dollar_at = 0;
+ /* Need to get W_HASQUOTEDNULL flag through this function. */
+ list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &has_dollar_at, (int *)NULL);
+
+ if (list == &expand_word_error || list == &expand_word_fatal)
+ {
+ free (istring);
+ free (string);
+ /* expand_word_internal has already freed temp_word->word
+ for us because of the way it prints error messages. */
+ tword->word = (char *)NULL;
+ dispose_word (tword);
+ return list;
+ }
+
+ dispose_word (tword);
+
+ /* "$@" (a double-quoted dollar-at) expands into nothing,
+ not even a NULL word, when there are no positional
+ parameters. */
+ if (list == 0 && has_dollar_at)
+ {
+ quoted_dollar_at++;
+ break;
+ }
+
+ /* If we get "$@", we know we have expanded something, so we
+ need to remember it for the final split on $IFS. This is
+ a special case; it's the only case where a quoted string
+ can expand into more than one word. It's going to come back
+ from the above call to expand_word_internal as a list with
+ a single word, in which all characters are quoted and
+ separated by blanks. What we want to do is to turn it back
+ into a list for the next piece of code. */
+ if (list)
+ dequote_list (list);
+
+ if (list && list->word && (list->word->flags & W_HASQUOTEDNULL))
+ had_quoted_null = 1;
+
+ if (has_dollar_at)
+ {
+ quoted_dollar_at++;
+ if (contains_dollar_at)
+ *contains_dollar_at = 1;
+ if (expanded_something)
+ *expanded_something = 1;
+ }
+ }
+ else
+ {
+ /* What we have is "". This is a minor optimization. */
+ FREE (temp);
+ list = (WORD_LIST *)NULL;
+ }
+
+ /* The code above *might* return a list (consider the case of "$@",
+ where it returns "$1", "$2", etc.). We can't throw away the
+ rest of the list, and we have to make sure each word gets added
+ as quoted. We test on tresult->next: if it is non-NULL, we
+ quote the whole list, save it to a string with string_list, and
+ add that string. We don't need to quote the results of this
+ (and it would be wrong, since that would quote the separators
+ as well), so we go directly to add_string. */
+ if (list)
+ {
+ if (list->next)
+ {
+ /* Testing quoted_dollar_at makes sure that "$@" is
+ split correctly when $IFS does not contain a space. */
+ temp = quoted_dollar_at
+ ? string_list_dollar_at (list, Q_DOUBLE_QUOTES)
+ : string_list (quote_list (list));
+ dispose_words (list);
+ goto add_string;
+ }
+ else
+ {
+ temp = savestring (list->word->word);
+ tflag = list->word->flags;
+ dispose_words (list);
+
+ /* If the string is not a quoted null string, we want
+ to remove any embedded unquoted CTLNUL characters.
+ We do not want to turn quoted null strings back into
+ the empty string, though. We do this because we
+ want to remove any quoted nulls from expansions that
+ contain other characters. For example, if we have
+ x"$*"y or "x$*y" and there are no positional parameters,
+ the $* should expand into nothing. */
+ /* We use the W_HASQUOTEDNULL flag to differentiate the
+ cases: a quoted null character as above and when
+ CTLNUL is contained in the (non-null) expansion
+ of some variable. We use the had_quoted_null flag to
+ pass the value through this function to its caller. */
+ if ((tflag & W_HASQUOTEDNULL) && QUOTED_NULL (temp) == 0)
+ remove_quoted_nulls (temp); /* XXX */
+ }
+ }
+ else
+ temp = (char *)NULL;
+
+ /* We do not want to add quoted nulls to strings that are only
+ partially quoted; we can throw them away. */
+ if (temp == 0 && quoted_state == PARTIALLY_QUOTED)
+ continue;
+
+ add_quoted_string:
+
+ if (temp)
+ {
+ temp1 = temp;
+ temp = quote_string (temp);
+ free (temp1);
+ goto add_string;
+ }
+ else
+ {
+ /* Add NULL arg. */
+ c = CTLNUL;
+ sindex--; /* add_character: label increments sindex */
+ goto add_character;
+ }
+
+ /* break; */
+
+ case '\'':
+#if 0
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (word->flags & W_DQUOTE))
+#else
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+#endif
+ goto add_character;
+
+ t_index = ++sindex;
+ temp = string_extract_single_quoted (string, &sindex);
+
+ /* If the entire STRING was surrounded by single quotes,
+ then the string is wholly quoted. */
+ quoted_state = (t_index == 1 && string[sindex] == '\0')
+ ? WHOLLY_QUOTED
+ : PARTIALLY_QUOTED;
+
+ /* If all we had was '', it is a null expansion. */
+ if (*temp == '\0')
+ {
+ free (temp);
+ temp = (char *)NULL;
+ }
+ else
+ remove_quoted_escapes (temp); /* ??? */
+
+ /* We do not want to add quoted nulls to strings that are only
+ partially quoted; such nulls are discarded. */
+ if (temp == 0 && (quoted_state == PARTIALLY_QUOTED))
+ continue;
+
+ /* If we have a quoted null expansion, add a quoted NULL to istring. */
+ if (temp == 0)
+ {
+ c = CTLNUL;
+ sindex--; /* add_character: label increments sindex */
+ goto add_character;
+ }
+ else
+ goto add_quoted_string;
+
+ /* break; */
+
+ default:
+ /* This is the fix for " $@ " */
+ add_ifs_character:
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (isexp == 0 && isifs (c)))
+ {
+ if (string[sindex]) /* from old goto dollar_add_string */
+ sindex++;
+ if (c == 0)
+ {
+ c = CTLNUL;
+ goto add_character;
+ }
+ else
+ {
+#if HANDLE_MULTIBYTE
+ if (MB_CUR_MAX > 1)
+ sindex--;
+
+ if (MB_CUR_MAX > 1)
+ {
+ SADD_MBQCHAR_BODY(temp, string, sindex, string_size);
+ }
+ else
+#endif
+ {
+ twochars[0] = CTLESC;
+ twochars[1] = c;
+if (c == ':')
+ itrace("add_ifs_character: adding quoted `%c'", c);
+ goto add_twochars;
+ }
+ }
+ }
+
+ SADD_MBCHAR (temp, string, sindex, string_size);
+
+ add_character:
+ RESIZE_MALLOCED_BUFFER (istring, istring_index, 1, istring_size,
+ DEFAULT_ARRAY_SIZE);
+ istring[istring_index++] = c;
+ istring[istring_index] = '\0';
+
+ /* Next character. */
+ sindex++;
+ }
+ }
+
+finished_with_string:
+ /* OK, we're ready to return. If we have a quoted string, and
+ quoted_dollar_at is not set, we do no splitting at all; otherwise
+ we split on ' '. The routines that call this will handle what to
+ do if nothing has been expanded. */
+
+ /* Partially and wholly quoted strings which expand to the empty
+ string are retained as an empty arguments. Unquoted strings
+ which expand to the empty string are discarded. The single
+ exception is the case of expanding "$@" when there are no
+ positional parameters. In that case, we discard the expansion. */
+
+ /* Because of how the code that handles "" and '' in partially
+ quoted strings works, we need to make ISTRING into a QUOTED_NULL
+ if we saw quoting characters, but the expansion was empty.
+ "" and '' are tossed away before we get to this point when
+ processing partially quoted strings. This makes "" and $xxx""
+ equivalent when xxx is unset. We also look to see whether we
+ saw a quoted null from a ${} expansion and add one back if we
+ need to. */
+
+ /* If we expand to nothing and there were no single or double quotes
+ in the word, we throw it away. Otherwise, we return a NULL word.
+ The single exception is for $@ surrounded by double quotes when
+ there are no positional parameters. In that case, we also throw
+ the word away. */
+
+ if (*istring == '\0')
+ {
+ if (quoted_dollar_at == 0 && (had_quoted_null || quoted_state == PARTIALLY_QUOTED))
+ {
+ istring[0] = CTLNUL;
+ istring[1] = '\0';
+ tword = make_bare_word (istring);
+ tword->flags |= W_HASQUOTEDNULL; /* XXX */
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ tword->flags |= W_QUOTED;
+ }
+ /* According to sh, ksh, and Posix.2, if a word expands into nothing
+ and a double-quoted "$@" appears anywhere in it, then the entire
+ word is removed. */
+ else if (quoted_state == UNQUOTED || quoted_dollar_at)
+ list = (WORD_LIST *)NULL;
+#if 0
+ else
+ {
+ tword = make_bare_word (istring);
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ tword->flags |= W_QUOTED;
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+ }
+#else
+ else
+ list = (WORD_LIST *)NULL;
+#endif
+ }
+ else if (word->flags & W_NOSPLIT)
+ {
+ tword = make_bare_word (istring);
+ if (word->flags & W_ASSIGNMENT)
+ tword->flags |= W_ASSIGNMENT; /* XXX */
+ if (word->flags & W_COMPASSIGN)
+ tword->flags |= W_COMPASSIGN; /* XXX */
+ if (word->flags & W_NOGLOB)
+ tword->flags |= W_NOGLOB; /* XXX */
+ if (word->flags & W_NOEXPAND)
+ tword->flags |= W_NOEXPAND; /* XXX */
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ tword->flags |= W_QUOTED;
+ if (had_quoted_null)
+ tword->flags |= W_HASQUOTEDNULL;
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+ }
+ else
+ {
+ char *ifs_chars;
+
+ ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL;
+
+ /* If we have $@, we need to split the results no matter what. If
+ IFS is unset or NULL, string_list_dollar_at has separated the
+ positional parameters with a space, so we split on space (we have
+ set ifs_chars to " \t\n" above if ifs is unset). If IFS is set,
+ string_list_dollar_at has separated the positional parameters
+ with the first character of $IFS, so we split on $IFS. */
+ if (has_dollar_at && ifs_chars)
+ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
+ else
+ {
+ tword = make_bare_word (istring);
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED))
+ tword->flags |= W_QUOTED;
+ if (word->flags & W_ASSIGNMENT)
+ tword->flags |= W_ASSIGNMENT;
+ if (word->flags & W_COMPASSIGN)
+ tword->flags |= W_COMPASSIGN;
+ if (word->flags & W_NOGLOB)
+ tword->flags |= W_NOGLOB;
+ if (word->flags & W_NOEXPAND)
+ tword->flags |= W_NOEXPAND;
+ if (had_quoted_null)
+ tword->flags |= W_HASQUOTEDNULL; /* XXX */
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+ }
+ }
+
+ free (istring);
+ return (list);
+}
+
+/* **************************************************************** */
+/* */
+/* Functions for Quote Removal */
+/* */
+/* **************************************************************** */
+
+/* Perform quote removal on STRING. If QUOTED > 0, assume we are obeying the
+ backslash quoting rules for within double quotes or a here document. */
+char *
+string_quote_removal (string, quoted)
+ char *string;
+ int quoted;
+{
+ size_t slen;
+ char *r, *result_string, *temp, *send;
+ int sindex, tindex, dquote;
+ unsigned char c;
+ DECLARE_MBSTATE;
+
+ /* The result can be no longer than the original string. */
+ slen = strlen (string);
+ send = string + slen;
+
+ r = result_string = (char *)xmalloc (slen + 1);
+
+ for (dquote = sindex = 0; c = string[sindex];)
+ {
+ switch (c)
+ {
+ case '\\':
+ c = string[++sindex];
+ if (c == 0)
+ {
+ *r++ = '\\';
+ break;
+ }
+ if (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) && (sh_syntaxtab[c] & CBSDQUOTE) == 0)
+ *r++ = '\\';
+ /* FALLTHROUGH */
+
+ default:
+ SCOPY_CHAR_M (r, string, send, sindex);
+ break;
+
+ case '\'':
+ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote)
+ {
+ *r++ = c;
+ sindex++;
+ break;
+ }
+ tindex = sindex + 1;
+ temp = string_extract_single_quoted (string, &tindex);
+ if (temp)
+ {
+ strcpy (r, temp);
+ r += strlen (r);
+ free (temp);
+ }
+ sindex = tindex;
+ break;
+
+ case '"':
+ dquote = 1 - dquote;
+ sindex++;
+ break;
+ }
+ }
+ *r = '\0';
+ return (result_string);
+}
+
+#if 0
+/* UNUSED */
+/* Perform quote removal on word WORD. This allocates and returns a new
+ WORD_DESC *. */
+WORD_DESC *
+word_quote_removal (word, quoted)
+ WORD_DESC *word;
+ int quoted;
+{
+ WORD_DESC *w;
+ char *t;
+
+ t = string_quote_removal (word->word, quoted);
+ w = alloc_word_desc ();
+ w->word = t ? t : savestring ("");
+ return (w);
+}
+
+/* Perform quote removal on all words in LIST. If QUOTED is non-zero,
+ the members of the list are treated as if they are surrounded by
+ double quotes. Return a new list, or NULL if LIST is NULL. */
+WORD_LIST *
+word_list_quote_removal (list, quoted)
+ WORD_LIST *list;
+ int quoted;
+{
+ WORD_LIST *result, *t, *tresult, *e;
+
+ for (t = list, result = (WORD_LIST *)NULL; t; t = t->next)
+ {
+ tresult = make_word_list (word_quote_removal (t->word, quoted), (WORD_LIST *)NULL);
+#if 0
+ result = (WORD_LIST *) list_append (result, tresult);
+#else
+ if (result == 0)
+ result = e = tresult;
+ else
+ {
+ e->next = tresult;
+ while (e->next)
+ e = e->next;
+ }
+#endif
+ }
+ return (result);
+}
+#endif
+
+/*******************************************
+ * *
+ * Functions to perform word splitting *
+ * *
+ *******************************************/
+
+void
+setifs (v)
+ SHELL_VAR *v;
+{
+ char *t;
+ unsigned char uc;
+
+ ifs_var = v;
+ ifs_value = (v && value_cell (v)) ? value_cell (v) : " \t\n";
+
+ /* Should really merge ifs_cmap with sh_syntaxtab. XXX - doesn't yet
+ handle multibyte chars in IFS */
+ memset (ifs_cmap, '\0', sizeof (ifs_cmap));
+ for (t = ifs_value ; t && *t; t++)
+ {
+ uc = *t;
+ ifs_cmap[uc] = 1;
+ }
+
+#if defined (HANDLE_MULTIBYTE)
+ if (ifs_value == 0)
+ {
+ ifs_firstc[0] = '\0';
+ ifs_firstc_len = 1;
+ }
+ else
+ {
+ size_t ifs_len;
+ ifs_len = strnlen (ifs_value, MB_CUR_MAX);
+ ifs_firstc_len = MBLEN (ifs_value, ifs_len);
+ if (ifs_firstc_len == 1 || ifs_firstc_len == 0 || MB_INVALIDCH (ifs_firstc_len))
+ {
+ ifs_firstc[0] = ifs_value[0];
+ ifs_firstc[1] = '\0';
+ ifs_firstc_len = 1;
+ }
+ else
+ memcpy (ifs_firstc, ifs_value, ifs_firstc_len);
+ }
+#else
+ ifs_firstc = ifs_value ? *ifs_value : 0;
+#endif
+}
+
+char *
+getifs ()
+{
+ return ifs_value;
+}
+
+/* This splits a single word into a WORD LIST on $IFS, but only if the word
+ is not quoted. list_string () performs quote removal for us, even if we
+ don't do any splitting. */
+WORD_LIST *
+word_split (w, ifs_chars)
+ WORD_DESC *w;
+ char *ifs_chars;
+{
+ WORD_LIST *result;
+
+ if (w)
+ {
+ char *xifs;
+
+ xifs = ((w->flags & W_QUOTED) || ifs_chars == 0) ? "" : ifs_chars;
+ result = list_string (w->word, xifs, w->flags & W_QUOTED);
+ }
+ else
+ result = (WORD_LIST *)NULL;
+
+ return (result);
+}
+
+/* Perform word splitting on LIST and return the RESULT. It is possible
+ to return (WORD_LIST *)NULL. */
+static WORD_LIST *
+word_list_split (list)
+ WORD_LIST *list;
+{
+ WORD_LIST *result, *t, *tresult, *e;
+
+ for (t = list, result = (WORD_LIST *)NULL; t; t = t->next)
+ {
+ tresult = word_split (t->word, ifs_value);
+ if (result == 0)
+ result = e = tresult;
+ else
+ {
+ e->next = tresult;
+ while (e->next)
+ e = e->next;
+ }
+ }
+ return (result);
+}
+
+/**************************************************
+ * *
+ * Functions to expand an entire WORD_LIST *
+ * *
+ **************************************************/
+
+/* Do any word-expansion-specific cleanup and jump to top_level */
+static void
+exp_jump_to_top_level (v)
+ int v;
+{
+ set_pipestatus_from_exit (last_command_exit_value);
+
+ /* Cleanup code goes here. */
+ expand_no_split_dollar_star = 0; /* XXX */
+ expanding_redir = 0;
+ assigning_in_environment = 0;
+
+ if (parse_and_execute_level == 0)
+ top_level_cleanup (); /* from sig.c */
+
+ jump_to_top_level (v);
+}
+
+/* Put NLIST (which is a WORD_LIST * of only one element) at the front of
+ ELIST, and set ELIST to the new list. */
+#define PREPEND_LIST(nlist, elist) \
+ do { nlist->next = elist; elist = nlist; } while (0)
+
+/* Separate out any initial variable assignments from TLIST. If set -k has
+ been executed, remove all assignment statements from TLIST. Initial
+ variable assignments and other environment assignments are placed
+ on SUBST_ASSIGN_VARLIST. */
+static WORD_LIST *
+separate_out_assignments (tlist)
+ WORD_LIST *tlist;
+{
+ register WORD_LIST *vp, *lp;
+
+ if (tlist == 0)
+ return ((WORD_LIST *)NULL);
+
+ if (subst_assign_varlist)
+ dispose_words (subst_assign_varlist); /* Clean up after previous error */
+
+ subst_assign_varlist = (WORD_LIST *)NULL;
+ vp = lp = tlist;
+
+ /* Separate out variable assignments at the start of the command.
+ Loop invariant: vp->next == lp
+ Loop postcondition:
+ lp = list of words left after assignment statements skipped
+ tlist = original list of words
+ */
+ while (lp && (lp->word->flags & W_ASSIGNMENT))
+ {
+ vp = lp;
+ lp = lp->next;
+ }
+
+ /* If lp != tlist, we have some initial assignment statements.
+ We make SUBST_ASSIGN_VARLIST point to the list of assignment
+ words and TLIST point to the remaining words. */
+ if (lp != tlist)
+ {
+ subst_assign_varlist = tlist;
+ /* ASSERT(vp->next == lp); */
+ vp->next = (WORD_LIST *)NULL; /* terminate variable list */
+ tlist = lp; /* remainder of word list */
+ }
+
+ /* vp == end of variable list */
+ /* tlist == remainder of original word list without variable assignments */
+ if (!tlist)
+ /* All the words in tlist were assignment statements */
+ return ((WORD_LIST *)NULL);
+
+ /* ASSERT(tlist != NULL); */
+ /* ASSERT((tlist->word->flags & W_ASSIGNMENT) == 0); */
+
+ /* If the -k option is in effect, we need to go through the remaining
+ words, separate out the assignment words, and place them on
+ SUBST_ASSIGN_VARLIST. */
+ if (place_keywords_in_env)
+ {
+ WORD_LIST *tp; /* tp == running pointer into tlist */
+
+ tp = tlist;
+ lp = tlist->next;
+
+ /* Loop Invariant: tp->next == lp */
+ /* Loop postcondition: tlist == word list without assignment statements */
+ while (lp)
+ {
+ if (lp->word->flags & W_ASSIGNMENT)
+ {
+ /* Found an assignment statement, add this word to end of
+ subst_assign_varlist (vp). */
+ if (!subst_assign_varlist)
+ subst_assign_varlist = vp = lp;
+ else
+ {
+ vp->next = lp;
+ vp = lp;
+ }
+
+ /* Remove the word pointed to by LP from TLIST. */
+ tp->next = lp->next;
+ /* ASSERT(vp == lp); */
+ lp->next = (WORD_LIST *)NULL;
+ lp = tp->next;
+ }
+ else
+ {
+ tp = lp;
+ lp = lp->next;
+ }
+ }
+ }
+ return (tlist);
+}
+
+#define WEXP_VARASSIGN 0x001
+#define WEXP_BRACEEXP 0x002
+#define WEXP_TILDEEXP 0x004
+#define WEXP_PARAMEXP 0x008
+#define WEXP_PATHEXP 0x010
+
+/* All of the expansions, including variable assignments at the start of
+ the list. */
+#define WEXP_ALL (WEXP_VARASSIGN|WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP|WEXP_PATHEXP)
+
+/* All of the expansions except variable assignments at the start of
+ the list. */
+#define WEXP_NOVARS (WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP|WEXP_PATHEXP)
+
+/* All of the `shell expansions': brace expansion, tilde expansion, parameter
+ expansion, command substitution, arithmetic expansion, word splitting, and
+ quote removal. */
+#define WEXP_SHELLEXP (WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP)
+
+/* Take the list of words in LIST and do the various substitutions. Return
+ a new list of words which is the expanded list, and without things like
+ variable assignments. */
+
+WORD_LIST *
+expand_words (list)
+ WORD_LIST *list;
+{
+ return (expand_word_list_internal (list, WEXP_ALL));
+}
+
+/* Same as expand_words (), but doesn't hack variable or environment
+ variables. */
+WORD_LIST *
+expand_words_no_vars (list)
+ WORD_LIST *list;
+{
+ return (expand_word_list_internal (list, WEXP_NOVARS));
+}
+
+WORD_LIST *
+expand_words_shellexp (list)
+ WORD_LIST *list;
+{
+ return (expand_word_list_internal (list, WEXP_SHELLEXP));
+}
+
+static WORD_LIST *
+glob_expand_word_list (tlist, eflags)
+ WORD_LIST *tlist;
+ int eflags;
+{
+ char **glob_array, *temp_string;
+ register int glob_index;
+ WORD_LIST *glob_list, *output_list, *disposables, *next;
+ WORD_DESC *tword;
+
+ output_list = disposables = (WORD_LIST *)NULL;
+ glob_array = (char **)NULL;
+ while (tlist)
+ {
+ /* For each word, either globbing is attempted or the word is
+ added to orig_list. If globbing succeeds, the results are
+ added to orig_list and the word (tlist) is added to the list
+ of disposable words. If globbing fails and failed glob
+ expansions are left unchanged (the shell default), the
+ original word is added to orig_list. If globbing fails and
+ failed glob expansions are removed, the original word is
+ added to the list of disposable words. orig_list ends up
+ in reverse order and requires a call to REVERSE_LIST to
+ be set right. After all words are examined, the disposable
+ words are freed. */
+ next = tlist->next;
+
+ /* If the word isn't an assignment and contains an unquoted
+ pattern matching character, then glob it. */
+ if ((tlist->word->flags & W_NOGLOB) == 0 &&
+ unquoted_glob_pattern_p (tlist->word->word))
+ {
+ glob_array = shell_glob_filename (tlist->word->word);
+
+ /* Handle error cases.
+ I don't think we should report errors like "No such file
+ or directory". However, I would like to report errors
+ like "Read failed". */
+
+ if (glob_array == 0 || GLOB_FAILED (glob_array))
+ {
+ glob_array = (char **)xmalloc (sizeof (char *));
+ glob_array[0] = (char *)NULL;
+ }
+
+ /* Dequote the current word in case we have to use it. */
+ if (glob_array[0] == NULL)
+ {
+ temp_string = dequote_string (tlist->word->word);
+ free (tlist->word->word);
+ tlist->word->word = temp_string;
+ }
+
+ /* Make the array into a word list. */
+ glob_list = (WORD_LIST *)NULL;
+ for (glob_index = 0; glob_array[glob_index]; glob_index++)
+ {
+ tword = make_bare_word (glob_array[glob_index]);
+ tword->flags |= W_GLOBEXP; /* XXX */
+ glob_list = make_word_list (tword, glob_list);
+ }
+
+ if (glob_list)
+ {
+ output_list = (WORD_LIST *)list_append (glob_list, output_list);
+ PREPEND_LIST (tlist, disposables);
+ }
+ else if (fail_glob_expansion != 0)
+ {
+ report_error (_("no match: %s"), tlist->word->word);
+ exp_jump_to_top_level (DISCARD);
+ }
+ else if (allow_null_glob_expansion == 0)
+ {
+ /* Failed glob expressions are left unchanged. */
+ PREPEND_LIST (tlist, output_list);
+ }
+ else
+ {
+ /* Failed glob expressions are removed. */
+ PREPEND_LIST (tlist, disposables);
+ }
+ }
+ else
+ {
+ /* Dequote the string. */
+ temp_string = dequote_string (tlist->word->word);
+ free (tlist->word->word);
+ tlist->word->word = temp_string;
+ PREPEND_LIST (tlist, output_list);
+ }
+
+ strvec_dispose (glob_array);
+ glob_array = (char **)NULL;
+
+ tlist = next;
+ }
+
+ if (disposables)
+ dispose_words (disposables);
+
+ if (output_list)
+ output_list = REVERSE_LIST (output_list, WORD_LIST *);
+
+ return (output_list);
+}
+
+#if defined (BRACE_EXPANSION)
+static WORD_LIST *
+brace_expand_word_list (tlist, eflags)
+ WORD_LIST *tlist;
+ int eflags;
+{
+ register char **expansions;
+ char *temp_string;
+ WORD_LIST *disposables, *output_list, *next;
+ WORD_DESC *w;
+ int eindex;
+
+ for (disposables = output_list = (WORD_LIST *)NULL; tlist; tlist = next)
+ {
+ next = tlist->next;
+
+ if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG))
+ {
+/*itrace("brace_expand_word_list: %s: W_COMPASSIGN|W_ASSIGNARG", tlist->word->word);*/
+ PREPEND_LIST (tlist, output_list);
+ continue;
+ }
+
+ /* Only do brace expansion if the word has a brace character. If
+ not, just add the word list element to BRACES and continue. In
+ the common case, at least when running shell scripts, this will
+ degenerate to a bunch of calls to `mbschr', and then what is
+ basically a reversal of TLIST into BRACES, which is corrected
+ by a call to REVERSE_LIST () on BRACES when the end of TLIST
+ is reached. */
+ if (mbschr (tlist->word->word, LBRACE))
+ {
+ expansions = brace_expand (tlist->word->word);
+
+ for (eindex = 0; temp_string = expansions[eindex]; eindex++)
+ {
+ w = make_word (temp_string);
+ /* If brace expansion didn't change the word, preserve
+ the flags. We may want to preserve the flags
+ unconditionally someday -- XXX */
+ if (STREQ (temp_string, tlist->word->word))
+ w->flags = tlist->word->flags;
+ output_list = make_word_list (w, output_list);
+ free (expansions[eindex]);
+ }
+ free (expansions);
+
+ /* Add TLIST to the list of words to be freed after brace
+ expansion has been performed. */
+ PREPEND_LIST (tlist, disposables);
+ }
+ else
+ PREPEND_LIST (tlist, output_list);
+ }
+
+ if (disposables)
+ dispose_words (disposables);
+
+ if (output_list)
+ output_list = REVERSE_LIST (output_list, WORD_LIST *);
+
+ return (output_list);
+}
+#endif
+
+#if defined (ARRAY_VARS)
+/* Take WORD, a compound associative array assignment, and internally run
+ 'declare -A w', where W is the variable name portion of WORD. */
+static int
+make_internal_declare (word, option)
+ char *word;
+ char *option;
+{
+ int t;
+ WORD_LIST *wl;
+ WORD_DESC *w;
+
+ w = make_word (word);
+
+ t = assignment (w->word, 0);
+ w->word[t] = '\0';
+
+ wl = make_word_list (w, (WORD_LIST *)NULL);
+ wl = make_word_list (make_word (option), wl);
+
+ return (declare_builtin (wl));
+}
+#endif
+
+static WORD_LIST *
+shell_expand_word_list (tlist, eflags)
+ WORD_LIST *tlist;
+ int eflags;
+{
+ WORD_LIST *expanded, *orig_list, *new_list, *next, *temp_list;
+ int expanded_something, has_dollar_at;
+ char *temp_string;
+
+ /* We do tilde expansion all the time. This is what 1003.2 says. */
+ new_list = (WORD_LIST *)NULL;
+ for (orig_list = tlist; tlist; tlist = next)
+ {
+ temp_string = tlist->word->word;
+
+ next = tlist->next;
+
+#if defined (ARRAY_VARS)
+ /* If this is a compound array assignment to a builtin that accepts
+ such assignments (e.g., `declare'), take the assignment and perform
+ it separately, handling the semantics of declarations inside shell
+ functions. This avoids the double-evaluation of such arguments,
+ because `declare' does some evaluation of compound assignments on
+ its own. */
+ if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG))
+ {
+ int t;
+
+ if (tlist->word->flags & W_ASSIGNASSOC)
+ make_internal_declare (tlist->word->word, "-A");
+
+ t = do_word_assignment (tlist->word);
+ if (t == 0)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level (DISCARD);
+ }
+
+ /* Now transform the word as ksh93 appears to do and go on */
+ t = assignment (tlist->word->word, 0);
+ tlist->word->word[t] = '\0';
+ tlist->word->flags &= ~(W_ASSIGNMENT|W_NOSPLIT|W_COMPASSIGN|W_ASSIGNARG|W_ASSIGNASSOC);
+ }
+#endif
+
+ expanded_something = 0;
+ expanded = expand_word_internal
+ (tlist->word, 0, 0, &has_dollar_at, &expanded_something);
+
+ if (expanded == &expand_word_error || expanded == &expand_word_fatal)
+ {
+ /* By convention, each time this error is returned,
+ tlist->word->word has already been freed. */
+ tlist->word->word = (char *)NULL;
+
+ /* Dispose our copy of the original list. */
+ dispose_words (orig_list);
+ /* Dispose the new list we're building. */
+ dispose_words (new_list);
+
+ last_command_exit_value = EXECUTION_FAILURE;
+ if (expanded == &expand_word_error)
+ exp_jump_to_top_level (DISCARD);
+ else
+ exp_jump_to_top_level (FORCE_EOF);
+ }
+
+ /* Don't split words marked W_NOSPLIT. */
+ if (expanded_something && (tlist->word->flags & W_NOSPLIT) == 0)
+ {
+ temp_list = word_list_split (expanded);
+ dispose_words (expanded);
+ }
+ else
+ {
+ /* If no parameter expansion, command substitution, process
+ substitution, or arithmetic substitution took place, then
+ do not do word splitting. We still have to remove quoted
+ null characters from the result. */
+ word_list_remove_quoted_nulls (expanded);
+ temp_list = expanded;
+ }
+
+ expanded = REVERSE_LIST (temp_list, WORD_LIST *);
+ new_list = (WORD_LIST *)list_append (expanded, new_list);
+ }
+
+ if (orig_list)
+ dispose_words (orig_list);
+
+ if (new_list)
+ new_list = REVERSE_LIST (new_list, WORD_LIST *);
+
+ return (new_list);
+}
+
+/* The workhorse for expand_words () and expand_words_no_vars ().
+ First arg is LIST, a WORD_LIST of words.
+ Second arg EFLAGS is a flags word controlling which expansions are
+ performed.
+
+ This does all of the substitutions: brace expansion, tilde expansion,
+ parameter expansion, command substitution, arithmetic expansion,
+ process substitution, word splitting, and pathname expansion, according
+ to the bits set in EFLAGS. Words with the W_QUOTED or W_NOSPLIT bits
+ set, or for which no expansion is done, do not undergo word splitting.
+ Words with the W_NOGLOB bit set do not undergo pathname expansion. */
+static WORD_LIST *
+expand_word_list_internal (list, eflags)
+ WORD_LIST *list;
+ int eflags;
+{
+ WORD_LIST *new_list, *temp_list;
+ int tint;
+
+ if (list == 0)
+ return ((WORD_LIST *)NULL);
+
+ garglist = new_list = copy_word_list (list);
+ if (eflags & WEXP_VARASSIGN)
+ {
+ garglist = new_list = separate_out_assignments (new_list);
+ if (new_list == 0)
+ {
+ if (subst_assign_varlist)
+ {
+ /* All the words were variable assignments, so they are placed
+ into the shell's environment. */
+ for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next)
+ {
+ this_command_name = (char *)NULL; /* no arithmetic errors */
+ tint = do_word_assignment (temp_list->word);
+ /* Variable assignment errors in non-interactive shells
+ running in Posix.2 mode cause the shell to exit. */
+ if (tint == 0)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ if (interactive_shell == 0 && posixly_correct)
+ exp_jump_to_top_level (FORCE_EOF);
+ else
+ exp_jump_to_top_level (DISCARD);
+ }
+ }
+ dispose_words (subst_assign_varlist);
+ subst_assign_varlist = (WORD_LIST *)NULL;
+ }
+ return ((WORD_LIST *)NULL);
+ }
+ }
+
+ /* Begin expanding the words that remain. The expansions take place on
+ things that aren't really variable assignments. */
+
+#if defined (BRACE_EXPANSION)
+ /* Do brace expansion on this word if there are any brace characters
+ in the string. */
+ if ((eflags & WEXP_BRACEEXP) && brace_expansion && new_list)
+ new_list = brace_expand_word_list (new_list, eflags);
+#endif /* BRACE_EXPANSION */
+
+ /* Perform the `normal' shell expansions: tilde expansion, parameter and
+ variable substitution, command substitution, arithmetic expansion,
+ and word splitting. */
+ new_list = shell_expand_word_list (new_list, eflags);
+
+ /* Okay, we're almost done. Now let's just do some filename
+ globbing. */
+ if (new_list)
+ {
+ if ((eflags & WEXP_PATHEXP) && disallow_filename_globbing == 0)
+ /* Glob expand the word list unless globbing has been disabled. */
+ new_list = glob_expand_word_list (new_list, eflags);
+ else
+ /* Dequote the words, because we're not performing globbing. */
+ new_list = dequote_list (new_list);
+ }
+
+ if ((eflags & WEXP_VARASSIGN) && subst_assign_varlist)
+ {
+ sh_wassign_func_t *assign_func;
+
+ /* If the remainder of the words expand to nothing, Posix.2 requires
+ that the variable and environment assignments affect the shell's
+ environment. */
+ assign_func = new_list ? assign_in_env : do_word_assignment;
+ tempenv_assign_error = 0;
+
+ for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next)
+ {
+ this_command_name = (char *)NULL;
+ assigning_in_environment = (assign_func == assign_in_env);
+ tint = (*assign_func) (temp_list->word);
+ assigning_in_environment = 0;
+ /* Variable assignment errors in non-interactive shells running
+ in Posix.2 mode cause the shell to exit. */
+ if (tint == 0)
+ {
+ if (assign_func == do_word_assignment)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ if (interactive_shell == 0 && posixly_correct)
+ exp_jump_to_top_level (FORCE_EOF);
+ else
+ exp_jump_to_top_level (DISCARD);
+ }
+ else
+ tempenv_assign_error++;
+ }
+ }
+
+ dispose_words (subst_assign_varlist);
+ subst_assign_varlist = (WORD_LIST *)NULL;
+ }
+
+#if 0
+ tint = list_length (new_list) + 1;
+ RESIZE_MALLOCED_BUFFER (glob_argv_flags, 0, tint, glob_argv_flags_size, 16);
+ for (tint = 0, temp_list = new_list; temp_list; temp_list = temp_list->next)
+ glob_argv_flags[tint++] = (temp_list->word->flags & W_GLOBEXP) ? '1' : '0';
+ glob_argv_flags[tint] = '\0';
+#endif
+
+ return (new_list);
+}
diff --git a/subst.c~ b/subst.c~
index 6655861d..55090287 100644
--- a/subst.c~
+++ b/subst.c~
@@ -86,6 +86,7 @@ extern int errno;
/* Flags for the `pflags' argument to param_expand() */
#define PF_NOCOMSUB 0x01 /* Do not perform command substitution */
#define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */
+#define PF_NOSPLIT2 0x04 /* same as W_NOSPLIT2 */
/* These defs make it easier to use the editor. */
#define LBRACE '{'
@@ -293,7 +294,7 @@ static char *parameter_brace_patsub __P((char *, char *, char *, int));
static char *pos_params_casemod __P((char *, char *, int, int));
static char *parameter_brace_casemod __P((char *, char *, int, char *, int));
-static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int *, int *));
+static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int, int *, int *));
static WORD_DESC *param_expand __P((char *, int *, int, int *, int *, int *, int *, int));
static WORD_LIST *expand_word_internal __P((WORD_DESC *, int, int, int *, int *));
@@ -1630,7 +1631,7 @@ skip_to_delim (string, start, delims, flags)
char *delims;
int flags;
{
- int i, pass_next, backq, si, c, invert, skipquote;
+ int i, pass_next, backq, si, c, invert, skipquote, skipcmd;
size_t slen;
char *temp;
DECLARE_MBSTATE;
@@ -1639,6 +1640,7 @@ skip_to_delim (string, start, delims, flags)
if (flags & SD_NOJMP)
no_longjmp_on_fatal_error = 1;
invert = (flags & SD_INVERT);
+ skipcmd = (flags & SD_NOSKIPCMD) == 0;
i = start;
pass_next = backq = 0;
@@ -1684,7 +1686,7 @@ skip_to_delim (string, start, delims, flags)
: skip_double_quoted (string, slen, ++i);
/* no increment, the skip functions increment past the closing quote. */
}
- else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE))
+ else if (c == '$' && ((skipcmd && string[i+1] == LPAREN) || string[i+1] == LBRACE))
{
si = i + 2;
if (string[si] == '\0')
@@ -1701,7 +1703,7 @@ skip_to_delim (string, start, delims, flags)
continue;
}
#if defined (PROCESS_SUBSTITUTION)
- else if ((c == '<' || c == '>') && string[i+1] == LPAREN)
+ else if (skipcmd && (c == '<' || c == '>') && string[i+1] == LPAREN)
{
si = i + 2;
if (string[si] == '\0')
@@ -3075,6 +3077,7 @@ cond_expand_word (w, special)
if (w->word == 0 || w->word[0] == '\0')
return ((char *)NULL);
+ w->flags |= W_NOSPLIT2;
l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
if (l)
{
@@ -4502,6 +4505,7 @@ expand_word_leave_quoted (word, quoted)
if (ifs_firstc == 0)
#endif
word->flags |= W_NOSPLIT;
+ word->flags |= W_NOSPLIT2;
result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
expand_no_split_dollar_star = 0;
@@ -6603,9 +6607,9 @@ chk_arithsub (s, len)
/* ${[#][!]name[[:][^[^]][,[,]]#[#]%[%]-=?+[word][:e1[:e2]]]} */
static WORD_DESC *
-parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_dollar_at)
+parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, contains_dollar_at)
char *string;
- int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at;
+ int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at, pflags;
{
int check_nullness, var_is_set, var_is_null, var_is_special;
int want_substring, want_indir, want_patsub, want_casemod;
@@ -6845,7 +6849,7 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll
if (want_indir)
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
else
- tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND);
+ tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&PF_NOSPLIT2));
if (tdesc)
{
@@ -7279,6 +7283,11 @@ param_expand (string, sindex, quoted, expanded_something,
if (contains_dollar_at)
*contains_dollar_at = 1;
+#if 1
+ if (pflags & PF_NOSPLIT2)
+ temp = string_list_internal (quoted ? quote_list (list) : list, " ");
+ else
+#endif
/* We want to separate the positional parameters with the first
character of $IFS in case $IFS is something other than a space.
We also want to make sure that splitting is done no matter what --
@@ -7290,7 +7299,7 @@ param_expand (string, sindex, quoted, expanded_something,
break;
case LBRACE:
- tdesc = parameter_brace_expand (string, &zindex, quoted,
+ tdesc = parameter_brace_expand (string, &zindex, quoted, pflags,
quoted_dollar_at_p,
contains_dollar_at);
@@ -7568,6 +7577,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin
int had_quoted_null;
int has_dollar_at;
int tflag;
+ int pflags; /* flags passed to param_expand */
int assignoff; /* If assignment, offset of `=' */
@@ -7677,7 +7687,7 @@ add_string:
even in POSIX mode. */
if (word->flags & (W_ASSIGNRHS|W_NOTILDE))
{
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7697,7 +7707,7 @@ add_string:
string[sindex+1] == '~')
word->flags |= W_ITILDE;
#endif
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7705,7 +7715,7 @@ add_string:
case ':':
if (word->flags & W_NOTILDE)
{
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7715,7 +7725,7 @@ add_string:
string[sindex+1] == '~')
word->flags |= W_ITILDE;
- if (isexp == 0 && isifs (c))
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
goto add_ifs_character;
else
goto add_character;
@@ -7729,7 +7739,7 @@ add_string:
(quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
{
word->flags &= ~W_ITILDE;
- if (isexp == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+ if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
goto add_ifs_character;
else
goto add_character;
@@ -7771,10 +7781,12 @@ add_string:
*expanded_something = 1;
has_dollar_at = 0;
+ pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
+ if (word->flags & W_NOSPLIT2)
+ pflags |= PF_NOSPLIT2;
tword = param_expand (string, &sindex, quoted, expanded_something,
&has_dollar_at, &quoted_dollar_at,
- &had_quoted_null,
- (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0);
+ &had_quoted_null, pflags);
if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
{
@@ -7969,6 +7981,11 @@ add_twochars:
{
if (list->next)
{
+#if 1
+ if (quoted_dollar_at && word->flags & W_NOSPLIT2)
+ temp = string_list_internal (quote_list (list), " ");
+ else
+#endif
/* Testing quoted_dollar_at makes sure that "$@" is
split correctly when $IFS does not contain a space. */
temp = quoted_dollar_at
diff --git a/support/mkconffiles b/support/mkconffiles
index 9eb22318..9eb22318 100755..100644
--- a/support/mkconffiles
+++ b/support/mkconffiles
diff --git a/support/mkversion.sh b/support/mkversion.sh
index 08a5d981..08a5d981 100755..100644
--- a/support/mkversion.sh
+++ b/support/mkversion.sh
diff --git a/support/rlvers.sh b/support/rlvers.sh
index 64cadc77..64cadc77 100755..100644
--- a/support/rlvers.sh
+++ b/support/rlvers.sh
diff --git a/support/shobj-conf b/support/shobj-conf
index 084a7414..084a7414 100755..100644
--- a/support/shobj-conf
+++ b/support/shobj-conf
diff --git a/tests/RUN-ONE-TEST b/tests/RUN-ONE-TEST
index 3efcf32d..72ec06a2 100755
--- a/tests/RUN-ONE-TEST
+++ b/tests/RUN-ONE-TEST
@@ -1,4 +1,4 @@
-BUILD_DIR=/usr/local/build/chet/bash/bash-current
+BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
diff --git a/tests/exp.right b/tests/exp.right
index faafad2b..d46a2a16 100644
--- a/tests/exp.right
+++ b/tests/exp.right
@@ -162,3 +162,7 @@ argv[1] = <^A^A^?>
0.net
0.net
0.net
+graph
+yes
+a
+a
diff --git a/tests/exp.tests b/tests/exp.tests
index 42fbf724..1f4a35b7 100644
--- a/tests/exp.tests
+++ b/tests/exp.tests
@@ -382,3 +382,5 @@ echo ${a//\?/ }
${THIS_SH} ./exp1.sub
${THIS_SH} ./exp2.sub
+
+${THIS_SH} ./exp3.sub
diff --git a/tests/exp.tests~ b/tests/exp.tests~
new file mode 100644
index 00000000..42fbf724
--- /dev/null
+++ b/tests/exp.tests~
@@ -0,0 +1,384 @@
+#
+# A suite of tests for bash word expansions
+#
+# This tests parameter and variable expansion, with an empahsis on
+# proper quoting behavior.
+#
+# Chet Ramey
+
+#
+# If you comment out the body of this function, you can do a diff against
+# `expansion-tests.right' to see if the shell is behaving correctly
+#
+expect()
+{
+ echo expect "$@"
+}
+
+# Test the substitution quoting characters (CTLESC and CTLNUL) in different
+# combinations
+
+expect "<^A>"
+recho `echo ''`
+expect "<^A>"
+recho `echo ""`
+expect "<^B>"
+recho `echo ''`
+expect "<^B>"
+recho `echo ""`
+expect "<^A>"
+recho `echo `
+expect "<^B>"
+recho `echo `
+
+# Test null strings without variable expansion
+expect "<abcdefgh>"
+recho abcd""efgh
+expect "<abcdefgh>"
+recho abcd''efgh
+expect "<abcdefgh>"
+recho ""abcdefgh
+expect "<abcdefgh>"
+recho ''abcdefgh
+expect "<abcd>"
+recho abcd""
+expect "<abcd>"
+recho abcd''
+
+# Test the quirky behavior of $@ in ""
+expect nothing
+recho "$@"
+expect "< >"
+recho " $@"
+expect "<-->"
+recho "-${@}-"
+
+# Test null strings with variable expansion that fails
+expect '<>'
+recho $xxx""
+expect '<>'
+recho ""$xxx
+expect '<>'
+recho $xxx''
+expect '<>'
+recho ''$xxx
+expect '<>'
+recho $xxx""$yyy
+expect '<>'
+recho $xxx''$yyy
+
+# Test null strings with variable expansion that succeeds
+xxx=abc
+yyy=def
+
+expect '<abc>'
+recho $xxx""
+expect '<abc>'
+recho ""$xxx
+expect '<abc>'
+recho $xxx''
+expect '<abc>'
+recho ''$xxx
+expect '<abcdef>'
+recho $xxx""$yyy
+expect '<abcdef>'
+recho $xxx''$yyy
+
+unset xxx yyy
+
+# Test the unquoted special quoting characters
+expect "<^A>"
+recho 
+expect "<^B>"
+recho 
+expect "<^A>"
+recho ""
+expect "<^B>"
+recho ""
+expect "<^A>"
+recho ''
+expect "<^B>"
+recho ''
+
+# Test expansion of a variable that is unset
+expect nothing
+recho $xxx
+expect '<>'
+recho "$xxx"
+
+expect nothing
+recho "$xxx${@}"
+
+# Test empty string expansion
+expect '<>'
+recho ""
+expect '<>'
+recho ''
+
+# Test command substitution with (disabled) history substitution
+expect '<Hello World!>'
+# set +H
+recho "`echo \"Hello world!\"`"
+
+# Test some shell special characters
+expect '<`>'
+recho "\`"
+expect '<">'
+recho "\""
+expect '<\^A>'
+recho "\"
+
+expect '<\$>'
+recho "\\$"
+
+expect '<\\>'
+recho "\\\\"
+
+# This should give argv[1] = a argv[2] = b
+expect '<a> <b>'
+FOO=`echo 'a b' | tr ' ' '\012'`
+recho $FOO
+
+# This should give argv[1] = ^A argv[2] = ^B
+expect '<^A> <^B>'
+FOO=`echo ' ' | tr ' ' '\012'`
+recho $FOO
+
+# Test quoted and unquoted globbing characters
+expect '<**>'
+recho "*"*
+
+expect '<\.\./*/>'
+recho "\.\./*/"
+
+# Test patterns that come up when the shell quotes funny character
+# combinations
+expect '<^A^B^A^B>'
+recho ''
+expect '<^A^A>'
+recho ''
+expect '<^A^B>'
+recho ''
+expect '<^A^A^B>'
+recho ''
+
+# More tests of "$@"
+set abc def ghi jkl
+expect '< abc> <def> <ghi> <jkl >'
+recho " $@ "
+expect '< abc> <def> <ghi> <jkl >'
+recho "${1+ $@ }"
+
+set abc def ghi jkl
+expect '<--abc> <def> <ghi> <jkl-->'
+recho "--$@--"
+
+set "a b" cd ef gh
+expect '<a b> <cd> <ef> <gh>'
+recho ${1+"$@"}
+expect '<a b> <cd> <ef> <gh>'
+recho ${foo:-"$@"}
+expect '<a b> <cd> <ef> <gh>'
+recho "${@}"
+
+expect '< >'
+recho " "
+expect '< - >'
+recho " - "
+
+# Test combinations of different types of quoting in a fully-quoted string
+# (so the WHOLLY_QUOTED tests fail and it doesn't get set)
+expect '</^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/>'
+recho "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/"
+
+# Test the various Posix parameter expansions
+
+expect '<foo bar>'
+recho "${x:-$(echo "foo bar")}"
+expect '<foo> <bar>'
+recho ${x:-$(echo "foo bar")}
+
+unset X
+expect '<abc>'
+recho ${X:=abc}
+expect '<abc>'
+recho $X
+
+set a b c
+expect '<posix>'
+recho ${3:+posix}
+
+POSIX=/usr/posix
+expect '<10>'
+recho ${#POSIX}
+
+# remove shortest trailing match
+x=file.c
+expect '<file.o>'
+recho ${x%.c}.o
+
+# remove longest trailing match
+x=posix/src/std
+expect '<posix>'
+recho ${x%%/*}
+
+# remove shortest leading pattern
+x=$HOME/src/cmd
+expect '</src/cmd>'
+recho ${x#$HOME}
+
+# remove longest leading pattern
+x=/one/two/three
+expect '<three>'
+recho ${x##*/}
+
+# pattern removal of patterns that don't match
+z=abcdef
+
+expect '<abcdef>'
+recho ${z#xyz}
+expect '<abcdef>'
+recho ${z##xyz}
+
+expect '<abcdef>'
+recho ${z%xyz}
+expect '<abcdef>'
+recho ${z%%xyz}
+
+# Command substitution and the quirky differences between `` and $()
+
+expect '<\$x>'
+recho '\$x'
+
+expect '<$x>'
+recho `echo '\$x'`
+
+expect '<\$x>'
+recho $(echo '\$x')
+
+# The difference between $* "$*" and "$@"
+
+set "abc" "def ghi" "jkl"
+
+expect '<abc> <def> <ghi> <jkl>'
+recho $*
+
+expect '<abc def ghi jkl>'
+recho "$*"
+
+OIFS="$IFS"
+IFS=":$IFS"
+
+# The special behavior of "$*", using the first character of $IFS as separator
+expect '<abc:def ghi:jkl>'
+recho "$*"
+
+IFS="$OIFS"
+
+expect '<abc> <def ghi> <jkl>'
+recho "$@"
+
+expect '<xxabc> <def ghi> <jklyy>'
+recho "xx$@yy"
+
+expect '<abc> <def ghi> <jklabc> <def ghi> <jkl>'
+recho "$@$@"
+
+foo=abc
+bar=def
+
+expect '<abcdef>'
+recho "$foo""$bar"
+
+unset foo
+set $foo bar '' xyz "$foo" abc
+
+expect '<bar> <> <xyz> <> <abc>'
+recho "$@"
+
+# More tests of quoting and deferred evaluation
+
+foo=10 x=foo
+y='$'$x
+expect '<$foo>'
+recho $y
+eval y='$'$x
+expect '<10>'
+recho $y
+
+# case statements
+
+NL='
+'
+x='ab
+cd'
+
+expect '<newline expected>'
+case "$x" in
+*$NL*) recho "newline expected" ;;
+esac
+
+expect '<got it>'
+case \? in
+*"?"*) recho "got it" ;;
+esac
+
+expect '<got it>'
+case \? in
+*\?*) recho "got it" ;;
+esac
+
+set one two three four five
+expect '<one> <three> <five>'
+recho $1 $3 ${5} $8 ${9}
+
+# length tests on positional parameters and some special parameters
+
+expect '<5> <5>'
+recho $# ${#}
+expect '<3>'
+recho ${#1}
+expect '<1>'
+recho ${##}
+expect '<1>'
+recho ${#?}
+expect '<5>'
+recho ${#@}
+expect '<5>'
+recho ${#*}
+expect '<5>'
+recho "${#@}"
+expect '<5>'
+recho "${#*}"
+
+expect '<42>'
+recho $((28 + 14))
+expect '<26>'
+recho $[ 13 * 2 ]
+
+expect '<\>'
+recho `echo \\\\`
+
+expect '<~>'
+recho '~'
+
+expect nothing
+recho $!
+expect nothing
+recho ${!}
+
+# test word splitting of assignment statements not preceding a command
+a="a b c d e"
+declare b=$a
+expect '<a> <b> <c> <d> <e>'
+recho $b
+
+a="a?b?c"
+
+echo ${a//\\?/ }
+
+echo ${a//\?/ }
+
+${THIS_SH} ./exp1.sub
+
+${THIS_SH} ./exp2.sub
diff --git a/tests/exp3.sub b/tests/exp3.sub
new file mode 100644
index 00000000..212d579a
--- /dev/null
+++ b/tests/exp3.sub
@@ -0,0 +1,7 @@
+IFS=:
+
+case A in ([[:graph:]]) echo graph;; *) echo non-graph;; esac
+[[ A == [[:graph:]] ]] && echo yes || echo no
+
+IFS="~"; read a b <<< a~q; echo $a
+IFS=':'; read a b <<< a:q; echo $a